[Plone-IT] Attributo storage=MySQLSQLStorage() per ComputedField

Yuri yurj a alfa.it
Mar 21 Lug 2009 15:12:38 UTC


crirusso78 ha scritto:
> Ciao a tutti,
>
> mi occorre riversare in un db tutti gli oggetti creati in plone.
> A questo scopo ho seguito questo tutorial
> http://plone.org/documentation/how-to/archetypes-using-mysql
>
> E' andato tutto perfettamente, solo che a me interesserebbe memorizzare nel
> db anche lo stato in cui si trova il mio content-type, per questo ho usato
> il campo ComputedField cosė composto
>
> ComputedField(
>         name='stato',
>         searchable=1,
>         expression="context.calculateReviewState()",
>         widget=ComputedWidget(
>            label='stato',
>            label_msgid='Arch_label_stato',
>            i18n_domain='Arch',
>         ),
>         storage=MySQLSQLStorage(),        
>     ),
>
> e poi nella sezione metodi ho aggiunto
>  def calculateReviewState(self):
>         wf_tool = getToolByName(self,'portal_workflow')
>         return wf_tool.getInfoFor(self, 'review_state', '')
>
> lo stato del workflow in cui si trova l'oggetto viene pure visualizzato nel
> campo di testo correttamente, ma non viene memorizzato, io ho aggiunto
> storage=MySQLSQLStorage(), per gli altri campi tutto va a buon fine vengono
> memorizzati nel db.
>
> Mi aiutate?
>   

 Il computedfield viene calcolato, credo, in fase di visualizzazione, in 
plone non viene memorizzato nulla, di conseguenza lo storage non serve:


    Computed Field

Read-only field, which value is computed from a python expression

*Different properties*
Name 	Type 	Default 	Description
widget 	widget 	ComputedWidget 	Possible values:

    * LabelWidget
    * ComputedWidget (default)

storage 	storage 	ReadOnlyStorage 	
type 	
	computed 	
mode 	string 	r


Quello che vuoi fare tu invece lo puoi ottenere creando un campo 
qualsiasi (che non sia computedfield) e settando il mutator a una 
funzione che restituisca lo stato. In quel modo il tuo campo viene 
settato come vuoi tu, e memorizzato nello storage che indichi.

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





Maggiori informazioni sulla lista Plone-IT