Esto sería el XML, extraído del fichero openacademy/views/openacademy.xml del tutorial:
<?xml version="1.0" encoding="utf-8"?> <openerp> <data> <!-- Full id location: action="openacademy.course_list_action" It is not required when it is the same module --> <!-- session form view --> <record model="ir.ui.view" id="session_form_view"> <field name="name">session.form</field> <field name="model">openacademy.session</field> <field name="arch" type="xml"> <form string="Session Form"> <sheet> <group> <field name="name"/> <field name="start_date"/> <field name="duration"/> <field name="seats"/> </group> </sheet> </form> </field> </record> <record model="ir.actions.act_window" id="session_list_action"> <field name="name">Sessions</field> <field name="res_model">openacademy.session</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> </record> <menuitem id="session_menu" name="Sessions" parent="openacademy_menu" action="session_list_action"/> </data> </openerp>
Y esto es exactamente lo mismo en YAML (lo guardaríamos como openacademy/views/openacademy.yml):
# Full id location: # action="openacademy.course_list_action" # It is not required when it is the same module # Session form view - !record {model: ir.ui.view, id: session_form_view} name: session.form model: openacademy.session arch: | <form string="Session Form"> <sheet> <group> <field name="name"/> <field name="start_date"/> <field name="duration"/> <field name="seats"/> </group> </sheet> </form> - !record {model: ir.actions.act_window, id: session_list_action} name: Sessions res_model: openacademy.session view_type: form view_mode: tree,form - !menuitem {id: session_menu, name: Sessions parent: openacademy_menu action: session_list_action}
Como ves, al crear la vista al final hay que acabar usando XML, pero desde luego el resto del documento se beneficia bastante de la sintaxis YAML.
La pega es que será complicado que encuentres un editor de texto que te resalte la sintaxis de XML y YAML en el mismo documento. Quizá convenga usar XML para las vistas y YAML para lo demás.
Por cierto, los elementos tipo !record
son constructores personalizados
de Odoo (es decir, no es YAML estándar). Consulta el fichero
yaml_tag.py
para ver todos los que hay.