Я пытаюсь исправить навигацию по месяцам портлета календаря, назначенного для диспетчера пользовательских портлетов.Этот менеджер вызывается из определенного шаблона страницы браузера с:
<div id="calendar"
tal:content="structure provider:my.custom.portletmanager" />
К сожалению, менеджер не отображает для меня оболочку с хэшем, поэтому я пытаюсь вручную добавить kssattr-portlethash css класс к указанному выше тегу <div>
, чтобы обеспечить работу месяца (для этого нужна 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 ), но я не знаю, как сделатьмой пользовательский менеджер предоставляет их (то есть: как это делают менеджеры по умолчанию).