From b5542d0691550aa27e26d8f3a696f6d7d6115e86 Mon Sep 17 00:00:00 2001 From: Alexandre Neto Date: Mon, 13 Nov 2017 10:55:04 +0000 Subject: [PATCH] Adds endcheck and prestep functions to join table lesson --- .../04_open_layer_properties.md | 2 +- .../05_add_vector_join.md | 2 -- .../Join_table_to_vector_layer/functions.py | 25 ++++++++++++++++++ .../Join_table_to_vector_layer/lesson.yaml | 21 +++++++++++++++ .../open_joins_tab.png | Bin 7980 -> 0 bytes 5 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 vector_layers_attributes/Join_table_to_vector_layer/functions.py delete mode 100644 vector_layers_attributes/Join_table_to_vector_layer/open_joins_tab.png diff --git a/vector_layers_attributes/Join_table_to_vector_layer/04_open_layer_properties.md b/vector_layers_attributes/Join_table_to_vector_layer/04_open_layer_properties.md index 1a95823..18bb5b4 100644 --- a/vector_layers_attributes/Join_table_to_vector_layer/04_open_layer_properties.md +++ b/vector_layers_attributes/Join_table_to_vector_layer/04_open_layer_properties.md @@ -1,5 +1,5 @@ * In the **Layers Panel**, right-click the *Blocks 2010* layer and - select **Open Attribute Table** + select **Properties** ![open_layer_properties](open_layer_properties.png) diff --git a/vector_layers_attributes/Join_table_to_vector_layer/05_add_vector_join.md b/vector_layers_attributes/Join_table_to_vector_layer/05_add_vector_join.md index 3f55d43..83ab655 100644 --- a/vector_layers_attributes/Join_table_to_vector_layer/05_add_vector_join.md +++ b/vector_layers_attributes/Join_table_to_vector_layer/05_add_vector_join.md @@ -1,7 +1,5 @@ * In the **Layers Properties - Blocks 2010**, click the **Join** tab. - ![open_joins_tab](open_joins_tab.png) - * There are no joins yet for this layer. Click the **Add Join** button to create one. diff --git a/vector_layers_attributes/Join_table_to_vector_layer/functions.py b/vector_layers_attributes/Join_table_to_vector_layer/functions.py new file mode 100644 index 0000000..1058fa0 --- /dev/null +++ b/vector_layers_attributes/Join_table_to_vector_layer/functions.py @@ -0,0 +1,25 @@ +from lessons.utils import layerFromName + +# Functions + +# EndCheck Function + +def fieldExists(layername, string): + """ + Check if a layer has a field which name contains the specified string + The layer should be of the vector type and be loaded into project. + :param layername: Layer's name as visible in the layers panel + :param string: string of text + + :return: Boolean + """ + + layer = layerFromName(layername) + if layer is None: + return False + + for field in layer.pendingFields(): + if string in field.name(): + return True + + return False \ No newline at end of file diff --git a/vector_layers_attributes/Join_table_to_vector_layer/lesson.yaml b/vector_layers_attributes/Join_table_to_vector_layer/lesson.yaml index f915335..df07d72 100644 --- a/vector_layers_attributes/Join_table_to_vector_layer/lesson.yaml +++ b/vector_layers_attributes/Join_table_to_vector_layer/lesson.yaml @@ -12,7 +12,28 @@ lesson: name: Inspect attribute of tabular layer - description: 04_open_layer_properties.md name: Open layer properties + + prestep: + name: utils.unmodalWidget + params: + - QgsVectorLayerPropertiesBase + - 300 + - 1000 + - description: 05_add_vector_join.md name: Add vector join + + prestep: + name: utils.unmodalWidget + params: + - QgsJoinDialog + - 300 + - 1000 + + endcheck: + name: fieldExists + params: + - Blocks 2010 + - TOTAL_POP - description: 06_inspect_polygon_layer_attributes_(again).md name: Inspect polygon layer attributes (again) diff --git a/vector_layers_attributes/Join_table_to_vector_layer/open_joins_tab.png b/vector_layers_attributes/Join_table_to_vector_layer/open_joins_tab.png deleted file mode 100644 index 8cce620235f59cb94a44d92505855619a3239492..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7980 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 i1?)1?6aMFneEa`OKzD!;@N@hC0000