-1

I am trying to add a chatter in fleet in Vehicles Services Logs and it give me this error when I am trying to update the inherit module that responsible to add the chatter,

this is the model:

# -*- coding: utf-8 -*-
from odoo import models, fields, api

class Fleet_Chatter_service(models.Model):
    _name = 'fleet.chatter.service'
    _inherit = ['fleet.vehicle.log.services', 'mail.thread', 'ir.needaction_mixin']
    _description = "fleet chatter in cost and service"

this is the view:

<odoo>
    <record model="ir.ui.view" id="odt_fleet_service_chatter_form">
      <field name="name">odt.fleet.chatter.service</field>
      <field name="model">fleet.chatter.service</field>
      <field name="inherit_id" ref="fleet.fleet_vehicle_log_services_view_form"/>
      <field name="arch" type="xml">
          <xpath expr="//form/sheet" position="after">
              <div class="oe_chatter">
                  <field name="message_follower_ids" widget="mail_followers"/>
                  <field name="activity_ids" widget="mail_activity"/>
                  <field name="message_ids" widget="mail_thread" />
              </div>
          </xpath>
      </field>
    </record>
</odoo>

and this is the error:

Error:

Odoo Server Error

Traceback (most recent call last): File "C:\odt_work\zawaj\odoo-13\odoo\addons\base\models\ir_ui_view.py", line 394, in check_xml self.postprocess_and_fields(view.model, view_doc, view.id) File "C:\odt_work\zawaj\odoo-13\odoo\addons\base\models\ir_ui_view.py", line 961, in postprocess_and_fields self.raise_view_error(('Model not found: %(model)s') % dict(model=model), view_id) File "C:\odt_work\zawaj\odoo-13\odoo\addons\base\models\ir_ui_view.py", line 614, in raise_view_error raise ValueError(message) ValueError: Model not found: fleet.chatter.service

