Я пытаюсь удалить календарь P4Artists с сайта Plone 3.3.5, чтобы обновить его до 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 (object, interface).
После этого я могу удалить все их интерфейсы, кроме '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.")