Il 27/07/2010 17:33, Massimiliano Magli ha scritto:
> Il 27-Jul-10 2:28 PM, Yuri ha scritto:
>
>> Il 27/07/2010 14:14, Massimiliano Magli ha scritto:
>>
>>
>>> Buongiorno a tutti.
>>> Sto provvedendo ad eliminare da un sito plone (3.3.3) una serie di
>>> rules. Sono riuscito a disabilitarle ma non riesco ad eliminarle. Mi
>>> rimangono nell'interfaccia delle 'regole di contenuto' e quando provo a
>>> eliminarle il sito mi da un errore:
>>>
>>> 2010-07-27 14:04:25 ERROR Zope.SiteErrorLog 1280232265.180.790934067692
>>> http://www.gustosalutequalita.it/en/@@manage-content-rules
>>> Traceback (innermost last):
>>> Module ZPublisher.Publish, line 119, in publish
>>> Module ZPublisher.mapply, line 88, in mapply
>>> Module ZPublisher.Publish, line 42, in call_object
>>> Module plone.app.contentrules.browser.assignments, line 59, in
>>> __call__
>>> KeyError: '/en'
>>> 2010-07-27 14:04:50 ERROR Zope.SiteErrorLog
>>> 1280232290.010.00998793800007
>>> http://www.gustosalutequalita.it/en/@@manage-content-rules
>>> Traceback (innermost last):
>>> Module ZPublisher.Publish, line 119, in publish
>>> Module ZPublisher.mapply, line 88, in mapply
>>> Module ZPublisher.Publish, line 42, in call_object
>>> Module plone.app.contentrules.browser.assignments, line 59, in
>>> __call__
>>> KeyError: '/en'
>>> 2010-07-27 14:05:30 ERROR Zope.SiteErrorLog 1280232330.050.361796515722
>>> http://www.gustosalutequalita.it/en/@@rules-controlpanel
>>> Traceback (innermost last):
>>> Module ZPublisher.Publish, line 119, in publish
>>> Module ZPublisher.mapply, line 88, in mapply
>>> Module ZPublisher.Publish, line 42, in call_object
>>> Module plone.app.contentrules.browser.controlpanel, line 35, in
>>> __call__
>>> Module zope.app.container.ordered, line 227, in __delitem__
>>> Module zope.app.container.contained, line 695, in uncontained
>>> Module zope.event, line 23, in notify
>>> Module zope.component.event, line 26, in dispatch
>>> Module zope.component._api, line 130, in subscribers
>>> Module zope.component.registry, line 290, in subscribers
>>> Module zope.interface.adapter, line 535, in subscribers
>>> Module zope.component.event, line 33, in objectEventNotify
>>> Module zope.component._api, line 130, in subscribers
>>> Module zope.component.registry, line 290, in subscribers
>>> Module zope.interface.adapter, line 535, in subscribers
>>> Module plone.app.contentrules.rule, line 44, in rule_removed
>>> Module OFS.Traversable, line 259, in unrestrictedTraverse
>>> - __traceback_info__: (['folder-per-le-pubblicazioni'], 'rqpa')
>>> AttributeError: REQUEST
>>>
>>> Ho notato il riferimento ad un oggetto (['folder-per-le-pubblicazioni'],
>>> 'rqpa') che pero' non esiste piu' sul sito.
>>> Potete aiutarmi?
>>>
>>>
>>>
>> ricrea il folder, poi cancelli le regole e poi ricancelli il folder.
>> Penso che l'errore derivi dal fatto che le rules prendono la request
>> come self.REQUEST, e per qualche motivo non va.
>>
>>
>>
>>
>
> Ho ricreato il folder 'folder-per-le-pubblicazioni' e seguito le tue
> indicazioni ma niente .. mi da sempre lo stesso errore. Inoltre non capisco a
> cosa si riferisca il secondo termine 'rqpa'. Se non ricordo male era un
> oggetto 'plone site' che avevo creato per fare delle prove ma che poi ho
> definitivamente cancellato.
> Qualche suggerimento?
>
Che versione di Plone è?
Praticamente, dovrebbe esser successo che hai fatto o una copia del
vecchio sito e poi rinominata, o un .zexp.
Le rule vengono assegnate sul container, ma usano il path:
portal = getUtility(ISiteRoot)
for path in get_assignments(rule):
container = portal.unrestrictedTraverse(path)
Il modo più semplice è creare un plone site con il vecchio nome 'rpqa',
creare il folder incriminato e rifare. Se non va, nel folder incriminato
del plone site creato, aggiungere una rule uguale a quella presente
nell'attuale.
Oppure prendere le seguenti righe di codice:
def get_assignments(rule):
annotations = IAnnotations(rule)
return annotations.setdefault(ANNOTATION_KEY, OOSet())
# Events that keep track of rule-to-assignment mappings
def rule_removed(rule, event):
storage = queryUtility(IRuleStorage)
rule_name = rule.__name__
if storage is None:
return
portal = getUtility(ISiteRoot)
for path in get_assignments(rule):
container = portal.unrestrictedTraverse(path)
if container is not None:
assignable = IRuleAssignmentManager(container, None)
if assignable is not None and rule_name in assignable:
del assignable[rule_name]
ad ispirazione per capire come fare a prendere le annotazioni della rule
e cancellare a mano quell'assegnazione.
Oppure qui:
for path in get_assignments(rule):
if path == '/rpqa/folder-per-le-pubblicazioni':
annotations = IAnnotations(rule)
annotations[ANNOTATION_KEY].<cancella il path inesistente>
io segnalerei il bug ( con i dettagli di tutto ) nel bug tracker di plone.
_______________________________________________
Plone-IT mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/plone-it
http://www.nabble.com/Plone---Italy-f21728.html