Error context: View odt.fleet.chatter.service [view_id: 2990, xml_id: n/a, model: fleet.chatter.service, parent_id: 494]

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\odt_work\zawaj\odoo-13\odoo\tools\convert.py", line 712, in parse self._tag_root(de) File "C:\odt_work\zawaj\odoo-13\odoo\tools\convert.py", line 674, in _tag_root f(rec) File "C:\odt_work\zawaj\odoo-13\odoo\tools\convert.py", line 577, in _tag_record record = model._load_records([data], self.mode == 'update') File "C:\odt_work\zawaj\odoo-13\odoo\models.py", line 4168, in _load_records records = self._load_records_create([data['values'] for data in to_create]) File "C:\odt_work\zawaj\odoo-13\odoo\models.py", line 4082, in _load_records_create return self.create(values) File "", line 2, in create File "C:\odt_work\zawaj\odoo-13\odoo\api.py", line 336, in _model_create_multi return create(self, arg) File "C:\odt_work\zawaj\odoo-13\odoo\addons\base\models\ir_ui_view.py", line 475, in create return super(View, self).create(vals_list) File "", line 2, in create File "C:\odt_work\zawaj\odoo-13\odoo\api.py", line 336, in _model_create_multi return create(self, arg) File "C:\odt_work\zawaj\odoo-13\odoo\models.py", line 3843, in create fields[0].determine_inverse(batch_recs) File "C:\odt_work\zawaj\odoo-13\odoo\fields.py", line 1155, in determine_inverse getattr(records, self.inverse)() File "C:\odt_work\zawaj\odoo-13\odoo\addons\base\models\ir_ui_view.py", line 299, in _inverse_arch view.write(data) File "C:\odt_work\zawaj\odoo-13\odoo\addons\base\models\ir_ui_view.py", line 493, in write res = super(View, self).write(self._compute_defaults(vals)) File "C:\odt_work\zawaj\odoo-13\odoo\models.py", line 3632, in write real_recs._validate_fields(vals, inverse_fields) File "C:\odt_work\zawaj\odoo-13\odoo\models.py", line 1206, in _validate_fields check(self) File "C:\odt_work\zawaj\odoo-13\odoo\addons\base\models\ir_ui_view.py", line 396, in check_xml raise ValidationError("%s\n\n%s" % (("Error while validating view"), tools.ustr(e))) odoo.exceptions.ValidationError: ('Error while validating view\n\nModel not found: fleet.chatter.service\n\nError context:\nView odt.fleet.chatter.service\n[view_id: 2990, xml_id: n/a, model: fleet.chatter.service, parent_id: 494]', None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\odt_work\zawaj\odoo-13\odoo\http.py", line 624, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "C:\odt_work\zawaj\odoo-13\odoo\http.py", line 310, in _handle_exception raise pycompat.reraise(type(exception), exception, sys.exc_info()[2]) File "C:\odt_work\zawaj\odoo-13\odoo\tools\pycompat.py", line 14, in reraise raise value File "C:\odt_work\zawaj\odoo-13\odoo\http.py", line 669, in dispatch result = self._call_function(**self.params) File "C:\odt_work\zawaj\odoo-13\odoo\http.py", line 350, in _call_function return checked_call(self.db, *args, **kwargs) File "C:\odt_work\zawaj\odoo-13\odoo\service\model.py", line 94, in wrapper return f(dbname, *args, **kwargs) File "C:\odt_work\zawaj\odoo-13\odoo\http.py", line 339, in checked_call result = self.endpoint(*a, **kw) File "C:\odt_work\zawaj\odoo-13\odoo\http.py", line 915, in call return self.method(*args, **kw) File "C:\odt_work\zawaj\odoo-13\odoo\http.py", line 515, in response_wrap response = f(*args, **kw) File "c:\odt_work\zawaj\odoo-13\addons\web\controllers\main.py", line 1343, in call_button action = self._call_kw(model, method, args, kwargs) File "c:\odt_work\zawaj\odoo-13\addons\web\controllers\main.py", line 1331, in _call_kw return call_kw(request.env[model], method, args, kwargs) File "C:\odt_work\zawaj\odoo-13\odoo\api.py", line 387, in call_kw result = _call_kw_multi(method, model, args, kwargs) File "C:\odt_work\zawaj\odoo-13\odoo\api.py", line 374, in _call_kw_multi result = method(recs, *args, **kwargs) File "", line 2, in button_immediate_upgrade File "C:\odt_work\zawaj\odoo-13\odoo\addons\base\models\ir_module.py", line 72, in check_and_log return method(self, *args, **kwargs) File "C:\odt_work\zawaj\odoo-13\odoo\addons\base\models\ir_module.py", line 634, in button_immediate_upgrade return self._button_immediate_function(type(self).button_upgrade) File "C:\odt_work\zawaj\odoo-13\odoo\addons\base\models\ir_module.py", line 573, in _button_immediate_function modules.registry.Registry.new(self._cr.dbname, update_module=True) File "C:\odt_work\zawaj\odoo-13\odoo\modules\registry.py", line 86, in new odoo.modules.load_modules(registry._db, force_demo, status, update_module) File "C:\odt_work\zawaj\odoo-13\odoo\modules\loading.py", line 419, in load_modules force, status, report, loaded_modules, update_module, models_to_check) File "C:\odt_work\zawaj\odoo-13\odoo\modules\loading.py", line 315, in load_marked_modules perform_checks=perform_checks, models_to_check=models_to_check File "C:\odt_work\zawaj\odoo-13\odoo\modules\loading.py", line 225, in load_module_graph load_data(cr, idref, mode, kind='data', package=package, report=report) File "C:\odt_work\zawaj\odoo-13\odoo\modules\loading.py", line 68, in load_data tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind, report) File "C:\odt_work\zawaj\odoo-13\odoo\tools\convert.py", line 736, in convert_file convert_xml_import(cr, module, fp, idref, mode, noupdate, report) File "C:\odt_work\zawaj\odoo-13\odoo\tools\convert.py", line 803, in convert_xml_import obj.parse(doc.getroot()) File "C:\odt_work\zawaj\odoo-13\odoo\tools\convert.py", line 721, in parse exc_info[2] File "C:\odt_work\zawaj\odoo-13\odoo\tools\pycompat.py", line 13, in reraise raise value.with_traceback(tb) File "C:\odt_work\zawaj\odoo-13\odoo\tools\convert.py", line 712, in parse self._tag_root(de) File "C:\odt_work\zawaj\odoo-13\odoo\tools\convert.py", line 674, in _tag_root f(rec) File "C:\odt_work\zawaj\odoo-13\odoo\tools\convert.py", line 577, in _tag_record record = model._load_records([data], self.mode == 'update') File "C:\odt_work\zawaj\odoo-13\odoo\models.py", line 4168, in _load_records records = self._load_records_create([data['values'] for data in to_create]) File "C:\odt_work\zawaj\odoo-13\odoo\models.py", line 4082, in _load_records_create return self.create(values) File "", line 2, in create File "C:\odt_work\zawaj\odoo-13\odoo\api.py", line 336, in _model_create_multi return create(self, arg) File "C:\odt_work\zawaj\odoo-13\odoo\addons\base\models\ir_ui_view.py", line 475, in create return super(View, self).create(vals_list) File "", line 2, in create File "C:\odt_work\zawaj\odoo-13\odoo\api.py", line 336, in _model_create_multi return create(self, arg) File "C:\odt_work\zawaj\odoo-13\odoo\models.py", line 3843, in create fields[0].determine_inverse(batch_recs) File "C:\odt_work\zawaj\odoo-13\odoo\fields.py", line 1155, in determine_inverse getattr(records, self.inverse)() File "C:\odt_work\zawaj\odoo-13\odoo\addons\base\models\ir_ui_view.py", line 299, in _inverse_arch view.write(data) File "C:\odt_work\zawaj\odoo-13\odoo\addons\base\models\ir_ui_view.py", line 493, in write res = super(View, self).write(self._compute_defaults(vals)) File "C:\odt_work\zawaj\odoo-13\odoo\models.py", line 3632, in write real_recs._validate_fields(vals, inverse_fields) File "C:\odt_work\zawaj\odoo-13\odoo\models.py", line 1206, in _validate_fields check(self) File "C:\odt_work\zawaj\odoo-13\odoo\addons\base\models\ir_ui_view.py", line 396, in check_xml raise ValidationError("%s\n\n%s" % (("Error while validating view"), tools.ustr(e))) odoo.tools.convert.ParseError: "Error while validating view

