Esta semana, con motivos de celebrarse el día del programador y varios aniversarios importantes dentro de Codize y Exemax, decidimos realizar la Hackaton anual que hacemos en Septiembre. Un poco más corta que otros años, el foco estuvo puesto en el mundo aplicaciones, concretamente en nuestra aplicación de estructuras: Codize Scaffold.
Componentes Tree y Form
Con motivos de codear más rápido un componente custom, y siendo el Tree y el Form los más corrientes de Odoo, la idea en este caso fue replicar algo similar en Codize con todo el comportamiento App. Nada muy distinto a como veníamos trabajando, simplemente tener como herramientas básicas para no perder tanto tiempo armando una base de componente.
Service conversor Odoo XML en Template HTML de Angular
Esta posiblemente sea la funcionalidad estrella de esta Hackaton, algo a lo que le teníamos ganas hace rato. Como sabrán Odoo guarda los XML de las vistas en unos campos, esto hace que sea muy sencillo acceder a los mismos, y por lo tanto producir una vista HTML compatible con nuestras vistas. Digamos que en cierta manera permite convertir esto:
<tree>
<field name="name" />
</tree>
En esto:
<mat-accordion multi>
<mat-expansion-panel *ngFor="let l of list">
<mat-expansion-panel-header>
<mat-panel-title>
{{l.name}}
</mat-panel-title>
</mat-expansion-panel-header>
</mat-expansion-panel>
</mat-accordion>
Es básico pero puede ayudar a replicar vistas de Odoo sin tantos riesgos, por supuesto aun está en fase experimental y sería necesario probarlo con diversas vistas, pero en eso estamos, al menos para la tree y para la form.
¿Se podrían armar vistas dinámicas? En principio si, y puede ser una idea a futuro, pero no por ahora, en principio aun tiene muchas limitaciones como la herencia de vistas de odoo que sería aconsejable resolver.