Ciao Luca,

grazie innanzitutto, ma ti devo chidere dei chiarimenti.
1)Il file zcml in che cartella va inserito?
2)E non ho capito il nome_modulo chi è? E' il mio oggetto che salvo?
3)Inoltre ho effettuato delle prove, credo di aver capito che il metodo che
chiami nome_metodo per intenderci tu lo inserisci nel file dell'oggetto, in
cui c'è definito lo schema con i relativi campi, ma non capisco il primo
parametro che passi all'adpter, ho letto i log e non riconosce il valore che
gli sto passando.
Ipotizzando quindi che il mio oggetto (content type) che salvo è
rappresentato nel file Oggetto.py, mi dici come dovrei scrivere il file zcml
e il rispettivo adpter?

Grazie


Luca82 wrote:
> 
> Bene. Allora siamo nella situazione in cui tu hai un determinato content
> type. Ne crei una istanza, lo compili e salvi.
> A questo punto una cosa pulita che puoi fare secondo me è eseguire la
> transizione che ti interessa via codice, sfruttando
> gli eventi.
> 
> in un file zcml registri un handler in questo modo:
> 
> <configure
>    xmlns="http://namespaces.zope.org/zope";
>    xmlns:plone="http://namespaces.plone.org/plone";
>    xmlns:five="http://namespaces.zope.org/five";>
> 
>     <subscriber handler=".nome_modulo.nome_metodo" />
> </configure>
> 
> nel modulo nome_modulo.py aggiungi qualcosa di simile a:
> 
> from Products.Archetypes.interfaces import IObjectInitializedEvent    #
> Interfaccia per catturare l'evento di primo slvataggio
> from Products.Archetypes.interfaces import IObjectEditedEvent         #
> Interfaccia per catturare tutti i salvataggi di un tipo, successivi al
> primo
> # Ovviamente dovrai adattare solo l'interaccia che ti serve
> from zope.component import adapter
> from Products.CMFCore.utils import getToolByName
> 
> @adapter(IInterfacciaDelTuoTipo, IObjectInitializedEvent)
> def nome_metodo(obj, event):
>    """
>    event: l'evento
>    obj: il tuo oggetto che hai appena compilato e salvato
>    """
>    pw = getToolByName(obj, 'portal_workflow')
> 
>    if obj.MetodoCheVerificaLaCondizione():
>        pw.doActionFor(obj, 'nome_transizione')
>    else:
>       pw.doActionFor(obj, 'nome_altra_transizione')
> 
> Le transizioni ti porteranno in uno stato anzichè in un altro.
> 
> 
> 
> 2009/3/14 crirusso78 <[email protected]>
> 
>>
>> non so Luca,
>>
>> sono poco pratica, comunque cerco di spiegare meglio.
>> Ho tre stati.
>>
>> 1) Stato1, l'utente compila un form digitanto un determinato valore in un
>> campo (quello che dovrò verificare)
>> 2a) Se il valore soddisfa una certa condizione che controllo tramite uno
>> script esterno, vorrei che il flusso saltasse allo stato 3
>> 2b)invece se non viene verificata da stato 1 il sistema deve portarmi in
>> uno
>> stato intermedio chiamato 2
>>
>> Forse così sono stata più chiara?
>> Grazie!
>> Cri
>>
>>
>> Luca82 wrote:
>> >
>> > Non so se ho capito bene il tuo problema, ma se crei due transizioni
>> > automatiche? Poi come guard della transizione metti la chiamata al tuo
>> > metodo.
>> > Dovrebbe venire eseguita soltanto quella che verifica la condizione,
>> nel
>> > momento in cui la condizione risulta valida.
>> >
>> >
>> >
>>
>> --
>> View this message in context:
>> http://n2.nabble.com/Come-effettuare-una-transizione-in-base-ad-una-condizione-valutata-all%27interno-di-uno-stato-tp2477750p2478407.html
>> Sent from the Plone - Italy mailing list archive at Nabble.com.
>>
>>
>>
>> _______________________________________________
>> Plone-IT mailing list
>> [email protected]
>> http://lists.plone.org/mailman/listinfo/plone-it
>> http://www.nabble.com/Plone---Italy-f21728.html
>>
> 
> _______________________________________________
> Plone-IT mailing list
> [email protected]
> http://lists.plone.org/mailman/listinfo/plone-it
> http://www.nabble.com/Plone---Italy-f21728.html
> 

-- 
View this message in context: 
http://n2.nabble.com/Come-effettuare-una-transizione-in-base-ad-una-condizione-valutata-all%27interno-di-uno-stato-tp2477750p2481126.html
Sent from the Plone - Italy mailing list archive at Nabble.com.


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

Rispondere a