[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