From 0c34c257c08366a4a752849604dea480a8c09a58 Mon Sep 17 00:00:00 2001 From: Thorge Petersen <petersen@rz.uni-kiel.de> Date: Fri, 20 Sep 2024 10:43:39 +0200 Subject: [PATCH] Refactored views and blueprint loading --- ckanext/odsh/plugin.py | 46 +++++------------------------------ ckanext/odsh/views/default.py | 11 +++++++++ ckanext/odsh/views/feed.py | 5 ++++ ckanext/odsh/views/harvest.py | 8 ++++++ ckanext/odsh/views/user.py | 7 ++++++ 5 files changed, 37 insertions(+), 40 deletions(-) diff --git a/ckanext/odsh/plugin.py b/ckanext/odsh/plugin.py index 9ca9f663..c368451e 100644 --- a/ckanext/odsh/plugin.py +++ b/ckanext/odsh/plugin.py @@ -46,46 +46,12 @@ class OdshPlugin(p.SingletonPlugin, DefaultTranslation, tk.DefaultDatasetForm): def get_blueprint(self): log.debug("OdshPlugin::get_blueprint") - # Default - bp_default = default.blueprint - rules = [ - ('/info_page', 'info_page', default.info_page), - ('/home', 'start', default.start), - ('/robots.txt', 'robots_txt', default.robots_txt), - ('/not_found', 'not_found', default.not_found), ] - for rule in rules: - bp_default.add_url_rule(*rule) - - # DCAT - # if tk.asbool(tk.config.get('ckanext.dcat.enable_rdf_endpoints', True)): - # helpers_odsh.odsh_remove_route(map, 'dcat_catalog') - # bp_default.add_url_rule('/catalog.<any("xml", "rdf", "n3", "ttl", "jsonld"):_format>', view_func=dcat_view.read_catalog, defaults={'_format': 'xml'}, methods=['GET']) - - # Package - # bp_package = package.blueprint - # rules = [ - # ('/dataset/<id>/resource/<resource_id>', 'redirect_dataset_resource', package.redirect_dataset_resource), ] - # for rule in rules: - # bp_package.add_url_rule(*rule) - - # User - bp_user = user.blueprint - bp_user.add_url_rule(u'/user', endpoint='user_index', - view_func=user.index, strict_slashes=False) - # bp_user.add_url_rule(u'/user/register', view_func=user.register) - - # Harvest - bp_harvest = harvest.blueprint - bp_harvest.add_url_rule(u'/harvest', view_func=harvest.search, strict_slashes=False) - bp_harvest.add_url_rule(u'/harvest/new', view_func=harvest.new) - bp_harvest.add_url_rule(u'/harvest/<id>', view_func=harvest.read) - bp_harvest.add_url_rule(u'/harvest/about/<id>', view_func=harvest.about) - - # Feed - bp_feed = feed.blueprint - bp_feed.add_url_rule(u'/feeds/custom.atom', methods=[u'GET'], view_func=feed.custom) - - return [bp_default, bp_user, bp_harvest, bp_feed] # bp_package + bp_default = default.get_blueprint() + bp_user = user.get_blueprint() + bp_harvest = harvest.get_blueprint() + bp_feed = feed.get_blueprint() + + return [bp_default, bp_user, bp_harvest, bp_feed] # IActions diff --git a/ckanext/odsh/views/default.py b/ckanext/odsh/views/default.py index 61333f69..f1d846d9 100644 --- a/ckanext/odsh/views/default.py +++ b/ckanext/odsh/views/default.py @@ -24,3 +24,14 @@ def robots_txt(): resp = make_response(base.render('home/robots.txt')) resp.headers['Content-Type'] = "text/plain; charset=utf-8" return resp + +rules = [ + ('/info_page', 'info_page', info_page), + ('/home', 'start', start), + ('/robots.txt', 'robots_txt', robots_txt), + ('/not_found', 'not_found', not_found), ] +for rule in rules: + blueprint.add_url_rule(*rule) + +def get_blueprint(): + return blueprint \ No newline at end of file diff --git a/ckanext/odsh/views/feed.py b/ckanext/odsh/views/feed.py index 2305e2f3..e438830a 100644 --- a/ckanext/odsh/views/feed.py +++ b/ckanext/odsh/views/feed.py @@ -65,3 +65,8 @@ def custom(): feed_guid=ckan_feed._create_atom_id(atom_url), feed_url=feed_url, navigation_urls=navigation_urls) + +blueprint.add_url_rule(u'/feeds/custom.atom', methods=[u'GET'], view_func=custom) + +def get_blueprint(): + return blueprint \ No newline at end of file diff --git a/ckanext/odsh/views/harvest.py b/ckanext/odsh/views/harvest.py index c9c3d788..3f33337b 100644 --- a/ckanext/odsh/views/harvest.py +++ b/ckanext/odsh/views/harvest.py @@ -40,3 +40,11 @@ def about(id): if not is_sysadmin: toolkit.abort(403) return dataset.about(id) + +blueprint.add_url_rule(u'/harvest', view_func=search, strict_slashes=False) +blueprint.add_url_rule(u'/harvest/new', view_func=new) +blueprint.add_url_rule(u'/harvest/<id>', view_func=read) +blueprint.add_url_rule(u'/harvest/about/<id>', view_func=about) + +def get_blueprint(): + return blueprint \ No newline at end of file diff --git a/ckanext/odsh/views/user.py b/ckanext/odsh/views/user.py index 7963a52e..e55338bd 100644 --- a/ckanext/odsh/views/user.py +++ b/ckanext/odsh/views/user.py @@ -33,3 +33,10 @@ def read(id=None): if not g.user: return ckan_user_view.login() return ckan_user_view.read(id) + +blueprint.add_url_rule(u'/user', endpoint='user_index', + view_func=index, strict_slashes=False) +# blueprint.add_url_rule(u'/user/register', view_func=user.register) + +def get_blueprint(): + return blueprint \ No newline at end of file -- GitLab