NeoVe
NeoVe

Reputation: 3897

XML design OpenErp

I got an xml for my module certificados.py, the .py module being like:

class certificados(osv.osv):

_name = 'certificados.certificados'

_columns = {
            'Item' : fields.integer('Item'), 'Registro Numero' : fields.integer('Registro Numero'),
            'Fecha de Emision': fields.date('Fecha de Emision', required=True, select=True),
            'Fecha de Solicitud': fields.date('Fecha de Solicitud', required=True, select=True),
            'Fecha del Documento': fields.date('Fecha del Documento', required=True, select=True),
            'Vigencia' : fields.integer('Vigencia'), 
            'Codigo Arancelario' : fields.integer('Codigo Arancelario'),
            'cert_ids' : fields.one2many('purchase.requisition.line','requisition_id','Products to Purchase',states={'done': [('readonly', True)]}),
            'Descripcion Arancelaria' : fields.char('Descripcion Arancelaria', size=42, required = True, translate = True), 
            'Especificaciones Tecnicas' : fields.char('Especificaciones Tecnicas', size=60, required = True, translate = True), 
            'Cantidad' : fields.float('Cantidad'), 'Unidad de Medida': fields.many2one('product.uom', 'Unidad de Medida'),
            'Precio Unitario Declarado' : fields.float('Precio Unitario Declarado'), 'Moneda' : fields.many2one('res.currency', 'Moneda'),
            'Valor En Divisas' : fields.float('Valor En Divisas'),
            'Cantidad Consumida' : fields.float('Cantidad Consumida'), 'Cantidad Disponible' : fields.float('Cantidad Disponible'),
            'notas' : fields.text('Notas'),
            }
certificados()

I'm trying to make some design to this module so it shows like purchase requisition, i mean not just the records, but with some 'sheet' and 'h1' and a 'notebook' stuff like that, the code for my the module in it's 'form' section is of the form:

    <record id="student_certificados_form" model="ir.ui.view">
    <field name="name">certificados.result.form</field>
    <field name="model">certificados.certificados</field>
    <field name="type">form</field>
    <field name="arch" type="xml">
        <form string="Introducir los datos" >
            <field name="Codigo Arancelario" />
                    <field name="Descripcion Arancelaria" />
                    <field name="Especificaciones Tecnicas" />
                    <field name="Cantidad" /><field name="Unidad de Medida" />
                    <field name="Precio Unitario Declarado" /><field name="Moneda" />
                    <field name="Valor En Divisas" /><field name="Moneda" />
                    <field name="Cantidad Consumida" />
                    <field name="Cantidad Disponible" />
            </form>
    </field>
</record>

I made some modifications, but i can't get where the error is, the modified version is of the form:

<record id="student_certificados_form" model="ir.ui.view">
    <field name="name">certificados.result.form</field>
    <field name="model">certificados.certificados</field>
    <field name="arch" type="xml">
        <form string="Introducir los datos" version="7.0">
        <sheet>
            <div class="oe_edit_only">
                <label for="Registro Numero" class="oe_inline"/>
            </div>
            <h1>
                <field name="Registro Numero" class="oe_inline"/>

            </h1>
            <group>
                <group>
                    <field name="Fecha de Emision"/>
                    <field name="Fecha de Solicitud"/>
                </group>
                <group>
                    <field name="Fecha del Documento"/>
                    <field name="Vigencia"/>
                 </group>
            </group>
            <notebook>
            <page string="Certificados">
                    <field name="
                        <tree string="certificados_certificados_tree" editable="bottom">
                            <field name="Item" />
                            <field name="Codigo Arancelario" />
                            <field name="Descripcion Arancelaria" />
                            <field name="Especificaciones Tecnicas" />
                            <field name="Precio Unitario Declarado" />
                            <field name="Valor En Divisas" />
                            <field name="Cantidad Consumida" />
                            <field name="Cantidad Disponible" />
                        </tree>
                        <form string="Certificados" version="7.0">
                            <group>
                                <field name="Codigo Arancelario" />
                                <field name="Especificaciones Tecnicas"/>
                                <field name="Valor En Divisas" />
                            </group>
                        </form>

                <separator string="Certificados"/>
                <field name="Item" readonly="1">
                <tree string="Certificados" >
                    <field name="Codigo Arancelario" />
                    <field name="Descripcion Arancelaria" />
                    <field name="Especificaciones Tecnicas" />
                    <field name="Cantidad" /><field name="Unidad de Medida" />
                    <field name="Precio Unitario Declarado" /><field name="Moneda" />
                    <field name="Valor En Divisas" /><field name="Moneda" />
                    <field name="Cantidad Consumida" />
                    <field name="Cantidad Disponible" />
                </tree>
                </field>
            </page>
        </notebook>
    </sheet>
                 <div class="oe_chatter">
          <field name="message_follower_ids" widget="mail_followers"/>
          <field name="message_ids" widget="mail_thread"/>
        </div> 

            </form>
    </field>
</record>

I know there is some typo here, but can't find it, it gives me the Invalid XML architecture, which is commonly referred to a mismatch in the xml fields.

Could somebody give me it's idea where the error is?

Thanks in advance

Upvotes: 0

Views: 717

Answers (2)

Mansi
Mansi

Reputation: 656

Even after improving your field name from 'Codigo Arancelario' to 'Codigo_Arancelario', You will still get an error as From the above code. I can analyse that may be you forgot or you are not aware that for 'one2many' field type, there must be many2one field referencing that object to another object.

Here in your module's scenario, You have to define many2one field in purchase.requisition.line for 'cert_ids'. 

Try This :

instead of 'cert_ids' , use this one over there

'cert_ids' : fields.one2many('purchase.requisition.line','cert_requisition_id','Products to Purchase',states={'done': [('readonly', True)]}),



And after that add an object, in your .py file i.e

class purchase_requisition_line(osv.Model):
    _inherit = 'purchase.requisition.line'
    _columns = {
        'cert_requisition_id': fields.many2one('certificados.certificados', 'Products to Purchase')
    }
purchase_requisition_line()

Hope this will Solve your Error.

Upvotes: 1

Sudhir Arya
Sudhir Arya

Reputation: 3743

There might be a problem in your field definition in py file.

You are defining fields like this: 'Codigo Arancelario' : fields.integer('Codigo Arancelario'), but it must be like this 'Codigo_Arancelario' : fields.integer('Codigo Arancelario'). That is why you are facing the error.

So change your fields definition in py and xml and then try it.

I hope it will work then.

Upvotes: 1

Related Questions