From bd70607908ec6d31e17fe7667da177c9286a59c8 Mon Sep 17 00:00:00 2001 From: Ian Ward Date: Fri, 13 Jun 2025 11:46:26 -0400 Subject: [PATCH 01/18] OPEN-4034: form pages for dataset type --- ckanext/canada/schemas/dataset.yaml | 116 ++++++++++++++++------------ 1 file changed, 66 insertions(+), 50 deletions(-) diff --git a/ckanext/canada/schemas/dataset.yaml b/ckanext/canada/schemas/dataset.yaml index 33b915c06..a3cbb7949 100644 --- a/ckanext/canada/schemas/dataset.yaml +++ b/ckanext/canada/schemas/dataset.yaml @@ -1,7 +1,7 @@ - -scheming_version: 1 dataset_type: dataset +draft_fields_required: false + before_validators: limit_resources_per_dataset about: 'open.canada.ca: raw open data metadata definition' @@ -59,7 +59,9 @@ sidebar_show_fields: dataset_fields: # our id + name fields are uuids and always equal -- preset: canada_dataset_id +- start_form_page: + title: Descriptive Metadata + preset: canada_dataset_id - preset: canada_dataset_name - preset: canada_collection @@ -69,6 +71,67 @@ dataset_fields: - api - app +- preset: canada_title +- preset: canada_owner_org +- preset: canada_notes +- preset: canada_keywords +- preset: canada_digital_object_identifier + +- start_form_page: + title: Publishing Information + preset: canada_org_title_at_publication +- preset: canada_org_section_name +- preset: canada_creator +- preset: canada_contributor +- preset: canada_maintainer_email +- preset: canada_maintainer_contact_form +- preset: canada_credit + +- start_form_page: + title: Taxonomic Metadata + preset: canada_subject +- preset: canada_audience + +- field_name: place_of_publication + label: + en: Place of Publication + fr: Endroit de publication + help_text: + en: "The region where the dataset was originally published. You may select or deselect multiple options (Ctrl+Click) " + fr: "La région où le jeu de données a été publié initialement. Vous pouvez sélectionner ou désélectionner de multiples options (Ctrl+Clic)" + preset: canada_geographic_region # use same multi-select controlled list + select_size: 10 + +- preset: canada_spatial +- preset: canada_geographic_region + +- start_form_page: + title: Series Metadata + preset: canada_data_series_name +- preset: canada_data_series_issue_identification +- preset: canada_program_page_url +- preset: canada_dataset_relationship + +- start_form_page: + title: Coverage + preset: canada_time_period_coverage_start +- preset: canada_time_period_coverage_end +- preset: canada_frequency +- preset: canada_date_published +- preset: canada_date_modified +- preset: canada_federated_date_modified +- preset: canada_jurisdiction +- preset: canada_license_id +- preset: canada_restrictions + +- start_form_page: + title: Approval + preset: canada_imso_approval +- preset: canada_ready_to_publish +- preset: canada_portal_release_date + + + # FGP fields (hidden from form) - field_name: metadata_contact label: @@ -100,14 +163,6 @@ dataset_fields: fr: Identifiant court form_snippet: null validators: scheming_required string_safe - -- preset: canada_title -- preset: canada_owner_org -- preset: canada_org_title_at_publication -- preset: canada_org_section_name -- preset: canada_creator - -# FGP fields (hidden from form) - field_name: position_name label: en: Position Name @@ -212,37 +267,6 @@ dataset_fields: fr: Services communication value: utilities_communication -- preset: canada_contributor -- preset: canada_maintainer_email -- preset: canada_maintainer_contact_form -- preset: canada_credit -- preset: canada_notes -- preset: canada_keywords -- preset: canada_subject -- preset: canada_audience - -- field_name: place_of_publication - label: - en: Place of Publication - fr: Endroit de publication - help_text: - en: "The region where the dataset was originally published. You may select or deselect multiple options (Ctrl+Click) " - fr: "La région où le jeu de données a été publié initialement. Vous pouvez sélectionner ou désélectionner de multiples options (Ctrl+Clic)" - preset: canada_geographic_region # use same multi-select controlled list - select_size: 10 - -- preset: canada_spatial -- preset: canada_geographic_region -- preset: canada_time_period_coverage_start -- preset: canada_time_period_coverage_end -- preset: canada_frequency -- preset: canada_date_published -- preset: canada_date_modified -- preset: canada_program_page_url -- preset: canada_federated_date_modified -- preset: canada_data_series_name -- preset: canada_data_series_issue_identification -- preset: canada_digital_object_identifier # FGP fields (hidden from form) - field_name: reference_system_information @@ -340,13 +364,6 @@ dataset_fields: - preset: canada_spatial_representation_type -- preset: canada_jurisdiction -- preset: canada_license_id -- preset: canada_restrictions -- preset: canada_imso_approval -- preset: canada_ready_to_publish -- preset: canada_portal_release_date - # fields hidden from the form to support loading fgp and geogratis data - field_name: presentation_form @@ -453,7 +470,6 @@ dataset_fields: en: FGP viewer is supported value: fgp_viewer -- preset: canada_dataset_relationship # From d5d74ffe41e652822d148d33989fedc7c4f6290d Mon Sep 17 00:00:00 2001 From: Ian Ward Date: Fri, 13 Jun 2025 11:49:47 -0400 Subject: [PATCH 02/18] changes --- changes/1582.feature | 1 + 1 file changed, 1 insertion(+) create mode 100644 changes/1582.feature diff --git a/changes/1582.feature b/changes/1582.feature new file mode 100644 index 000000000..119cda11d --- /dev/null +++ b/changes/1582.feature @@ -0,0 +1 @@ +split dataset type into separate pages using scheming form pages and dataset completeness feature From 48252f928d65b48cb0e0ad4a1526cb7b4dcfddce Mon Sep 17 00:00:00 2001 From: Ian Ward Date: Fri, 18 Jul 2025 13:28:38 -0400 Subject: [PATCH 03/18] allow scheming pages functionality to pass through --- ckanext/canada/plugin/dataset_plugin.py | 14 ++++++++++++++ .../scheming/package/snippets/package_form.html | 10 +--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/ckanext/canada/plugin/dataset_plugin.py b/ckanext/canada/plugin/dataset_plugin.py index 9289d3b9e..e8dc538a5 100644 --- a/ckanext/canada/plugin/dataset_plugin.py +++ b/ckanext/canada/plugin/dataset_plugin.py @@ -13,6 +13,10 @@ from ckanext.datastore.interfaces import IDataDictionaryForm from ckanext.scheming.plugins import SchemingDatasetsPlugin +from ckanext.scheming.views import ( + SchemingEditPageView, + SchemingCreatePageView, +) from ckanext.canada.helpers import RELEASE_DATE_FACET_STEP from ckanext.canada.view import ( CanadaDatasetEditView, @@ -116,6 +120,16 @@ def prepare_dataset_blueprint(self, package_type: str, methods=['GET'], strict_slashes=False ) + blueprint.add_url_rule( + '/new//', + 'scheming_new_page', + SchemingCreatePageView.as_view('new_page'), + ) + blueprint.add_url_rule( + '/edit//', + 'scheming_edit_page', + SchemingEditPageView.as_view('edit_page'), + ) # redirect PD endpoints accessed from /dataset/ blueprint.before_request(cast(BeforeRequestCallable, self._redirect_pd_dataset_endpoints)) diff --git a/ckanext/canada/templates/scheming/package/snippets/package_form.html b/ckanext/canada/templates/scheming/package/snippets/package_form.html index 5aa248e51..64734840e 100644 --- a/ckanext/canada/templates/scheming/package/snippets/package_form.html +++ b/ckanext/canada/templates/scheming/package/snippets/package_form.html @@ -2,7 +2,7 @@ {% block stages %} {% if form_style != 'edit' and dataset_type != 'prop' %} - {{ h.snippet('package/snippets/stages.html', stages=stage, dataset_type=dataset_type) }} + {{ super() }} {% endif %} {% endblock %} @@ -68,11 +68,3 @@ {% endblock %} {% block publish_button %}{% endblock %} - -{% block save_button_text %} - {% if form_style != 'edit' %} - {{- _('Next: Add Resource') -}} - {% else %} - {{- _('Update Record') -}} - {% endif %} -{% endblock %} \ No newline at end of file From 642e00b86dddac1d5cb0a6ef500a481de50485e2 Mon Sep 17 00:00:00 2001 From: Ian Ward Date: Fri, 18 Jul 2025 13:43:21 -0400 Subject: [PATCH 04/18] one more is_resource_supported_by_xloader check --- ckanext/canada/templates/package/snippets/resources.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ckanext/canada/templates/package/snippets/resources.html b/ckanext/canada/templates/package/snippets/resources.html index 0da2368a1..422c83ff5 100644 --- a/ckanext/canada/templates/package/snippets/resources.html +++ b/ckanext/canada/templates/package/snippets/resources.html @@ -30,7 +30,7 @@