Agregando funcionalidades de CRM a sus objetos de Odoo

El poco conocido pero poderoso mixin mail.activity.mixin

Gustavo Orrillo
- 22/03/2021 - 1 min. de lectura

Odoo tiene una funcionalidad poco difundida, pero no por ello menos poderosa, que es la de los mixin. Que es la funcionalidad que mediante herencia múltiple brinda capacidades extras a sus objetos. Capacidades como mensajería, agenda de actividades para los objetos; por ejemplo. 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 verán el objeto sale.order tiene herencia múltiple; principalmente mensajería y actividades. Esta herencia es muy común en la mayoría de los objetos de Odoo; los encontramos en facturas, pedidos, clientes, proveedores, etc. A modo de ejemplo les vamos a mostrar como se comporta en el caso de clientes. Por ejemplo en un cliente podemos clickear en "Planificar Actividad" y veremos un pop-up como el que sigue:




Aca podemos observar donde podemos ingresar de forma parametrizada actividades a realizar junto con las fechas y responsables de las mismas. Tambien se puede seleccionar el estado de ellas. 

Por ejemplo, podemos cargar una actividad y marcarla como realizada. 



O asignarselas a terceros. Son inifitas posiblidades. Una funcionalidad que me gusta es la de agregar campos a las vistas tipo lista, donde se muestra la siguiente actividad, su estatus 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. Lo mejor de esos campos? Es que se puede buscar en ellos. Una maravilla la verdad. Por último y no es menor, como todo objeto en Odoo se lo puede extender y agregar funcionalidades. Como por ejemplo, regitrar un pago despues de una llamada. 

 
Acerca de:

Gustavo Orrillo

Passionate about programming, he has implemented Odoo for different types of businesses since 2010. In Moldeo Interactive he is a founding Partner and Programmer; In addition to writing on the Blog about different topics related to the developments he makes.