Muchas veces es necesario permitirle al usuario, en forma rápida identificar cual es el estado de una transacción (por ejemplo, conocer si una factura está pagada o no). Y la verdad hacerlo mediante el widget statusbar no es del todo conveniente, debido a que el mismo a simple vista obliga a pensar cual es el estado de la transacción.
Un buen ejemplo son las facturas. Las mismas tienen el estado (el cual puede ser cancelado, borrador o posteado). Pero aparte tienen un campo extra que indica cual es el estado del pago (el campo payment_state) el cual es un campo computado que indica si la factura se encuentra conciliada o no (y si los pagos fueron conciliados).
Cómo se agrega un ribbon a un formulario? Se debe extender la vista del formulario y agregar en forma invisible el campo a informar, para luego agregar el widget inmediatamente despues del elemento sheet del formulario
<xpath expr="//form/sheet" position="inside">
<field name="validation_type" invisible="1" />
<widget name="web_ribbon"
title="Homologacion"
attrs="{'invisible': [('validation_type', '!=', 'production')]}"/>
</xpath>
La idea es; el widget se muestra solo cuando la condición para mostrarlo es verdadera (en este caso validation_type debe ser diferente a producción). Por último, se puede cambiar el color del ribbon mediante el atributo bg_color