Model not found: fleet.chatter.service

Error context:
View `odt.fleet.chatter.service`
[view_id: 2990, xml_id: n/a, model: fleet.chatter.service, parent_id: 494]
None" while parsing file:/c:/odt_work/zawaj/zawaj_custom/odt_fleet_chatter/views/chatter_service_view.xml:1, near
<odoo>
    <record model="ir.ui.view" id="odt_fleet_service_chatter_form">
      <field name="name">odt.fleet.chatter.service</field>
      <field name="model">fleet.chatter.service</field>
        <field name="priority" eval="50"/>
      <field name="inherit_id" ref="fleet.fleet_vehicle_log_services_view_form"/>
      <field name="arch" type="xml">
          <xpath expr="//form/sheet" position="after">
              <div class="oe_chatter">
                  <field name="message_follower_ids" widget="mail_followers"/>
                  <field name="activity_ids" widget="mail_activity"/>
                  <field name="message_ids" widget="mail_thread"/>
              </div>
          </xpath>
      </field>
    </record>
</odoo> 

2 Answers2

0

Try to inherit "mail.activity.mixin" as well since it is the one that adds the "activity_ids" field which you use in your view.

# -*- coding: utf-8 -*-
from odoo import models, fields, api

class Fleet_Chatter_service(models.Model):
    _name = 'fleet.chatter.service'
    _inherit = [
        'fleet.vehicle.log.services', 'mail.thread',
        'mail.activity.mixin', 'ir.needaction_mixin'
    ]
    _description = "fleet chatter in cost and service"
Tiki
  • 760
  • 1
  • 8
  • 16
0

Inherit "mail.thread" in your class:

class Fleet_Chatter_service(models.Model):
    _name = 'fleet.chatter.service'
    _inherit = ['mail.thread', 'another.module.needed']

Now you have to add the chatter inside your view: In case of custom view, put it just after the :

        <div class="oe_chatter">
                <field name="message_ids" widget="mail_thread"/>
        </div>

Same if you are working on an inherited view, use this Xpath :

<xpath expr="//form/sheet" position="after">
    <div class="oe_chatter">
          <field name="message_ids" widget="mail_thread"/>
    </div>
</xpath>

Regards,