Избавление от календаря Plone4Artists - переход с Plone 3.3.5 на Plone 4.0.7 - PullRequest
0 голосов
/ 28 сентября 2011

Я пытаюсь удалить календарь 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.")

1 Ответ

1 голос
/ 28 сентября 2011

Это интерфейсы, которые применяются только при запуске через zcml. Поэтому единственный способ удалить их - это удалить продукт из вашей настройки.

Источник: http://svn.plone.org/svn/collective/p4a/p4a.plonecalendar/trunk/p4a/plonecalendar/configure.zcml

...