On Monday 12 July 2010, Yuri wrote:
> Il 12/07/2010 15:25, Riccardo Lemmi ha scritto:
> > On Monday 12 July 2010, Yuri wrote:
> >> Salve!
> >>
> >>    dovrei sovrascrivere il metodo Title di un Document, nel caso sia
> >> applicata una marker interface.
> >>
> >>    Qual è il modo più semplice? Non vorrei subclassare o modificare il
> >> codice, vorrei poter dire che il metodo Title di quell'oggetto, per la
> >> mia interfaccia, è implementato nel mio modulo.
> >>
> >>    Idee?
> >
> > Puoi solo fare un monkey patch, basta eseguire una cosa di questo tipo:
> >
> > from yourmodule import yourcontent
> > def newTitle(self):
> >     # ...
> >
> > yourcotent.YourContent = newTitle
> >
> > nel codice di newTitle controllerai la marker interface.
>
> Ho visto che con ISchemaModifier si può cambiare lo schema, secondo te
> se cambio l'accessor (field.accessor = mio_metodo ), funziona?

ISchemaModifier è parte di SchemaExtender serve per modificare lo schema ma 
non mi risulta che permetta di sovrascrivere gli accessori di un field 
esistente.

> Non si può fare con qualche adapter? Ad esempio con collective.indexer
> sono riuscito ad indicizzare e salvare nei metadata come volevo io per
> l'indice di Title, solo che non riesco a settarlo come voglio io.

Gli indici li puoi ridefinire o creare come preferisci.

Riguardo all'uso di adpater a me non risulta che ci sia del codice che cerca 
una qualche interfaccia da adattare. Puoi dare uno sguardo a 
Archetypes/ClassGen.py, da quel codice si vede che i metodi sono creati come 
attributi.

>   L'alternativa potrebbe essere settare la default view a una custom,
> quando cambio l'interfaccia (uso subtyper), sottoscrivendomi agli eventi
> di subtyper.

Non so a cosa ti riferisci.
-- 
Riccardo Lemmi                           Email:   ricca...@reflab.com
Reflab S.r.l. - Plone Design, Development and Consulting
Phone: +39 349 4620820                         http://www.reflab.com

Attachment: signature.asc
Description: This is a digitally signed message part.

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

Rispondere a