摆脱Plone4Artists日历 - 从Plone 3.3.5迁移到Plone 4.0.7

时间:2011-09-27 21:14:25

标签: plone

我正在尝试从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.")

1 个答案:

答案 0 :(得分:1)

这些似乎是仅在启动时通过zcml应用的接口。因此,删除它们的唯一方法是从您的设置中删除该产品。

来源:http://svn.plone.org/svn/collective/p4a/p4a.plonecalendar/trunk/p4a/plonecalendar/configure.zcml