Agregando funcionalidades de mensajería a los modelos de Odoo

26 de junio de 2023 por
Gustavo Orrillo
| Sin comentarios aún
 

Algo que un usuario nota con Odoo son sus funcionalidades de mensajería. Esta funcionalidad usa otra funcionalidad poco conocida a nivel desarrollo, pero no por ello menos poderosa, que es la de los mixin. 

Los mixins son una funcionalidad por la que gracias a la herencia múltiple se le agregan capacidades extras a sus objetos. Por ejemplo capacidades como mensajería, agenda de actividades para los objetos, impresión de reportes ZPL; etc. 

En este caso vamos a hablar del mixin de actividades, o propiamente "mail.activity.mixin" que se incorpora a sus objetos heredando del módulo mail y agregando en la herencia del objeto el modelo mail.activity.mixin, como se lo ve en el siguiente ejemplo:

class SaleOrder(models.Model):
_name = "sale.order"
_inherit = ['portal.mixin', 'mail.thread', 'mail.activity.mixin', 'utm.mixin']
_description = "Sales Order"
_order = 'date_order desc, id desc'
_check_company_auto = True


Como pueden ver el modelo sale.order tiene herencia múltiple; no solo hereda de Models, sino también portal, mensajería y actividades. Esta herencia es muy común en la mayoría de los modelos que son datos maestros y transacciones en Odoo; los encontramos en facturas, pedidos, clientes, proveedores, etc. 

Por ejemplo les vamos a mostrar como se comporta en el caso de clientes. Si en un cliente podemos clickear en "Planificar Actividad" y veremos un pop-up como el que sigue:


Aca se puede ver donde el usuario puede ingresar de forma parametrizada actividades a realizar junto con las fechas y los responsables de las mismas. Tambien se puede seleccionar el estado de ellas. Estas actividades pueden ser... llamar al cliente reclamando el pago, etc, etc...

Otro ejemplo, cargar una actividad y marcarla como realizada.

O asignarselas a terceros... son muchas las posibilidades (sería interesante que se integren con sistemas como 365). Otra funcionalidad que es muy util es poder observar en el objeto (por ejemplo factura o pago) con el que deseo trabajar es la de agregar campos a las vistas tipo tree, donde se aprecia la siguiente actividad programada para el objeto, el estatus de la actidad y cuando se puede realizarla.


Dicha informacion se agrega facilmente a la lista por medio de campos como activity_date_deadline, activity_summary y activity_state (los cuales se agregan automáticamente mediante el mixin). Lo mejor de esos campos de actividades? Es que se puede buscar en ellos.  

Como todo objeto en Odoo se puede extender con facilidad. Por ejemplo, crear una factura o un pago despues de una llamada.

A nivel de vistas, para poder aprovechar las funcionalidades de la mensajería se debe agregar la siguiente sección luego de la sección sheet del formulario

            <div class="oe_chatter">
<field name="message_follower_ids"/>
<field name="activity_ids"/>
<field name="message_ids"/>
</div>

Y por último en las dependencias en __manifest__.py se debe agregar el módulo mail.

Gustavo Orrillo 26 de junio de 2023
Compartir
Categorías
Archivar
Identificarse dejar un comentario