From dbb4a6268f5bf8b005a5d9ef2267da7c3652e9cb Mon Sep 17 00:00:00 2001 From: Jesse Vickery Date: Mon, 9 Feb 2026 22:09:56 +0000 Subject: [PATCH 1/3] feat(dev): compliance proof; - Started proof of concept for pd compliance inside Registry. --- ckanext/canada/schemas/organization.yaml | 111 ++++++++++++++--------- ckanext/canada/tables/adminaircraft.yaml | 1 + ckanext/canada/tables/aistrategy.yaml | 1 + ckanext/canada/tables/ati.yaml | 1 + ckanext/canada/tables/briefingt.yaml | 1 + ckanext/canada/tables/contracts.yaml | 1 + ckanext/canada/tables/contractsa.yaml | 1 + ckanext/canada/tables/dac.yaml | 1 + ckanext/canada/tables/grants.yaml | 1 + ckanext/canada/tables/hospitalityq.yaml | 2 +- ckanext/canada/tables/nap5.yaml | 1 + 11 files changed, 80 insertions(+), 42 deletions(-) diff --git a/ckanext/canada/schemas/organization.yaml b/ckanext/canada/schemas/organization.yaml index 1dfd6dfd7..3e12fdd8a 100644 --- a/ckanext/canada/schemas/organization.yaml +++ b/ckanext/canada/schemas/organization.yaml @@ -148,61 +148,90 @@ fields: # {Reporting requirements for the organization. If 'ATI Summaries' is checked then ati_email field is mandatory} - field_name: reporting_requirements label: - en: "Select reporting requirements for the organization" - fr: "Sélectionner les exigences en matière de rapports pour l'organisation" + en: Select reporting requirements for the organization + fr: Sélectionner les exigences en matière de rapports pour l'organisation choices: + + - label: + en: 5th National Action Plan Tracker + fr: Outil de suivi pour le 5ᵉ Plan d'action national + value: nap5 + + - label: + en: 6th National Action Plan Tracker + fr: Outil de suivi pour le 6ᵉ Plan d'action national + value: nap6 + - label: - en: "Acts of Founded Wrongdoing" - fr: "Dossiers sur les actes répréhensibles fondés" - value: "wrongdoing" + en: Acts of Founded Wrongdoing" + fr: Dossiers sur les actes répréhensibles fondés + value: wrongdoing + - label: - en: "Aggregated Contracts from -$10K to $10K" - fr: "Contrats agrégés de -10 000$ à 10 000$" - value: "contractsa" + en: Aggregated Contracts from -$10K to $10K + fr: Contrats agrégés de -10 000$ à 10 000$ + value: contractsa + - label: - en: "ATI Summaries" - fr: "Accès à l'information sommaires complétés" - value: "ati" + en: AI Strategy Implementation Tracker + fr: Outil de suivi de la mise en oeuvre de la stratégie en matière d'IA + value: aistrategy + + - label: + en: ATI Summaries + fr: Accès à l'information sommaires complétés + value: ati + - label: - en: "Briefing Note Titles and Numbers" - fr: "Titres et numéros des notes d'information" - value: "briefingt" + en: Briefing Note Titles and Numbers + fr: Titres et numéros des notes d'information + value: briefingt + - label: - en: "Contracts over 10K" - fr: "Contrats attribués de plus de 10 000 $" - value: "contracts" + en: Contracts over 10K + fr: Contrats attribués de plus de 10 000 $ + value: contracts + - label: - en: "Departmental Audit Committee" - fr: "Comités ministériels d'audit" - value: "dac" + en: Departmental Audit Committee + fr: Comités ministériels d'audit + value: dac + - label: - en: "Grants and Contributions" - fr: "Subventions et les contributions" - value: "grants" + en: Grants and Contributions + fr: Subventions et les contributions + value: grants + - label: - en: "Hospitality Expenses" - fr: "Dépenses d'accueil" - value: "hospitalityq" + en: Hospitality Expenses + fr: Dépenses d'accueil + value: hospitalityq + - label: - en: "Position Reclassification" - fr: "Reclassifications de postes" - value: "reclassification" + en: Position Reclassification + fr: Reclassifications de postes + value: reclassification + - label: - en: "Question Period Notes" - fr: "Notes pour la période des questions" - value: "qpnotes" + en: Question Period Notes + fr: Notes pour la période des questions + value: qpnotes + - label: - en: "Travel Expenses" - fr: "Dépenses de voyage" - value: "travelq" + en: Travel Expenses + fr: Dépenses de voyage + value: travelq + - label: - en: "Annual Travel, Hospitality and Conferences" - fr: "Dépenses annuelles de voyages, d'accueil, de conférences et d'événements" - value: "travela" + en: Annual Travel, Hospitality and Conferences + fr: Dépenses annuelles de voyages, d'accueil, de conférences et d'événements + value: travela + - label: - en: "Use of Administrative Aircraft" - fr: "Utilisation des avions d'affaires" - value: "adminaircraft" + en: Use of Administrative Aircraft + fr: Utilisation des avions d'affaires + value: adminaircraft + form_snippet: multiple_checkbox.html display_snippet: multiple_choice.html validators: scheming_required scheming_multiple_choice protect_reporting_requirements ati_email_validate diff --git a/ckanext/canada/tables/adminaircraft.yaml b/ckanext/canada/tables/adminaircraft.yaml index 41487083f..85fe851da 100644 --- a/ckanext/canada/tables/adminaircraft.yaml +++ b/ckanext/canada/tables/adminaircraft.yaml @@ -11,6 +11,7 @@ template_version: 3 template_updated: 2025-01-10 # last qa confirmed: 2025-02-19 portal_type: info +reporting_frequency: monthly resources: - title: Proactive Publication - Use of Administrative Aircraft diff --git a/ckanext/canada/tables/aistrategy.yaml b/ckanext/canada/tables/aistrategy.yaml index 3b0ac1671..53886a4c2 100644 --- a/ckanext/canada/tables/aistrategy.yaml +++ b/ckanext/canada/tables/aistrategy.yaml @@ -8,6 +8,7 @@ template_updated: 2025-08-04 portal_type: info collection: pd +reporting_frequency: quarterly_f resources: - title: AI Strategy Implementation Tracker diff --git a/ckanext/canada/tables/ati.yaml b/ckanext/canada/tables/ati.yaml index 347be8d8c..92215b9d9 100644 --- a/ckanext/canada/tables/ati.yaml +++ b/ckanext/canada/tables/ati.yaml @@ -10,6 +10,7 @@ template_updated: 2021-04-19 # last qa confirmed: 2025-02-19 portal_type: info collection: ati +reporting_frequency: monthly resources: - title: ATI Summaries diff --git a/ckanext/canada/tables/briefingt.yaml b/ckanext/canada/tables/briefingt.yaml index 6fe1ea376..de5178c68 100644 --- a/ckanext/canada/tables/briefingt.yaml +++ b/ckanext/canada/tables/briefingt.yaml @@ -10,6 +10,7 @@ template_updated: 2026-01-27 # last qa confirmed: 2025-02-19 portal_type: info collection: briefingt +reporting_frequency: monthly resources: - title: Proactive Publication - Briefing Note Titles and Numbers diff --git a/ckanext/canada/tables/contracts.yaml b/ckanext/canada/tables/contracts.yaml index 717d8c7df..b369ccc4e 100644 --- a/ckanext/canada/tables/contracts.yaml +++ b/ckanext/canada/tables/contracts.yaml @@ -28,6 +28,7 @@ template_updated: 2023-06-28 # last qa confirmed: 2025-02-19 portal_type: info collection: pd +reporting_frequency: quarterly_f sidebar_extra_content: en: 'For information on the Proactive Publication of Contracts, refer to the [Guide to the Proactive Publication of Contracts](https://www.tbs-sct.canada.ca/pol/doc-eng.aspx?id=32763).' diff --git a/ckanext/canada/tables/contractsa.yaml b/ckanext/canada/tables/contractsa.yaml index dbd1720bd..ab7858a2d 100644 --- a/ckanext/canada/tables/contractsa.yaml +++ b/ckanext/canada/tables/contractsa.yaml @@ -10,6 +10,7 @@ template_updated: 2023-06-28 # last qa confirmed: 2025-02-19 portal_type: info collection: pd +reporting_frequency: yearly resources: - title: Proactive Publication - Aggregated Contracts from -$10,000 to $10,000 diff --git a/ckanext/canada/tables/dac.yaml b/ckanext/canada/tables/dac.yaml index e107e930b..413042aca 100644 --- a/ckanext/canada/tables/dac.yaml +++ b/ckanext/canada/tables/dac.yaml @@ -9,6 +9,7 @@ template_updated: 2024-04-18 # last qa confirmed: 2025-02-19 portal_type: info collection: pd +reporting_frequency: quarterly_f resources: - title: Proactive Publication - Departmental Audit Committee diff --git a/ckanext/canada/tables/grants.yaml b/ckanext/canada/tables/grants.yaml index 6e3ab1271..b2d0d5837 100644 --- a/ckanext/canada/tables/grants.yaml +++ b/ckanext/canada/tables/grants.yaml @@ -13,6 +13,7 @@ template_warning: portal_type: info collection: pd +reporting_frequency: quarterly_f resources: - title: Proactive Publication - Grants and Contributions diff --git a/ckanext/canada/tables/hospitalityq.yaml b/ckanext/canada/tables/hospitalityq.yaml index 46c1ef178..a03ad8b14 100644 --- a/ckanext/canada/tables/hospitalityq.yaml +++ b/ckanext/canada/tables/hospitalityq.yaml @@ -14,7 +14,7 @@ template_updated: 2024-08-14 # last qa confirmed: 2025-02-19 portal_type: info collection: pd - +reporting_frequency: quarterly resources: - title: Proactive Publication - Hospitality Expenses diff --git a/ckanext/canada/tables/nap5.yaml b/ckanext/canada/tables/nap5.yaml index 55c27caea..719cc73ca 100644 --- a/ckanext/canada/tables/nap5.yaml +++ b/ckanext/canada/tables/nap5.yaml @@ -8,6 +8,7 @@ template_updated: 2022-12-07 # last qa confirmed: 2025-02-19 portal_type: info collection: pd +reporting_frequency: quarterly resources: - title: 5th National Action Plan on Open Government Tracker From 24b3b3db0246bbe2ed8c4d069707f48cdd3c50b0 Mon Sep 17 00:00:00 2001 From: Jesse Vickery Date: Tue, 10 Feb 2026 16:57:42 +0000 Subject: [PATCH 2/3] feat(dev): compliance proof; - Started proof of concept for pd compliance inside Registry. --- ckanext/canada/schemas/organization.yaml | 7 ++++++- ckanext/canada/tables/adminaircraft.yaml | 1 + ckanext/canada/tables/aistrategy.yaml | 1 + ckanext/canada/tables/ati.yaml | 1 + ckanext/canada/tables/briefingt.yaml | 1 + ckanext/canada/tables/contracts.yaml | 1 + ckanext/canada/tables/contractsa.yaml | 3 ++- ckanext/canada/tables/dac.yaml | 1 + ckanext/canada/tables/grants.yaml | 1 + ckanext/canada/tables/hospitalityq.yaml | 1 + ckanext/canada/tables/nap5.yaml | 1 + ckanext/canada/tables/qpnotes.yaml | 2 ++ ckanext/canada/tables/reclassification.yaml | 2 ++ ckanext/canada/tables/service.yaml | 2 ++ ckanext/canada/tables/travela.yaml | 2 ++ ckanext/canada/tables/travelq.yaml | 5 +++-- ckanext/canada/tables/wrongdoing.yaml | 2 ++ 17 files changed, 30 insertions(+), 4 deletions(-) diff --git a/ckanext/canada/schemas/organization.yaml b/ckanext/canada/schemas/organization.yaml index 3e12fdd8a..099dc71d9 100644 --- a/ckanext/canada/schemas/organization.yaml +++ b/ckanext/canada/schemas/organization.yaml @@ -163,7 +163,7 @@ fields: value: nap6 - label: - en: Acts of Founded Wrongdoing" + en: Acts of Founded Wrongdoing fr: Dossiers sur les actes répréhensibles fondés value: wrongdoing @@ -217,6 +217,11 @@ fields: fr: Notes pour la période des questions value: qpnotes + - label: + en: Service Identification Information & Metrics + fr: Renseignements sur l'identification des services, données volumétriques + value: service + - label: en: Travel Expenses fr: Dépenses de voyage diff --git a/ckanext/canada/tables/adminaircraft.yaml b/ckanext/canada/tables/adminaircraft.yaml index 85fe851da..674e99ddb 100644 --- a/ckanext/canada/tables/adminaircraft.yaml +++ b/ckanext/canada/tables/adminaircraft.yaml @@ -11,6 +11,7 @@ template_version: 3 template_updated: 2025-01-10 # last qa confirmed: 2025-02-19 portal_type: info +# TODO: confirm frequency reporting_frequency: monthly resources: diff --git a/ckanext/canada/tables/aistrategy.yaml b/ckanext/canada/tables/aistrategy.yaml index 53886a4c2..25437fcb4 100644 --- a/ckanext/canada/tables/aistrategy.yaml +++ b/ckanext/canada/tables/aistrategy.yaml @@ -8,6 +8,7 @@ template_updated: 2025-08-04 portal_type: info collection: pd +# TODO: confirm frequency reporting_frequency: quarterly_f resources: diff --git a/ckanext/canada/tables/ati.yaml b/ckanext/canada/tables/ati.yaml index 92215b9d9..797314653 100644 --- a/ckanext/canada/tables/ati.yaml +++ b/ckanext/canada/tables/ati.yaml @@ -10,6 +10,7 @@ template_updated: 2021-04-19 # last qa confirmed: 2025-02-19 portal_type: info collection: ati +# TODO: confirm frequency reporting_frequency: monthly resources: diff --git a/ckanext/canada/tables/briefingt.yaml b/ckanext/canada/tables/briefingt.yaml index de5178c68..5e59333b0 100644 --- a/ckanext/canada/tables/briefingt.yaml +++ b/ckanext/canada/tables/briefingt.yaml @@ -10,6 +10,7 @@ template_updated: 2026-01-27 # last qa confirmed: 2025-02-19 portal_type: info collection: briefingt +# TODO: confirm frequency reporting_frequency: monthly resources: diff --git a/ckanext/canada/tables/contracts.yaml b/ckanext/canada/tables/contracts.yaml index b369ccc4e..e37e99016 100644 --- a/ckanext/canada/tables/contracts.yaml +++ b/ckanext/canada/tables/contracts.yaml @@ -28,6 +28,7 @@ template_updated: 2023-06-28 # last qa confirmed: 2025-02-19 portal_type: info collection: pd +# TODO: confirm frequency reporting_frequency: quarterly_f sidebar_extra_content: diff --git a/ckanext/canada/tables/contractsa.yaml b/ckanext/canada/tables/contractsa.yaml index ab7858a2d..e6b9641c8 100644 --- a/ckanext/canada/tables/contractsa.yaml +++ b/ckanext/canada/tables/contractsa.yaml @@ -10,7 +10,8 @@ template_updated: 2023-06-28 # last qa confirmed: 2025-02-19 portal_type: info collection: pd -reporting_frequency: yearly +# TODO: confirm frequency +reporting_frequency: annually resources: - title: Proactive Publication - Aggregated Contracts from -$10,000 to $10,000 diff --git a/ckanext/canada/tables/dac.yaml b/ckanext/canada/tables/dac.yaml index 413042aca..fa5ecb8a2 100644 --- a/ckanext/canada/tables/dac.yaml +++ b/ckanext/canada/tables/dac.yaml @@ -9,6 +9,7 @@ template_updated: 2024-04-18 # last qa confirmed: 2025-02-19 portal_type: info collection: pd +# TODO: confirm frequency reporting_frequency: quarterly_f resources: diff --git a/ckanext/canada/tables/grants.yaml b/ckanext/canada/tables/grants.yaml index b2d0d5837..cf019d709 100644 --- a/ckanext/canada/tables/grants.yaml +++ b/ckanext/canada/tables/grants.yaml @@ -13,6 +13,7 @@ template_warning: portal_type: info collection: pd +# TODO: confirm frequency reporting_frequency: quarterly_f resources: diff --git a/ckanext/canada/tables/hospitalityq.yaml b/ckanext/canada/tables/hospitalityq.yaml index a03ad8b14..65024bd91 100644 --- a/ckanext/canada/tables/hospitalityq.yaml +++ b/ckanext/canada/tables/hospitalityq.yaml @@ -14,6 +14,7 @@ template_updated: 2024-08-14 # last qa confirmed: 2025-02-19 portal_type: info collection: pd +# TODO: confirm frequency reporting_frequency: quarterly resources: diff --git a/ckanext/canada/tables/nap5.yaml b/ckanext/canada/tables/nap5.yaml index 719cc73ca..4037b916b 100644 --- a/ckanext/canada/tables/nap5.yaml +++ b/ckanext/canada/tables/nap5.yaml @@ -8,6 +8,7 @@ template_updated: 2022-12-07 # last qa confirmed: 2025-02-19 portal_type: info collection: pd +# TODO: confirm frequency reporting_frequency: quarterly resources: diff --git a/ckanext/canada/tables/qpnotes.yaml b/ckanext/canada/tables/qpnotes.yaml index b3270bdf2..2bbaa23d5 100644 --- a/ckanext/canada/tables/qpnotes.yaml +++ b/ckanext/canada/tables/qpnotes.yaml @@ -10,6 +10,8 @@ template_updated: 2025-01-10 # last qa confirmed: 2025-02-19 portal_type: info collection: qpnotes +# TODO: confirm frequency +reporting_frequency: bi_annually resources: - title: Proactive Publication - Question Period Notes diff --git a/ckanext/canada/tables/reclassification.yaml b/ckanext/canada/tables/reclassification.yaml index 621b68259..e44cc8a24 100644 --- a/ckanext/canada/tables/reclassification.yaml +++ b/ckanext/canada/tables/reclassification.yaml @@ -9,6 +9,8 @@ template_updated: 2024-08-14 # last qa confirmed: 2025-02-19 portal_type: info collection: pd +# TODO: confirm frequency +reporting_frequency: quarterly_f resources: - title: Proactive Publication - Position Reclassification diff --git a/ckanext/canada/tables/service.yaml b/ckanext/canada/tables/service.yaml index bc02b32f3..913c082f9 100644 --- a/ckanext/canada/tables/service.yaml +++ b/ckanext/canada/tables/service.yaml @@ -12,6 +12,8 @@ template_updated: 2025-08-11 # last qa confirmed: 2025-02-19 portal_type: dataset collection: service +# TODO: confirm frequency +reporting_frequency: annually_f guide_link: http://www.gcpedia.gc.ca/wiki/GC_Service_Policy_Agenda diff --git a/ckanext/canada/tables/travela.yaml b/ckanext/canada/tables/travela.yaml index 62147dfb5..ef4e8d639 100644 --- a/ckanext/canada/tables/travela.yaml +++ b/ckanext/canada/tables/travela.yaml @@ -13,6 +13,8 @@ template_updated: 2023-10-05 # last qa confirmed: 2025-02-19 portal_type: info collection: pd +# TODO: confirm frequency +reporting_frequency: annually_f resources: - title: Proactive Publication - Annual Travel, Hospitality and Conferences diff --git a/ckanext/canada/tables/travelq.yaml b/ckanext/canada/tables/travelq.yaml index 5bd2781d0..8bbb8afc6 100644 --- a/ckanext/canada/tables/travelq.yaml +++ b/ckanext/canada/tables/travelq.yaml @@ -14,7 +14,8 @@ template_updated: 2024-08-14 # last qa confirmed: 2025-02-19 portal_type: info collection: pd - +# TODO: confirm frequency +reporting_frequency: monthly resources: - title: Proactive Publication - Travel Expenses @@ -951,4 +952,4 @@ datatables_style: bgColor: b19c7d select: bgColor: d8ccbd - fgColor: 333333 \ No newline at end of file + fgColor: 333333 diff --git a/ckanext/canada/tables/wrongdoing.yaml b/ckanext/canada/tables/wrongdoing.yaml index 582bb4121..a3deb3fd5 100644 --- a/ckanext/canada/tables/wrongdoing.yaml +++ b/ckanext/canada/tables/wrongdoing.yaml @@ -9,6 +9,8 @@ template_updated: 2023-10-05 # last qa confirmed: 2025-02-19 portal_type: info collection: pd +# TODO: confirm frequency +reporting_frequency: quarterly_f resources: - title: Proactive Publication - Founded Wrongdoing From 4e539dade8e8a5352523dfbf09963752aad8094e Mon Sep 17 00:00:00 2001 From: Jesse Vickery Date: Thu, 12 Feb 2026 21:29:40 +0000 Subject: [PATCH 3/3] feat(dev): compliance proof; - Started on templates and views for organization summaries. --- .../assets/internal/canada_internal.css | 58 ++++++++++++++- .../templates/organization/edit_base.html | 1 + .../templates/organization/pd_compliance.html | 70 +++++++++++++++++++ .../templates/organization/read_base.html | 1 + ckanext/canada/view.py | 30 ++++++++ 5 files changed, 159 insertions(+), 1 deletion(-) create mode 100644 ckanext/canada/templates/organization/pd_compliance.html diff --git a/ckanext/canada/assets/internal/canada_internal.css b/ckanext/canada/assets/internal/canada_internal.css index ceea48c4b..3513b1a05 100644 --- a/ckanext/canada/assets/internal/canada_internal.css +++ b/ckanext/canada/assets/internal/canada_internal.css @@ -868,4 +868,60 @@ input#field-resource-url{ ## TODO: DEPRECATED: ## ## REMOVE AFTER FULL PD DATATABLES QA ## ## END ## -########################################*/ \ No newline at end of file +########################################*/ + +/*############################## +## PD Compliance Dashboards ## +################################*/ +.pd-comp-summary-wrapper{ + border: 2px solid #091c2d; + border-radius: 0 0 3px 3px; + margin-bottom: 25px; +} +/* TODO: write hover,active,focus states for details */ +body .pd-comp-summary-wrapper details, +body .pd-comp-summary-wrapper summary{ + margin: 0 !important; + padding: 0 !important; + display: block !important; + border: none !important; + outline: none !important; + text-decoration: none !important; + position: relative; +} + +.pd-comp-summary-wrapper .pd-comp-summary-title{ + display: block; + width: 100%; + min-height: 25px; + background-color: #091c2d; + color: #f7f7f7; + padding: 12px 36px 12px 24px; + font-weight: bold; + text-decoration: none !important; +} + +.pd-comp-summary-wrapper details .pd-comp-summary-title::after{ + content: '\f0fe'; + position: absolute; + right: 24px; + top: 50%; + transform: translate(0, -50%); + display: block; + font-size: 36px; + line-height: 1; + font-family: 'FontAwesome'; +} + +.pd-comp-summary-wrapper details[open] .pd-comp-summary-title::after{ + content: '\f146'; +} + +.pd-comp-summary-wrapper .pd-comp-summary-content{ + padding: 10px; +} +/*############################## +## END ## +## PD Compliance Dashboards ## +## END ## +################################*/ diff --git a/ckanext/canada/templates/organization/edit_base.html b/ckanext/canada/templates/organization/edit_base.html index e003e9f40..7daa5862f 100644 --- a/ckanext/canada/templates/organization/edit_base.html +++ b/ckanext/canada/templates/organization/edit_base.html @@ -30,6 +30,7 @@ {% endif %} {% if h.check_access('organization_update', {'id': organization.id}) %} {{ h.build_nav_icon('organization.manage_members', _('Edit Members'), id=organization.name, icon='users') }} + {{ h.build_nav_icon('canada.pd_compliance_summary', _('Compliance'), id=organization.name, icon='certificate') }} {% elif h.check_access('view_org_members', {'id': organization.id}) %} {{ h.build_nav_icon('organization.members', _('View Members'), id=organization.name, icon='users') }} {% endif %} diff --git a/ckanext/canada/templates/organization/pd_compliance.html b/ckanext/canada/templates/organization/pd_compliance.html new file mode 100644 index 000000000..1018188ae --- /dev/null +++ b/ckanext/canada/templates/organization/pd_compliance.html @@ -0,0 +1,70 @@ +{% extends "organization/edit_base.html" %} + +{% block subtitle %}{{ _('Proactive Disclosure Compliance') }} {{ g.template_title_delimiter }} {{ super() }}{% endblock %} + +{% block primary_content_inner %} + {%- set valid_types = h.recombinant_get_types() -%} + {%- set ns = namespace(genos={}) -%} + {% for t in group_dict.reporting_requirements %} + {% if t not in valid_types %}{% continue %}{% endif %} + {%- do ns.genos.update({t: h.recombinant_get_geno(t)}) -%} + {% endfor %} +
+
+ {% if not group_dict.reporting_requirements %} +
+

