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