diff --git a/changes/8129.feature b/changes/8129.feature new file mode 100644 index 00000000000..e0a267ea9f7 --- /dev/null +++ b/changes/8129.feature @@ -0,0 +1,2 @@ +Use htmx on the activity type select element filters. +Use htmx to navigate to newer and older versions of activity stream. \ No newline at end of file diff --git a/changes/8129.removal b/changes/8129.removal new file mode 100644 index 00000000000..89d720ef932 --- /dev/null +++ b/changes/8129.removal @@ -0,0 +1 @@ +Remove `activity-stream.js` module \ No newline at end of file diff --git a/ckan/common.py b/ckan/common.py index 32aaf51f2d7..0f04eccadb1 100644 --- a/ckan/common.py +++ b/ckan/common.py @@ -212,7 +212,7 @@ def params(self): request.args ''' - return cast(flask.Request, self).args + return self.args def _get_c(): @@ -327,7 +327,7 @@ def repr_untrusted(danger: Any): config_declaration = local.config_declaration = Declaration() # Proxies to already thread-local safe objects -request = cast(flask.Request, CKANRequest(_get_request)) +request = CKANRequest(_get_request) # Provide a `c` alias for `g` for backwards compatibility g: Any = LocalProxy(_get_c) c = g diff --git a/ckan/lib/captcha.py b/ckan/lib/captcha.py index d4f0227c9dc..eecc852d531 100644 --- a/ckan/lib/captcha.py +++ b/ckan/lib/captcha.py @@ -2,11 +2,10 @@ import requests -from ckan.common import config -from ckan.types import Request +from ckan.common import config, CKANRequest -def check_recaptcha(request: Request) -> None: +def check_recaptcha(request: CKANRequest) -> None: '''Check a user's recaptcha submission is valid, and raise CaptchaError on failure.''' recaptcha_private_key = config.get('ckan.recaptcha.privatekey') diff --git a/ckan/views/admin.py b/ckan/views/admin.py index 3a6a963223d..248a41a6824 100644 --- a/ckan/views/admin.py +++ b/ckan/views/admin.py @@ -86,7 +86,7 @@ def get(self) -> str: def post(self) -> Union[str, Response]: try: - req: dict[str, Any] = request.form.copy() + req = request.form.copy() req.update(request.files.to_dict()) data_dict = logic.clean_dict( dict_fns.unflatten( diff --git a/ckanext/activity/assets/activity-stream.js b/ckanext/activity/assets/activity-stream.js deleted file mode 100644 index 69874ba0b44..00000000000 --- a/ckanext/activity/assets/activity-stream.js +++ /dev/null @@ -1,34 +0,0 @@ -/* Activity stream - * Handle the pagination for activity list - * - * Options - * - page: current page number - */ -this.ckan.module('activity-stream', function($) { - return { - - /* Initialises the module setting up elements and event listeners. - * - * Returns nothing. - */ - initialize: function () { - $('#activity_types_filter_select').on( - 'change', - this._onChangeActivityType - ); - }, - - - /* Filter using the selected - * activity type - * - * Returns nothing - */ - _onChangeActivityType: function (event) { - // event.preventDefault(); - url = $("#activity_types_filter_select option:selected" ).data('url'); - window.location = url; - }, - - }; -}); diff --git a/ckanext/activity/assets/webassets.yml b/ckanext/activity/assets/webassets.yml index e762585c583..596cac565bb 100644 --- a/ckanext/activity/assets/webassets.yml +++ b/ckanext/activity/assets/webassets.yml @@ -6,7 +6,6 @@ activity: - base/main contents: - dashboard.js - - activity-stream.js activity-css: output: ckanext-activity/%(version)s_activity.css diff --git a/ckanext/activity/templates/group/activity_stream.html b/ckanext/activity/templates/group/activity_stream.html index 0a7484e6c82..f6e4dc08ed1 100644 --- a/ckanext/activity/templates/group/activity_stream.html +++ b/ckanext/activity/templates/group/activity_stream.html @@ -3,13 +3,13 @@ {% block subtitle %}{{ _('Activity Stream') }} {{ g.template_title_delimiter }} {{ super() }}{% endblock %} {% block primary_content_inner %} - - {% if activity_types is defined %} - {% snippet 'snippets/activity_type_selector.html', id=id, activity_type=activity_type, activity_types=activity_types, blueprint='activity.group_activity' %} - {% endif %} - - {% snippet 'snippets/stream.html', activity_stream=activity_stream, id=id, object_type='group' %} - - {% snippet 'snippets/pagination.html', newer_activities_url=newer_activities_url, older_activities_url=older_activities_url %} - -{% endblock %} + {% snippet 'snippets/activity_stream.html', + activity_stream=activity_stream, + id=id, + object_type='group', + group_type=group_type, + activity_types=activity_types, + blueprint='activity.group_activity', + newer_activities_url=newer_activities_url, + older_activities_url=older_activities_url %} +{% endblock primary_content_inner %} \ No newline at end of file diff --git a/ckanext/activity/templates/organization/activity_stream.html b/ckanext/activity/templates/organization/activity_stream.html index c69b210c020..a2685b37ef8 100644 --- a/ckanext/activity/templates/organization/activity_stream.html +++ b/ckanext/activity/templates/organization/activity_stream.html @@ -3,12 +3,13 @@ {% block subtitle %}{{ _('Activity Stream') }} {{ g.template_title_delimiter }} {{ super() }}{% endblock %} {% block primary_content_inner %} - - {% if activity_types is defined %} - {% snippet 'snippets/activity_type_selector.html', id=id, activity_type=activity_type, activity_types=activity_types, blueprint='activity.organization_activity' %} - {% endif %} - - {% snippet 'snippets/stream.html', activity_stream=activity_stream, id=id, object_type='organization', group_type=group_type %} - - {% snippet 'snippets/pagination.html', newer_activities_url=newer_activities_url, older_activities_url=older_activities_url %} -{% endblock %} + {% snippet 'snippets/activity_stream.html', + activity_stream=activity_stream, + id=id, + object_type='organization', + group_type=group_type, + activity_types=activity_types, + blueprint='activity.organization_activity', + newer_activities_url=newer_activities_url, + older_activities_url=older_activities_url %} +{% endblock primary_content_inner %} \ No newline at end of file diff --git a/ckanext/activity/templates/organization/read_base.html b/ckanext/activity/templates/organization/read_base.html index 2aa814f258f..7cd7f845466 100644 --- a/ckanext/activity/templates/organization/read_base.html +++ b/ckanext/activity/templates/organization/read_base.html @@ -3,4 +3,4 @@ {% block content_primary_nav %} {{ super() }} {{ h.build_nav_icon('activity.organization_activity', _('Activity Stream'), id=group_dict.name, offset=0, icon='clock') }} -{% endblock content_primary_nav %} +{% endblock content_primary_nav %} \ No newline at end of file diff --git a/ckanext/activity/templates/package/activity_stream.html b/ckanext/activity/templates/package/activity_stream.html index 40e663e3442..115208fc2e4 100644 --- a/ckanext/activity/templates/package/activity_stream.html +++ b/ckanext/activity/templates/package/activity_stream.html @@ -3,22 +3,13 @@ {% block subtitle %}{{ _('Activity Stream') }} {{ g.template_title_delimiter }} {{ super() }}{% endblock %} {% block primary_content_inner %} - {% if activity_types is defined %} - {% snippet 'snippets/activity_type_selector.html', id=id, activity_type=activity_type, activity_types=activity_types, blueprint='dataset.activity' %} - {% endif %} - - {% if activity_stream|length > 0 %} - {% snippet 'snippets/stream.html', activity_stream=activity_stream, id=id, object_type='package' %} - {% else %} -

- {% if activity_type %} - {{ _('No activity found for this type') }} - {% else %} - {{ _('No activity found') }}. - {% endif %} -

- {% endif %} - - {% snippet 'snippets/pagination.html', newer_activities_url=newer_activities_url, older_activities_url=older_activities_url %} - -{% endblock %} + {% snippet 'snippets/activity_stream.html', + activity_stream=activity_stream, + id=id, + object_type='package', + group_type=group_type, + activity_types=activity_types, + blueprint='activity.package_activity', + newer_activities_url=newer_activities_url, + older_activities_url=older_activities_url %} +{% endblock primary_content_inner %} \ No newline at end of file diff --git a/ckanext/activity/templates/package/read_base.html b/ckanext/activity/templates/package/read_base.html index c0ec7143728..b7b590065af 100644 --- a/ckanext/activity/templates/package/read_base.html +++ b/ckanext/activity/templates/package/read_base.html @@ -3,4 +3,4 @@ {% block content_primary_nav %} {{ super() }} {{ h.build_nav_icon('activity.package_activity', _('Activity Stream'), id=pkg.id if is_activity_archive else pkg.name, icon='clock') }} -{% endblock content_primary_nav %} +{% endblock content_primary_nav %} \ No newline at end of file diff --git a/ckanext/activity/templates/snippets/activity_stream.html b/ckanext/activity/templates/snippets/activity_stream.html new file mode 100644 index 00000000000..1c552406208 --- /dev/null +++ b/ckanext/activity/templates/snippets/activity_stream.html @@ -0,0 +1,17 @@ +{% if activity_types is defined %} + {% snippet 'snippets/activity_type_selector.html', id=id, activity_type=activity_type, activity_types=activity_types, blueprint=blueprint %} +{% endif %} + +{% if activity_stream|length > 0 %} + {% snippet 'snippets/stream.html', activity_stream=activity_stream, id=id, object_type=object_type %} +{% else %} +

+ {% if activity_type %} + {{ _('No activity found for this type') }} + {% else %} + {{ _('No activity found') }}. + {% endif %} +

+{% endif %} + +{% snippet 'snippets/pagination.html', newer_activities_url=newer_activities_url, older_activities_url=older_activities_url %} \ No newline at end of file diff --git a/ckanext/activity/templates/snippets/activity_type_selector.html b/ckanext/activity/templates/snippets/activity_type_selector.html index fe3abb44790..b2778148a14 100644 --- a/ckanext/activity/templates/snippets/activity_type_selector.html +++ b/ckanext/activity/templates/snippets/activity_type_selector.html @@ -9,16 +9,16 @@ blueprint - blueprint to call when selecting an activity type to filter by (eg: dataset.activity) #} -
+