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 risolto mettendo object.setTitle(valore) nell'indexer del Title :D

@indexer(IDocumentExtended)
def Title(object, **kw):
     if IDocumentExtended.providedBy(object):
         try:
          a = IMethodAdd(object)
          descr = a.extract_data()
          key = u'Nome Risorsa:'
          if descr.has_key(key):
           title = descr[key]
           object.setTitle(title)
           return title
         except:
          return Missing.Value
     else:
         return Missing.Value

è un po' insulsa, ma funziona.
_______________________________________________
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