[Plone-IT] Come effettuare una transizione in base ad una condizione valutata all'interno di uno stato

Luca Bel lucabel a gmail.com
Ven 27 Mar 2009 15:10:00 UTC


Ora a me interessa andare in stati diversi a seconda di una data condizione,
> ma vorrei dare la possibilità di un primo stato bozza, l'utente potrebbe
> accorgersi di aver sbagliato e in questo modo al salvataggio passa
> automaticamente ad un altro stato.
>


Un workflow con uno stato in più!





Inoltre c'è un modo per rendere non pù modificabili certi campi del content
> type in determinati stati del worflow?
>


Ridefinisci il template di edit: metti nella skin un file con un nome ben
preciso.
Se il tuo tipo si chiama MioNuovoTipo, dovrai creare un file che si chiama
mionuovotipo_edit.pt nella skin del prodotto.

il file sarà una personalizzazione di Archetypes/skins/archetypes/
edit_macros.pt

Attorno a riga 100 dovresti vedere qualcosa tipo

                <tal:fields repeat="field
python:schematas[fieldset].editableFields(here, visible_only=True)">
                  <metal:fieldMacro
use-macro="python:here.widget(field.getName(), mode='edit')" />
                </tal:fields>

è l'istruzione che per ogni fieldset ti disegna i campi. Tu puoi
trasformarlo in questo modo:

                            <tal:fields condition="python:
fieldset!='default'"
                                        repeat="field
python:schematas[fieldset].editableFields(here, visible_only=True)">
                                <metal:fieldMacro
use-macro="python:here.widget(field.getName(), mode='edit')" />
                            </tal:fields>
                            <tal:fieldset_default
condition="python:fieldset=='default'">
                                  <metal:fieldMacro
use-macro="python:here.widget('title', mode='edit')" />
                                   <metal:fieldMacro
use-macro="python:here.widget('description', mode='edit')" />
                                      ....


                            </tal:fieldset_default>

Ovvero per tutti i campi che non stanno nel fieldset di defaul, stampa
normalmente, per quelli di default, richiama direttamente le macro che ti
servono.
Se un campo lo vuoi non modificabile puoi usare:

<metal:fieldMacro use-macro="python:here.widget('description', mode='view')"
/>

che nel template di edit ti permette di richiamare il widget di view di un
field
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.plone.org/pipermail/plone-plone-it/attachments/20090327/065e2a4c/attachment-0001.html>


Maggiori informazioni sulla lista Plone-IT