我正在尝试从Plone 3.3.5网站删除P4Artists日历,将其升级为Plone 4.0.7。
我运行了一个脚本来删除所有对象的所有接口,特别是:
'p4a.subtyper.interfaces.ISubtyped', 'p4a.calendar.interfaces.ICalendarEnhanced', 'p4a.calendar.interfaces.IPossibleCalendar', 'p4a.calendar.interfaces.ICalendarConfig', 'p4a.calendar.interfaces.IEventProvider', 'p4a.calendar.interfaces.IEvent', 'p4a.calendar.interfaces.IBasicCalendarSupport', 'p4a.calendar.interfaces.ICalendarSupport'
我使用的脚本使用zope.interfaces.noLongerProvides来取消它们的对象。首先,我进行目录搜索并找到带有接口的对象,然后是noLongerProvides(对象,接口)。
这样做之后,除了'p4a.calendar.interfaces.IPossibleCalendar'之外,我能够删除所有接口。此接口似乎应用于站点上的所有文件夹和集合,并且在尝试删除它们时,我得到一个例外。有没有人知道这个界面的更多信息以及摆脱它的正确方法是什么?
编辑:
以下是我的脚本生成的错误消息:
Exception at removeinterfaces for interface p4a.calendar.interfaces.IPossibleCalendar
Exception type: exceptions.ValueError
Exception value: Can only remove directly provided interfaces.
Exception traceback (starting next line):
File "remove-p4a.py", line 53, in removeinterfaces
noLongerProvides(obj, interface)
File "d:\plone-3.3.5-teste-20110927\zope2\lib\python\zope\interface\declarations.py",line 969, in noLongerProvides
raise ValueError("Can only remove directly provided interfaces.")
答案 0 :(得分:1)
这些似乎是仅在启动时通过zcml应用的接口。因此,删除它们的唯一方法是从您的设置中删除该产品。
来源:http://svn.plone.org/svn/collective/p4a/p4a.plonecalendar/trunk/p4a/plonecalendar/configure.zcml