Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Fixes #7194] Append data to an existing layer #7195

Merged
merged 9 commits into from
Mar 30, 2021

Conversation

mattiagiupponi
Copy link
Contributor

In order to resolve #7194 with this pr I want to:

  • Creating new HTML for layer_append and his view
  • New helper utility for the tests named create_single_layer for create only a single layer instead of the 10 created by GeoNodeBaseTestSupport
  • New validation function for layer_append & layer_replace named validate_input_source which will check for the compatibility between the layer in upload and the information in the catalog. (with tests)
    This will check the attributes of the uploaded file and the GS catalog:
    new_schema_fields = [field.name for field in lyr.schema]
    gs_layer = gs_catalog.get_layer(layer.name)
    if not gs_layer:
        raise Exception(
            _("The selected Layer does not exists in the catalog."))
    gs_layer = gs_layer.resource.attributes
    schema_is_compliant = all([x in gs_layer for x in new_schema_fields])
    if not schema_is_compliant:
        raise Exception(
            _("Please ensure that the layer structure is consistent "
               f"with the file you are trying to {action_type}."))
  • function named gs_append_data_to_layer which is responsible for the APPEND call to geoserver

Checklist

Reviewing is a process done by project maintainers, mostly on a volunteer basis. We try to keep the overhead as small as possible and appreciate if you help us to do so by completing the following items. Feel free to ask in a comment if you have troubles with any of them.

For all pull requests:

  • Confirm you have read the contribution guidelines
  • You have sent a Contribution Licence Agreement (CLA) as necessary (not required for small changes, e.g., fixing typos in the documentation)
  • Make sure the first PR targets the master branch, eventual backports will be managed later. This can be ignored if the PR is fixing an issue that only happens in a specific branch, but not in newer ones.

The following are required only for core and extension modules (they are welcomed, but not required, for contrib modules):

  • There is a ticket in https://github.com/GeoNode/geonode/issues describing the issue/improvement/feature (a notable exemption is, changes not visible to end-users)
  • The issue connected to the PR must have Labels and Milestone assigned
  • PR for bug fixes and small new features are presented as a single commit
  • Commit message must be in the form "[Fixes #<issue_number>] Title of the Issue"
  • New unit tests have been added covering the changes, unless there is an explanation on why the tests are not necessary/implemented
  • This PR passes all existing unit tests (test results will be reported by travis-ci after opening this PR)
  • This PR passes the QA checks: flake8 geonode
  • Commits changing the settings, UI, existing user workflows, or adding new functionality, need to include documentation updates
  • Commits adding new texts do use gettext and have updated .po / .mo files (without location infos)

Submitting the PR does not require you to check all items, but by the time it gets merged, they should be either satisfied or inapplicable.

@cla-bot cla-bot bot added the cla-signed CLA Bot: community license agreement signed label Mar 29, 2021
@mattiagiupponi mattiagiupponi marked this pull request as ready for review March 29, 2021 16:15
@mattiagiupponi mattiagiupponi added the backport 3.2.x PR should be backported to target version label Mar 29, 2021
@codecov
Copy link

codecov bot commented Mar 29, 2021

Codecov Report

Merging #7195 (bbac4a8) into master (c1007fc) will decrease coverage by 33.29%.
The diff coverage is 9.89%.

@@             Coverage Diff             @@
##           master    #7195       +/-   ##
===========================================
- Coverage   59.07%   25.77%   -33.30%     
===========================================
  Files         565      565               
  Lines       39827    40156      +329     
  Branches     5282     5301       +19     
===========================================
- Hits        23527    10350    -13177     
- Misses      14935    29376    +14441     
+ Partials     1365      430      -935     

@afabiani afabiani added this to the 3.2 milestone Mar 30, 2021
@afabiani afabiani merged commit b404e0d into GeoNode:master Mar 30, 2021
afabiani pushed a commit that referenced this pull request Mar 30, 2021
* [Fixes #7194] Add new append_layer html

* [Fixes #7194] Test helper utility for create single layer

* [Fixes #7194] Add append data to existing edit layer html

* [Fixes #7194] Flake8 formatting

* [Fixes #7194] New layer_append url map

* [Fixes #7194]Validation helper function for replace and appen layer

* [Fixes #7194] Add view for layer_append feature

* [Fixes #7194] Test coverage for new validation function

(cherry picked from commit b404e0d)
afabiani pushed a commit that referenced this pull request Mar 30, 2021
* [Fixes #7194] Add new append_layer html

* [Fixes #7194] Test helper utility for create single layer

* [Fixes #7194] Add append data to existing edit layer html

* [Fixes #7194] Flake8 formatting

* [Fixes #7194] New layer_append url map

* [Fixes #7194]Validation helper function for replace and appen layer

* [Fixes #7194] Add view for layer_append feature

* [Fixes #7194] Test coverage for new validation function

(cherry picked from commit b404e0d)

Co-authored-by: mattiagiupponi <51856725+mattiagiupponi@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport 3.2.x PR should be backported to target version cla-signed CLA Bot: community license agreement signed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Append data to an existing layer
2 participants