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.
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.