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
