Как получить класс css хэша портлета для портлета календаря, назначенного для настраиваемого диспетчера портлетов?

Я пытаюсь исправить навигацию по месяцам в портлете календаря, назначенном для настраиваемого менеджера портлетов. Этот менеджер вызывается из определенного шаблона страницы браузера с помощью:

<div id="calendar"
    tal:content="structure provider:my.custom.portletmanager" />

К сожалению, менеджер не отображает для меня оболочку с хешем, поэтому я пытаюсь вручную добавить класс css kssattr-portlethash к указанному выше тегу

, чтобы навигация по месяцам работала ( refreshPortlet () это необходимо). Я пробовал это:

from plone.portlets.utils import hashPortletInfo
class SectionHomeView(BrowserView):
    """SectionHome browser view
    """
    implements(ISectionHomeView)

    def __init__(self, context, request):
        self.context = context
        self.request = request

    @property
    def getHash(self):
        info = dict(manager = 'my.custom.portletmanager',
                    category = 'context',
                    key = '/my-section',
                    name = 'mycalendar',
                   )
        return hashPortletInfo(info)

Используя этот код, я получаю хэш, но навигация по календарю по-прежнему не работает. Как я могу получить доступ к информации портлета, такой как менеджер, категория, ключ и имя, чтобы правильно ее вычислить?

Я бы хотел, чтобы у меня было поведение, описанное в column.pt из plone.app.portlets.browser.templates и его класс ColumnPortletManagerRenderer ( portlets / manager.py ), но я не знаю, как сделать так, чтобы мой пользовательский менеджер предоставлял эти ( т.е. как менеджеры по умолчанию).

5
задан Martijn Pieters 29 June 2011 в 12:08
поделиться