diff --git a/ckanext-hdx_package/ckanext/hdx_package/controllers/contribute_flow_controller.py b/ckanext-hdx_package/ckanext/hdx_package/controllers/contribute_flow_controller.py index e6d27a5e37..da1cd7a623 100644 --- a/ckanext-hdx_package/ckanext/hdx_package/controllers/contribute_flow_controller.py +++ b/ckanext-hdx_package/ckanext/hdx_package/controllers/contribute_flow_controller.py @@ -7,6 +7,8 @@ import ckan.lib.navl.dictization_functions as dict_fns import ckan.lib.helpers as h +import ckanext.hdx_package.helpers.analytics as analytics + from ckan.common import _, request, response, c from ckan.lib.search import SearchIndexError from ckan.controllers.api import CONTENT_TYPES @@ -110,8 +112,12 @@ def _abort(self, save_type, status_code, message): def _prepare_and_render(self, save_type='', data=None, errors=None, error_summary=None): save_type = save_type if save_type else '' + + analytics_dict = self._generate_analytics_data(data) + template_data = { 'data': data, + 'analytics': analytics_dict, 'errors': errors, 'error_summary': error_summary, 'aborted': False @@ -123,6 +129,20 @@ def _prepare_and_render(self, save_type='', data=None, errors=None, error_summar else: return base.render('contribute_flow/create_edit.html', extra_vars=template_data) + def _generate_analytics_data(self, data): + # in case of an edit event we populate the analytics info + analytics_dict = {} + if data and data.get('id'): + analytics_dict['is_cod'] = analytics.is_cod(data) + analytics_dict['is_indicator'] = analytics.is_indicator(data) + analytics_dict['group_names'], analytics_dict['group_ids'] = analytics.extract_locations_in_json(data) + else: + analytics_dict['is_cod'] = 'false' + analytics_dict['is_indicator'] = 'false' + analytics_dict['group_names'] = '[]' + analytics_dict['group_ids'] = '[]' + return analytics_dict + def _save_or_update(self, context, package_type=None): data_dict = {} try: diff --git a/ckanext-hdx_theme/ckanext/hdx_theme/templates/contribute_flow/create_edit.html b/ckanext-hdx_theme/ckanext/hdx_theme/templates/contribute_flow/create_edit.html index a0c8f2fffa..ea7b4180f0 100644 --- a/ckanext-hdx_theme/ckanext/hdx_theme/templates/contribute_flow/create_edit.html +++ b/ckanext-hdx_theme/ckanext/hdx_theme/templates/contribute_flow/create_edit.html @@ -2,10 +2,22 @@ {% import 'macros/form.html' as form %} +{# The line below is for google analytics #} +{% block analytics_org_name %}{{ data.get('organization',{}).name }}{% endblock %} +{% block analytics_org_id %}{{ data.get('organization',{}).id }}{% endblock %} +{% block analytics_is_cod %}{{ analytics.is_cod }}{% endblock %} +{% block analytics_is_indicator %}{{ analytics.is_indicator }}{% endblock %} +{% block analytics_group_names %}{{ analytics.group_names | safe }}{% endblock %} +{% block analytics_group_ids %}{{ analytics.group_ids | safe }}{% endblock %} +{% block analytics_dataset_name %}{{ data.name }}{% endblock %} +{% block analytics_dataset_id %}{{ data.id }}{% endblock %} + +{% block subtitle %}{{ _('Contribute') }}{% endblock %} + {% set edit_mode = True if data else False %} {% set data = data if data else h.generate_mandatory_fields() %} {% set errors = {} %} -{% set test_options = [{},{'value':'test', 'text':'Test'}, {'value':'test2', 'text':'Test2'}] %} + {% set user_is_sysadmin = h.check_access('sysadmin') %} {% set form_title = _('Edit Details') if edit_mode else _('Add Details') %}