randall randall
randall randall

Reputation: 11

odoo 8 ParseError: "ValidateError Field(s) `arch` failed against a constraint: Invalid view definition

I'm trying to install a module in Odoo 8, and receive the following error:

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 537, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 574, in dispatch
    result = self._call_function(**self.params)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 310, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/service/model.py", line 113, in wrapper
    return f(dbname, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 307, in checked_call
    return self.endpoint(*a, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 803, in __call__
    return self.method(*args, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 403, in response_wrap
    response = f(*args, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 952, in call_button
    action = self._call_kw(model, method, args, {})
  File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 940, in _call_kw
    return checked_call(request.db, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/service/model.py", line 113, in wrapper
    return f(dbname, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 939, in checked_call
    return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/base/module/module.py", line 447, in button_immediate_install
    return self._button_immediate_function(cr, uid, ids, self.button_install, context=context)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/base/module/module.py", line 495, in _button_immediate_function
    registry = openerp.modules.registry.RegistryManager.new(cr.dbname, update_module=True)
  File "/usr/lib/python2.7/dist-packages/openerp/modules/registry.py", line 370, in new
    openerp.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/usr/lib/python2.7/dist-packages/openerp/modules/loading.py", line 355, in load_modules
    loaded_modules, update_module)
  File "/usr/lib/python2.7/dist-packages/openerp/modules/loading.py", line 255, in load_marked_modules
    loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
  File "/usr/lib/python2.7/dist-packages/openerp/modules/loading.py", line 176, in load_module_graph
    _load_data(cr, module_name, idref, mode, kind='data')
  File "/usr/lib/python2.7/dist-packages/openerp/modules/loading.py", line 118, in _load_data
    tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
  File "/usr/lib/python2.7/dist-packages/openerp/tools/convert.py", line 901, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
  File "/usr/lib/python2.7/dist-packages/openerp/tools/convert.py", line 987, in convert_xml_import
    obj.parse(doc.getroot(), mode=mode)
  File "/usr/lib/python2.7/dist-packages/openerp/tools/convert.py", line 853, in parse
    self._tags[rec.tag](self.cr, rec, n, mode=mode)
  File "/usr/lib/python2.7/dist-packages/openerp/tools/convert.py", line 763, in _tag_record
    id = self.pool['ir.model.data']._update(cr, self.uid, rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode, context=rec_context )
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/base/ir/ir_model.py", line 1077, in _update
    res_id = model_obj.create(cr, uid, values, context=context)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/base/ir/ir_ui_view.py", line 255, in create
    context=context)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 336, in old_api
    result = method(recs, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/models.py", line 4084, in create
    record = self.browse(self._create(old_vals))
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 239, in wrapper
    return new_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 472, in new_api
    result = method(self._model, cr, uid, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/models.py", line 4275, in _create
    recs._validate_fields(vals)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 239, in wrapper
    return new_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/models.py", line 1272, in _validate_fields
    raise ValidationError('\n'.join(errors))
ParseError: "ValidateError
Field(s) `arch` failed against a constraint: Invalid view definition

Error details:
Element '<xpath expr="/form/sheet/notebook/page[@string='General Properties']">' cannot be located in parent view

Error context:
View `Inherited Fleet Vehicle Form`
[view_id: 779, xml_id: n/a, model: fleet.vehicle, parent_id: 685]" while parsing /usr/lib/python2.7/dist-packages/openerp/addons/transport_sale-master/transport_sale.xml:125, near
<record model="ir.ui.view" id="inherited_fleet_vehicle_form_view">
            <field name="name">Inherited Fleet Vehicle Form</field>
            <field name="model">fleet.vehicle</field>
            <field name="inherit_id" ref="fleet.fleet_vehicle_form"/>
            <field name="arch" type="xml">
                <data><xpath expr="//label[@for='tag_ids']" position="before">
                      <label for="internal_number" class="oe_edit_only"/>                      
                    <h2>
                        <field name="internal_number" class="oe_inline"/>                                               
                    </h2>
                     <label for="is_trailer" class="oe_edit_only"/>                 
                     <field name="is_trailer" string="Is Trailer" help="Mark this if the vehicle is a trailer"/>
                </xpath>
                <xpath expr="/form/sheet/notebook/page[@string='General Properties']" position="after">
                    <page string="Transport sales">
                        <field name="sales_order_ids" readonly="1">
                            <tree editable="bottom">
                                <field name="sale_order_id"/>
                                <field name="sales_date"/>
                                <field name="partner_departure_id"/>
                                <field name="partner_destination_id"/>
                                <field name="delivery_date"/>
                                <field name="return_date"/>
                            </tree>
                        </field>
                    </page>
                </xpath>
            </data></field>
        </record>

According to the error the offending part of the module seems to be:

 <!-- Fleet vehicle sales form -->
<record model="ir.ui.view" id="inherited_fleet_vehicle_form_view">
  <field name="name">Inherited Fleet Vehicle Form</field>
  <field name="model">fleet.vehicle</field>
  <field name="inherit_id" ref="fleet.fleet_vehicle_form" />
  <field name="arch" type="xml">
    <xpath expr="//label[@for='tag_ids']" position="before">
      <label for="internal_number" class="oe_edit_only"/>
      <h2>
        <field name="internal_number" class="oe_inline" />
      </h2>
      <label for="is_trailer" class="oe_edit_only"/>
      <field name="is_trailer" string="Is Trailer" help="Mark this if the vehicle is a trailer"/>
    </xpath>
    <xpath expr="/form/sheet/notebook/page[@string='General Properties']" position="after">
      <page string="Transport sales">
        <field name="sales_order_ids" readonly="1">
          <tree editable="bottom">
            <field name="sale_order_id" />
            <field name="sales_date" />
            <field name="partner_departure_id" />
            <field name="partner_destination_id" />
            <field name="delivery_date" />
            <field name="return_date" />
          </tree>
        </field>
      </page>
    </xpath>
  </field>
</record>

Found posts about plenty of similar errors with varying solutions which all seem to differ but none seem to work for me. What should I do?

Edit

Cleaned up first code block and replaced with full error in the second after applying

<xpath expr="/form/sheet/group[@string='General Properties']" position="after">

as suggested in the comment below, my error is as follows:

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 537, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 574, in dispatch
    result = self._call_function(**self.params)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 310, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/service/model.py", line 113, in wrapper
    return f(dbname, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 307, in checked_call
    return self.endpoint(*a, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 803, in __call__
    return self.method(*args, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 403, in response_wrap
    response = f(*args, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 952, in call_button
    action = self._call_kw(model, method, args, {})
  File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 940, in _call_kw
    return checked_call(request.db, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/service/model.py", line 113, in wrapper
    return f(dbname, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 939, in checked_call
    return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/base/module/module.py", line 447, in button_immediate_install
    return self._button_immediate_function(cr, uid, ids, self.button_install, context=context)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/base/module/module.py", line 495, in _button_immediate_function
    registry = openerp.modules.registry.RegistryManager.new(cr.dbname, update_module=True)
  File "/usr/lib/python2.7/dist-packages/openerp/modules/registry.py", line 370, in new
    openerp.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/usr/lib/python2.7/dist-packages/openerp/modules/loading.py", line 355, in load_modules
    loaded_modules, update_module)
  File "/usr/lib/python2.7/dist-packages/openerp/modules/loading.py", line 255, in load_marked_modules
    loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
  File "/usr/lib/python2.7/dist-packages/openerp/modules/loading.py", line 176, in load_module_graph
    _load_data(cr, module_name, idref, mode, kind='data')
  File "/usr/lib/python2.7/dist-packages/openerp/modules/loading.py", line 118, in _load_data
    tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
  File "/usr/lib/python2.7/dist-packages/openerp/tools/convert.py", line 901, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
  File "/usr/lib/python2.7/dist-packages/openerp/tools/convert.py", line 987, in convert_xml_import
    obj.parse(doc.getroot(), mode=mode)
  File "/usr/lib/python2.7/dist-packages/openerp/tools/convert.py", line 853, in parse
    self._tags[rec.tag](self.cr, rec, n, mode=mode)
  File "/usr/lib/python2.7/dist-packages/openerp/tools/convert.py", line 763, in _tag_record
    id = self.pool['ir.model.data']._update(cr, self.uid, rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode, context=rec_context )
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/base/ir/ir_model.py", line 1077, in _update
    res_id = model_obj.create(cr, uid, values, context=context)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/base/ir/ir_ui_view.py", line 255, in create
    context=context)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 336, in old_api
    result = method(recs, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/models.py", line 4084, in create
    record = self.browse(self._create(old_vals))
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 239, in wrapper
    return new_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 472, in new_api
    result = method(self._model, cr, uid, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/models.py", line 4275, in _create
    recs._validate_fields(vals)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 239, in wrapper
    return new_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/models.py", line 1272, in _validate_fields
    raise ValidationError('\n'.join(errors))
ParseError: "ValidateError
Field(s) `arch` failed against a constraint: Invalid view definition" while parsing /usr/lib/python2.7/dist-packages/openerp/addons/transport_sale-master/transport_sale.xml:125, near
<record model="ir.ui.view" id="inherited_fleet_vehicle_form_view">
            <field name="name">Inherited Fleet Vehicle Form</field>
            <field name="model">fleet.vehicle</field>
            <field name="inherit_id" ref="fleet.fleet_vehicle_form"/>
            <field name="arch" type="xml">
                <data><xpath expr="//label[@for='tag_ids']" position="before">
                      <label for="internal_number" class="oe_edit_only"/>                      
                    <h2>
                        <field name="internal_number" class="oe_inline"/>       
                    </h2>
                     <label for="is_trailer" class="oe_edit_only"/>                 
                     <field name="is_trailer" string="Is Trailer" help="Mark this if the vehicle is a trailer"/>
                </xpath>
                <xpath expr="/form/sheet/group[@string='General Properties']" position="after">
                    <page string="Transport sales">
                        <field name="sales_order_ids" readonly="1">
                            <tree editable="bottom">
                                <field name="sale_order_id"/>
                                <field name="sales_date"/>
                                <field name="partner_departure_id"/>
                                <field name="partner_destination_id"/>
                                <field name="delivery_date"/>
                                <field name="return_date"/>
                            </tree>
                        </field>
                    </page>
                </xpath>
            </data></field>
        </record>

Edit

after replacing [@string] for [@name] as suggested the error remains as follows below.

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 537, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 574, in dispatch
    result = self._call_function(**self.params)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 310, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/service/model.py", line 113, in wrapper
    return f(dbname, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 307, in checked_call
    return self.endpoint(*a, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 803, in __call__
    return self.method(*args, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 403, in response_wrap
    response = f(*args, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 952, in call_button
    action = self._call_kw(model, method, args, {})
  File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 940, in _call_kw
    return checked_call(request.db, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/service/model.py", line 113, in wrapper
    return f(dbname, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 939, in checked_call
    return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/base/module/module.py", line 447, in button_immediate_install
    return self._button_immediate_function(cr, uid, ids, self.button_install, context=context)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/base/module/module.py", line 495, in _button_immediate_function
    registry = openerp.modules.registry.RegistryManager.new(cr.dbname, update_module=True)
  File "/usr/lib/python2.7/dist-packages/openerp/modules/registry.py", line 370, in new
    openerp.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/usr/lib/python2.7/dist-packages/openerp/modules/loading.py", line 355, in load_modules
    loaded_modules, update_module)
  File "/usr/lib/python2.7/dist-packages/openerp/modules/loading.py", line 255, in load_marked_modules
    loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
  File "/usr/lib/python2.7/dist-packages/openerp/modules/loading.py", line 176, in load_module_graph
    _load_data(cr, module_name, idref, mode, kind='data')
  File "/usr/lib/python2.7/dist-packages/openerp/modules/loading.py", line 118, in _load_data
    tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
  File "/usr/lib/python2.7/dist-packages/openerp/tools/convert.py", line 901, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
  File "/usr/lib/python2.7/dist-packages/openerp/tools/convert.py", line 987, in convert_xml_import
    obj.parse(doc.getroot(), mode=mode)
  File "/usr/lib/python2.7/dist-packages/openerp/tools/convert.py", line 853, in parse
    self._tags[rec.tag](self.cr, rec, n, mode=mode)
  File "/usr/lib/python2.7/dist-packages/openerp/tools/convert.py", line 763, in _tag_record
    id = self.pool['ir.model.data']._update(cr, self.uid, rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode, context=rec_context )
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/base/ir/ir_model.py", line 1077, in _update
    res_id = model_obj.create(cr, uid, values, context=context)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/base/ir/ir_ui_view.py", line 255, in create
    context=context)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 336, in old_api
    result = method(recs, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/models.py", line 4084, in create
    record = self.browse(self._create(old_vals))
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 239, in wrapper
    return new_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 472, in new_api
    result = method(self._model, cr, uid, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/models.py", line 4275, in _create
    recs._validate_fields(vals)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 239, in wrapper
    return new_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/models.py", line 1272, in _validate_fields
    raise ValidationError('\n'.join(errors))
ParseError: "ValidateError
Field(s) `arch` failed against a constraint: Invalid view definition

Error details:
Element '<xpath expr="/form/sheet/notebook/page[@name='General Properties']">' cannot be located in parent view

Error context:
View `Inherited Fleet Vehicle Form`
[view_id: 866, xml_id: n/a, model: fleet.vehicle, parent_id: 830]" while parsing /usr/lib/python2.7/dist-packages/openerp/addons/transport_sale-master/transport_sale.xml:125, near
<record model="ir.ui.view" id="inherited_fleet_vehicle_form_view">
            <field name="name">Inherited Fleet Vehicle Form</field>
            <field name="model">fleet.vehicle</field>
            <field name="inherit_id" ref="fleet.fleet_vehicle_form"/>
            <field name="arch" type="xml">
                <data><xpath expr="//label[@for='tag_ids']" position="before">
                      <label for="internal_number" class="oe_edit_only"/>                      
                    <h2>
                        <field name="internal_number" class="oe_inline"/>                                               
                    </h2>
                     <label for="is_trailer" class="oe_edit_only"/>                 
                     <field name="is_trailer" string="Is Trailer" help="Mark this if the vehicle is a trailer"/>
                </xpath>
                <xpath expr="/form/sheet/notebook/page[@name='General Properties']" position="after">
                    <page string="Transport sales">
                        <field name="sales_order_ids" readonly="1">
                            <tree editable="bottom">
                                <field name="sale_order_id"/>
                                <field name="sales_date"/>
                                <field name="partner_departure_id"/>
                                <field name="partner_destination_id"/>
                                <field name="delivery_date"/>
                                <field name="return_date"/>
                            </tree>
                        </field>
                    </page>
                </xpath>
            </data></field>
        </record>

Running out of space here ;) EDIT is posted below

Upvotes: 0

Views: 2735

Answers (3)

Bhavesh Kagathara
Bhavesh Kagathara

Reputation: 96

I was getting the same error "Field(s) arch failed against a constraint: Invalid view definition", I was using field from another module which needs to be listed in the 'depends' in openerp.py file. hope this helps.

Upvotes: 0

View inheritance

Instead of modifying existing views in place (by overwriting them), Odoo provides view inheritance where children "extension" views are applied on top of root views, and can add or remove content from their parent.

An extension view references its parent using the inherit_id field.

Tip

When matching a single element, the position attribute can be set directly on the element to be found. Both inheritances below will give the same result.

<xpath expr="//field[@name='field_name']" position="after">
    <field name="new_field" />
</xpath>

<field name="field_name" position="after">
    <field name="new_field" />
</field>

Page can not be appended after group, you need to put it in side sheet or after/before any other page.

<xpath expr="/form/sheet/group[@string='General Properties']" position="after">

Update this line to

<page string="existing page string" position="after">
    <!-- add your page here -->
</page>

Very important thing in view inheritance is PRIORITY, but seems mostly ignored.

<field name="priority" eval="50" />

Priority defines when your view are going to be executed for creation while there are parent child hierarchies available.

<record model="ir.ui.view" id="inherited_fleet_vehicle_form_view">
    <field name="name">Inherited Fleet Vehicle Form</field>
    <field name="model">fleet.vehicle</field>
    <field name="inherit_id" ref="fleet.fleet_vehicle_form"/>
    <field name="priority" eval="50" />
    <field name="arch" type="xml">
        <xpath expr="//label[@for='tag_ids']" position="before">
              <label for="internal_number" class="oe_edit_only"/>                      
            <h2>
                <field name="internal_number" class="oe_inline"/>       
            </h2>
             <label for="is_trailer" class="oe_edit_only"/>                 
             <field name="is_trailer" string="Is Trailer" help="Mark this if the vehicle is a trailer"/>
        </xpath>
        <sheet position="inside">
            <page string="Transport sales">
                <field name="sales_order_ids" readonly="1">
                    <tree editable="bottom">
                        <field name="sale_order_id"/>
                        <field name="sales_date"/>
                        <field name="partner_departure_id"/>
                        <field name="partner_destination_id"/>
                        <field name="delivery_date"/>
                        <field name="return_date"/>
                    </tree>
                </field>
            </page>
        </sheet>
    </field>
</record>

Upvotes: 0

bud-e
bud-e

Reputation: 1551

Error shows that the path you defined is not found in parent view(fleet_vehicle_form).

You need to correct that xpath.

As you using Odoo- v8.0,

<xpath expr="/form/sheet/notebook/page[@string='General Properties']" position="after">

change this xpath with the below one...

<xpath expr="/form/sheet/group[@string='General Properties']" position="after">

There is no notebook & page tags in parent view(fleet_vehicle_form). So, that's why it gives you error.

Upvotes: 1

Related Questions