Как настроить ckan заголовки навигации по сайту - PullRequest
0 голосов
/ 29 мая 2019

Я хотел бы добавить дополнительные вкладки навигации по сайту в заголовки по умолчанию.

Я пытался работать с решением, указанным здесь , но оно не работает для меня. Я получаю Exception: menu item API cannot be found Ошибка

Это мой код plugin.py

import ckan.plugins as plugins
import ckan.plugins.toolkit as toolkit

class ApiPlugin(plugins.SingletonPlugin, toolkit.DefaultDatasetForm):
    plugins.implements(plugins.IRoutes, inherit=True)
    def before_map(self, m):
        m.connect('api', #name of path route
            '/api', #url to map path to
            controller='ckanext.kimetrica_theme.controller:ApiController', #controller
            action='api') #controller action (method)
        return m

Это мой код header.html

{% ckan_extends %}

{% block header_site_navigation_tabs %}
  {{ h.build_nav_main(
    ('search', _('Datasets')),
    ('organizations_index', _('Organizations')),
    ('group_index', _('Groups')),
    ('about', _('About')),
    ('api', _('api'))
  ) }}
{% endblock %}

А это мой код controller.py

import ckan.plugins as p
from ckan.lib.base import BaseController

class ApiController(BaseController):
    def api(self):
        return p.toolkit.render('api.html')

Я ожидаю, что меню API будет работать так же, как и все остальное меню. У меня также есть мой шаблон (api.html) на месте

Ответы [ 2 ]

0 голосов
/ 12 июня 2019

Я решил этот вопрос, используя расширение ckanext-pages Это расширение позволяет добавлять простые статические страницы и блоги и редактировать их содержимое.

0 голосов
/ 07 июня 2019

Судя по тому, что вы опубликовали, похоже, что вы не настроили plugins.implements(plugins.IConfigurer, inherit=True) для регистрации нового шаблона. Попробуйте ссылаться на это расширение в качестве примера. https://github.com/ckan/ckan/blob/2.8/ckanext/stats/plugin.py для настройки новой страницы.

Вы на правильном пути для меню.

Кроме того, какую версию CKAN вы используете? Вы можете переключить это на план колбы. Как это https://github.com/ckan/ckan/blob/2.8/ckanext/example_flask_iblueprint/plugin.py

Если вы используете 2.9 (в альфах), проверьте эту проблему и комментарии ckan 2.9.0 перед тем, как карта_не вызывать пользовательский контроллер

...