Publicidad

jueves, 12 de mayo de 2016

Pop-Up (Ventanas Emergentes) Odoo

Tipos de Ventanas Emergentes en Odoo


Como podemos crear una ventana Emergente en Odoo?

Muchos hemos tenido la necesidad de poder enviar mensajes para validar procesos en Odoo, esto nos ayuda a evitar errores de programaciĆ³n, el buen funcionamiento de nuestra logica de negocio o flujo de funcional, etc., mencionare 3 formas de poder enviar ventas emergentes para el usuario:

  1. Ventana de Advertencia desde metodos onchange. Uno de los tipos de mensajes que podemos enviar al usuario es desde un mƩtodo onchange (Evento al Cambio), esto nos puede ayudar para dar aviso al usuario que al modificar un valor del formulario este afectara el comportamiento de ese Registro, por ejemplo aƱadir un producto sin existencias en un pedido de Venta o una tarifa invalida para ciertos productos.

    El  cĆ³digo para enviar este tipo de mensajes es directamente desde el return de nuestro mĆ©todo onchange, si recordamos este envĆ­a un diccionario, solo debemos aƱadir el atributo 'warning' :
    return {'value': res, 'warning': warning }
    El atributo warning recibe un subdiccionario compuesto de 2 partes, el titulo y el mensaje, el cĆ³digo es el siguiente:
    warning = {
               'title': "Advertencia!",
               'message': "Cuerpo del Mensaje de Advertencia!"),
                                }
    Como nota, este tipo de mensajes no detiene el flujo del proceso que estemos ejecutando, solo  envĆ­a una Advertencia al usuario.
  2. Exception ORM (Excepciones Odoo). Este tipo de advertencias a diferencia de los metodos onchange, interrumpe completamente el flujo del proceso que se este ejecutando y hace una reversiĆ³n de lo que hayamos creado, actualizado o borrado.
    Para Ejecutar este tipo de Excepcion, debemos importar la librerĆ­a:
    from openerp.exceptions import except_orm
    
    Posterior a importarla solo debemos integrarla en nuestros metodos, para lanzar una excepcion debemos enviarla de la siguiente forma:
    raise except_orm(_('Error'),
                     _('Mensaje interruptor del Flujo!'))
    Este tipo de errores funcionan para validar parĆ”metros necesarios para nuestro metodo, falta de datos, informaciĆ³n erronea, etc.

  3. Ventana Emergente con mensajes para el Usuario. Este tipo de mensajes nos sirven para dar una aviso al usuario sobre la finalizaciĆ³n de un proceso o la modificaciĆ³n de un registro, el uso que le demos no tiene limites y este tipo de mensajes no interrumpen el flujo del sistema.
    Este mensaje se envĆ­a desde el return de la siguiente manera:
    return {
            'type': 'ir.actions.client',
            'tag': 'action_warn',
            'name': _('Aviso'),
            'context' : context,
            'params': {
               'title': _('Aviso'),
               'text': _(u'Mensaje para el usuario'),
               'sticky': True
           }}
    




6 comentarios:

  1. German porque no haces un libro en espaƱol de odoo seguro que seria un suceso!!

    Buen trabajo

    ResponderBorrar
  2. Buenas tardes disculpa mi ignorancia, pero solo tengo 3 dias en el mundo de odoo y no se realmente donde puedo implementar este ejemplo, realmente le agradeceria mucho si me pudiera ayudar....

    ResponderBorrar
    Respuestas
    1. Mensajes de validaciĆ³n en campos claves o numericos u otro tipo de validaciones

      Borrar
  3. Hola, una consulta... Este puedo usarlo
    a vistas kanban para advertir el cambio de una etapa?

    ResponderBorrar
  4. CĆ³mo puedo emitir una alerta para algo como el vencimiento de un contrato, o algĆŗn parĆ”metro fuera de rango, por ejemplo??

    ResponderBorrar