Plone / Solgema.fullcalendar-在以Solgema.fullcalendar作为视图的文件夹中,如何为内容类型使用自定义添加/编辑表单?

时间:2015-09-21 15:27:37

标签: plone dexterity

我有一个灵巧的内容类型,添加了它的行为plone.app.event.dx.behaviors.IEventBasic,我有一个文件夹,其中solgema.fullcalendar是显示视图,日历设置下的事件类型是'my.product .myeventtype”。我有自定义添加和编辑灵巧内容类型的表单。

当文件夹的显示为默认值时,将显示自定义添加/编辑表单并按预期运行。但是,当显示视图是fullcalendar并且我尝试通过日历添加内容时,内容类型的表单会显示,但不是自定义表单。我在updateWidgets函数中尝试了一个print语句,并且print语句没有出现在控制台中。

目前我正在测试一个编辑表单:

from plone.dexterity.browser import add, edit

class Edit(edit.DefaultEditForm):
    def updateWidgets(self):
        super(updateWidgets, self).updateWidgets()
        print "Test"

在config.zcml中:

<browser:page
    for=".my_event_type.IMyEventType"
    name="edit"
    class=".my_event_type.EditForm"
    permission="cmf.ModifyPortalContent"
/>

* dexterity类型的模块是“my_event_type.py”,而在xml文件中,它是“my.product.myeventtype。”

来源:http://docs.plone.org/external/plone.app.dexterity/docs/advanced/custom-add-and-edit-forms.html

我也尝试过使用plone.directives和grok的dexterity.EditForm。

from five import grok
from plone.directives import dexterity

class EditForm(dexterity.EditForm):

    grok.context(IMyEventType)

    def updateWidgets(self):
        """ """
        dexterity.EditForm.updateWidgets(self)
        print "test"

来源:http://docs.plone.org/develop/plone/content/dexterity.html

由于这些尝试似乎不起作用,我如何使用自己的自定义表单添加“事件”?

我想使用自定义添加和编辑表单的原因是我需要能够使用updateWidgets,因此我可以将选项框的默认值设置为等于当前登录用户。此外,我希望能够使用我自己的提交处理程序而不是默认处理程序,但我现在依赖于事件订阅者。

0 个答案:

没有答案