Il 28-Jul-10 9:38 AM, Yuri ha scritto:
> 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
>
>    

Grazie per il suggerimento. Funziona. Ho ricreato un oggetto plone site 
di nome rqpa, ho creato il folder e a quel punto sono stato in grado di 
eliminare definitivamente le rules.
Grazie 1000000 per l'aiuto.

Massimiliano



_______________________________________________
Plone-IT mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/plone-it
http://www.nabble.com/Plone---Italy-f21728.html

Rispondere a