El lunes, 16 de abril de 2018, 10:59:32 (UTC-3), Sergi Almacellas Abellana 
escribió:
>
> El 16/04/18 a les 15:54, Gloworms Glow ha escrit: 
> >  Si, así lo tengo y hasta el mensaje de error funciona, el problema es 
> > después. Cuando apreto 'Ok' al mensaje de error, no me vuelve a llevar a 
> > la ventana del wizard, sino que me da el error que dije antes. 
>
> Que versión del cliente tienes? Recuerdo que se incluyó alguna 
> corrección de errores de este tipo en la última versión menor. 
>
> Debería estar solucionado en la versión 4.6.5 
>

Estoy usando la version 4.6.0 
 

> > 
> > Acá escribo el código que tengo: 
> > 
> > class ChangeStateAsk(ModelView): 
> >     __name__ = 'change_state.ask' 
> >     date = fields.Date('Date') 
> > 
> > class ChangeDate(Wizard): 
> >     __name__ = 'change_state.date' 
> > 
> >     start = StateTransition() 
> >     ask = StateView('change_state.ask', 
> >                 'md_hhrr.change_state_ask_view_form', [ 
> >                     Button('Cancel', 'end', 'tryton-cancel'), 
> >                     Button('Activate', 'confirm', 'tryton-ok', 
> >                         default=True), 
> >                 ]) 
> >     confirm = StateTransition() 
> > 
> >     def transition_start(self): 
> >         return 'ask' 
>
> Puedes utilizar la propiedad _start_state para indicar que empieze en 
> ask. Así te ahorras la transición start. 
>

Lo tengo así porque pensaba poner otra transición mas adelante. 

> 
> >     @classmethod 
> >     def __setup__(cls): 
> >         super(ChangeDate, cls).__setup__() 
> >         cls._error_messages.update({ 
> >             'incorrect_date': 'No se puede cambiar la fecha', 
> >             }) 
> > 
> >     def transition_confirm(self): 
> >         if (self.ask.date > date.today()): 
> >             self.raise_user_error('incorrect_date') 
> >         return 'end' 
>
> Esto lo puedes hacer también con un dominio en el campo: 
>
> date = fields.Date('Date', domain=[('date', '<=', Date())]) 
>
> de forma que el cliente ya no te va a dejar confirmar si pones un valor 
> incorrecto. 
>
> Esta forma la sabía. Pero mi pregunta es como poner el mensaje de error, 
porque también tengo que usar el mensaje (más adelante) para otros campos 
que tengo que comparar con campos de otras clases y no puedo ponerlos en el 
'domain'

No se si me hago entender. Disculpa!

Un saludo, 
>
>
> -- 
> Sergi Almacellas Abellana 
> www.koolpi.com 
> Twitter: @pokoli_srk 
>

Responder a