Skip to Content
Menú
This question has been flagged
1 Respondre
1987 Vistes

Hi fellows! I'm a newbie and i've struggling tyring to inherit a view from te existing fleet module to add some fields from my model.


Here is my XML:

<?xml version="1.0" encoding="utf-8"?>

<odoo>

   <record id="fleet_vehicle_extension_view_form" model="ir.ui.view" >

      <field name="name">fleet.extension</field>

      <field name="model">fleet.vehicle.extension</field>

      <field name="inherit_id" ref="fleet.fleet_vehicle_view_form"/>

      <field name="arch" type="xml">

         <field name="location" position="replace">

            <label for="x_location"/>

            <field name="x_location"/>

         </field>

         <field name="tag_ids" position="after">

           <label for="x_type"/>

           <field name="x_type"/>

        </field>

      </field>

   </record>

</odoo>


But Odoo 14 keeps complaining with 

odoo.tools.convert.ParseError: while parsing /home/administrador/sources/taller/views/fleet_vehicle_extension_view_form.xml:3, near
<record id="fleet_vehicle_extension_view_form" model="ir.ui.view">

Can anybody help me?

Thanks!
Avatar
Descartar

Please post the full error message.

Autor Best Answer

Sorry for the lack of detail.

Just in case, my model is called fleet.vehicle.extension and has only two select fields: x_type and x_location.

This is the full error message:

Odoo Server Error
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 677, in _tag_root
    f(rec)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 580, in _tag_record
    record = model._load_records([data], self.mode == 'update')
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 4209, in _load_records
    records = self._load_records_create([data['values'] for data in to_create])
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 4138, in _load_records_create
    return self.create(values)
  File "<decorator-gen-43>", line 2, in create
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 345, in _model_create_multi
    return create(self, arg)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 482, in create
    return super(View, self).create(vals_list)
  File "<decorator-gen-65>", line 2, in create
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 345, in _model_create_multi
    return create(self, arg)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_fields.py", line 533, in create
    recs = super().create(vals_list)
  File "<decorator-gen-13>", line 2, in create
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 345, in _model_create_multi
    return create(self, arg)
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 3899, in create
    fields[0].determine_inverse(batch_recs)
  File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1185, in determine_inverse
    getattr(records, self.inverse)()
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 300, in _inverse_arch
    view.write(data)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 500, in write
    res = super(View, self).write(self._compute_defaults(vals))
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 3688, in write
    real_recs._validate_fields(vals, inverse_fields)
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 1256, in _validate_fields
    check(self)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 408, in _check_xml
    raise ValidationError(_(
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 391, in _check_xml
    view.postprocess_and_fields(view_doc, validate=True)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 851, in postprocess_and_fields
    arch, name_manager = self._postprocess_view(node, model, validate=validate)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 858, in _postprocess_view
    self.handle_view_error(_('Model not found: %(model)s', model=model))
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 673, in handle_view_error
    raise ValueError(formatted_message).with_traceback(from_traceback) from from_exception
odoo.exceptions.ValidationError: Error while validating view:

Model not found: fleet.vehicle.extension

View name: fleet.extension
Error context:
 view: ir.ui.view(867,)
 xmlid: fleet_vehicle_extension_view_form
 view.model: fleet.vehicle.extension
 view.parent: ir.ui.view(823,)
 file: /home/administrador/sources/taller/views/fleet_vehicle_extension_view_form.xml


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
    result = request.dispatch()
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 683, in dispatch
    result = self._call_function(**self.params)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 359, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 94, in wrapper
    return f(dbname, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 347, in checked_call
    result = self.endpoint(*a, **kw)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 912, in __call__
    return self.method(*args, **kw)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 531, in response_wrap
    response = f(*args, **kw)
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 1381, in call_button
    action = self._call_kw(model, method, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 1369, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 396, in call_kw
    result = _call_kw_multi(method, model, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 383, in _call_kw_multi
    result = method(recs, *args, **kwargs)
  File "<decorator-gen-72>", line 2, in button_immediate_install
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 73, in check_and_log
    return method(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 474, in button_immediate_install
    return self._button_immediate_function(type(self).button_install)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 592, in _button_immediate_function
    modules.registry.Registry.new(self._cr.dbname, update_module=True)
  File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 89, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 453, in load_modules
    processed_modules += load_marked_modules(cr, graph,
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 346, in load_marked_modules
    loaded, processed = load_module_graph(
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 221, in load_module_graph
    load_data(cr, idref, mode, kind='data', package=package)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 69, in load_data
    tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 733, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 799, in convert_xml_import
    obj.parse(doc.getroot())
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 719, in parse
    self._tag_root(de)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 681, in _tag_root
    raise ParseError('while parsing %s:%s, near\n%s' % (
Exception

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 639, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 315, in _handle_exception
    raise exception.with_traceback(None) from new_cause
odoo.tools.convert.ParseError: while parsing /home/administrador/sources/taller/views/fleet_vehicle_extension_view_form.xml:3, near
<record id="fleet_vehicle_extension_view_form" model="ir.ui.view">
      <field name="name">fleet.extension</field>
      <field name="model">fleet.vehicle.extension</field>
      <field name="inherit_id" ref="fleet.fleet_vehicle_view_form"/>
      <field name="arch" type="xml">
         <data><field name="location" position="replace">
            <label for="x_location"/>
            <field name="x_location"/>
         </field>
         <field name="tag_ids" position="after">
           <label for="x_type"/>
           <field name="x_type"/>
        </field>
      </data></field>
   </record>
Avatar
Descartar
Autor

Just in case, here is my model:

# -*- coding: utf-8 -*-

from odoo import models, fields, api

class FleetVehicleExtension(models.Model):

_name = 'fleet.vehicle.extension'

_description = 'Taller'

_inherit = 'fleet.vehicle'

x_location = fields.Selection(

string='Ubicación',

required=True,

default=None,

selection=[

('mll', 'Muellaje'),

('adm', 'Administración'),

('ap', 'Agua potable'),

]

)

x_type = fields.Selection(

string='Tipo',

required=True,

default=None,

selection=[

('c', 'Camioneta'),

('cp', 'Camión pluma'),

('cc', 'Camión capacho'),

]

)

Autor

Solved! I just forgot to declare my module .py file in __init__.py