{{ h.get_translated(group_dict, 'title') }} {{ _('does not have any reporting requirements.') }}

+

{{ _('If the organization should have reporting requirements, this can be modified by selecting reporting requirements when editing the organization.') }}

+
+ {% else %} + {# TODO: output summary info??? #} + {% for t in group_dict.reporting_requirements %} + {% if t not in valid_types %}{% continue %}{% endif %} + {% set label = ns.genos[t].shortname or ns.genos[t].title %} +
+
+ + {{ _(label) }} + +
+

TODO: output stuff here...

+
+
+
+ {% endfor %} + {% endif %} +
+
+{% endblock %} + +{% block secondary_content %} + {{ super() }} +
+
+  {{ _('What is Proactive Disclosure Compliance?') }} +
+
+

{{ _("Your Organization is required to disclose data under certain data policies.") }}

+

{{ _("Use this page to view upcoming and past disclosure requirements for your organization.") }}

+
+
+{% endblock %} + +{% block scripts %} + {{ super() }} + +{% endblock %} diff --git a/ckanext/canada/templates/organization/read_base.html b/ckanext/canada/templates/organization/read_base.html index 3e8515ff6..fc7d87280 100644 --- a/ckanext/canada/templates/organization/read_base.html +++ b/ckanext/canada/templates/organization/read_base.html @@ -23,6 +23,7 @@ {% endif %} {% if h.check_access('organization_update', {'id': organization.id}) %} {{ h.build_nav_icon('organization.manage_members', _('Edit Members'), id=organization.name, icon='users') }} + {{ h.build_nav_icon('canada.pd_compliance_summary', _('Compliance'), id=organization.name, icon='certificate') }} {% elif h.check_access('view_org_members', {'id': organization.id}) %} {{ h.build_nav_icon('organization.members', _('View Members'), id=organization.name, icon='users') }} {% endif %} diff --git a/ckanext/canada/view.py b/ckanext/canada/view.py index 5a95ea71f..551365981 100644 --- a/ckanext/canada/view.py +++ b/ckanext/canada/view.py @@ -1680,3 +1680,33 @@ def _basic_pager_uri(page: Union[int, str], text: str): setattr(g, 'page', extra_vars['page']) return render('admin/portal_sync.html', extra_vars=extra_vars) + + +@canada_views.route('/organization/compliance/', methods=['GET']) +def pd_compliance_summary(id: str): + set_org(True) + context = cast(Context, {'model': model, 'session': model.Session, 'user': g.user}) + + try: + data_dict: Dict[str, Any] = {'id': id} + check_access('organization_update', context, data_dict) + data_dict['include_datasets'] = False + group_dict = get_action('organization_show')(context, data_dict) + except NotFound: + return abort(404, _('Organization not found')) + except NotAuthorized: + error_message = _('User %r not authorized to view compliance of %s') % \ + (g.user, id) + return abort(403, error_message) + + # TODO: Remove + # ckan 2.9: Adding variables that were removed from c object for + # compatibility with templates in existing extensions + g.group_dict = group_dict + + extra_vars = { + "group_dict": group_dict, + "group_type": 'organization', + } + + return render('organization/pd_compliance.html', extra_vars=extra_vars)