El lunes, 16 de abril de 2018, 10:34:23 (UTC-3), Sergi Almacellas Abellana
escribió:
>
> Debes utilizar el siguiente estructura:
>
> class Wizard:
>
> @classmethod
> def __setup__(cls):
> super(Wizard, cls).__setup__()
> cls._error_messages.update({'my_error': 'No puede...'})
>
> def transition_ok(self):
> self.raise_user_error('my_error')
>
> Si no publicas el código de tu assitente te podremos ayudar mejor.
>
> Un saludo,
>
> --
> Sergi Almacellas Abellana
> www.koolpi.com
> Twitter: @pokoli_srk
>
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.
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'
@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'