Yuri wrote:
Fabrizio Reale wrote:
Alle mercoledì 19 marzo 2008, Yuri ha scritto:
Yuri wrote:
Salve,

sto cercando di implementare un contatore su un Field di un archetype
custom.

ho scritto:

       StringField("n_erbario",
               schemata="default",
               required=0,
               mutator = "setN_erbario",
               widget=StringWidget(
                       label="Numero Erbario",
visible={'edit': 'invisible', 'view': 'visible'},
                       label_msgid="label_n_erbario",
                       description="""Progressivo erbario""",
                       i18n_domain="plone",
                       size=30,
               ),

e sotto, nella classe:

   security.declareProtected(permissions.ModifyPortalContent,
'setN_erbario')
   def setN_erbario(self, value):
       """ prendo il valore dal contatore """
       v = '100'
       self.getField('n_erbario').set(self, v)

ma non setta il campo. Da web (oggetto/setN_erbario?value=) funziona,
ma da edit no.
Correzione, funziona solo in fase di creazione dell'oggetto, ma non in
edit.

 È quello che voglio, ma non capisco perchè quando edito la form non lo
faccia.

 Forse è necessario averlo nella request??

Idee?

Se lo metti invisibile non viene poi chiamato il metodo mutator.

Interessante :)

Cmq, il problema è che lo incrementa di tre volte... mettendolo nel mutator.

Ho leggermente modificato mxmCounter per contare, funziona egregiamente, ma va di tre in tre :(

forse conviene usare una zcml e attaccarsi all'evento "oggetto creato".

Qualcuno ha il codice sottomano? :)

nel frattempo, usando manage_afterAdd, il contatore viene incrementato di 8 per volta :(


Fabry




_______________________________________________
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

Rispondere a