odoopython-3.10odoo-17

How to add a new field in the Odoo's CRM lead view?


I have created a new attribute, and it is already visible in debug mode when I go to see the raw record data.. enter image description here

Now I am trying to add this info somewhere in the main crm lead page (behind).

For that, I created a new addon, with views/crm_lead_views.xml as follows:

<?xml version="1.0"?>
<odoo>
    <record id="crm_lead_view_form" model="ir.ui.view">
       <field name="name">crm.lead.view.form</field>
        <field name="model">crm.lead</field>
        <field name="inherit_id" ref="crm.crm_case_form_view_leads"/>
        <field name="arch" type="xml">
            <xpath expr="//form/sheet/notebook/page[@name='internal_notes']" position="after">
                <page string="X App Type">
                    <group>
                        <field name="x_app_type"/>
                    </group>
                </page>
            </xpath>
        </field>
    </record>
</odoo>

I also tried with another approach..

<odoo>
    <record id="view_crm_case_form_view_leads_custom" model="ir.ui.view">
        <field name="name">crm.lead.form.view.custom</field>
        <field name="model">crm.lead</field>
        <field name="inherit_id" ref="crm.crm_case_form_view_leads" />
        <field name="arch" type="xml">
            <field name="phone" position="after">
                <field name="x_app_id"/>
            </field>
        </field>
    </record>
</odoo>

But I'm always getting error when activating my module. For the first example, I'm getting the following error:

RPC_ERROR
Odoo Server Error
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/tools/cache.py", line 99, in lookup
    r = d[key]
  File "<decorator-gen-5>", line 2, in __getitem__
  File "/usr/lib/python3/dist-packages/odoo/tools/func.py", line 87, in locked
    return func(inst, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/tools/lru.py", line 34, in __getitem__
    a = self.d[obj]
KeyError: ('ir.model.data', <function IrModelData._xmlid_lookup at 0x7f6728902a70>, 'crm.crm_case_form_view_leads')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 556, in _tag_root
    f(rec)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 421, in _tag_record
    f_val = self.id_get(f_ref, raise_if_not_found=nodeattr2bool(rec, 'forcecreate', True))
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 538, in id_get
    res = self.model_id_get(id_str, raise_if_not_found)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 544, in model_id_get
    return self.env['ir.model.data']._xmlid_to_res_model_res_id(id_str, raise_if_not_found=raise_if_not_found)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_model.py", line 2189, in _xmlid_to_res_model_res_id
    return self._xmlid_lookup(xmlid)
  File "<decorator-gen-43>", line 2, in _xmlid_lookup
  File "/usr/lib/python3/dist-packages/odoo/tools/cache.py", line 104, in lookup
    value = d[key] = self.method(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_model.py", line 2182, in _xmlid_lookup
    raise ValueError('External ID not found in the system: %s' % xmlid)
ValueError: External ID not found in the system: crm.crm_case_form_view_leads

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 1765, in _serve_db
    return service_model.retrying(self._serve_ir_http, self.env)
  File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 133, in retrying
    result = func()
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 1792, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 1996, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_http.py", line 222, in _dispatch
    result = endpoint(**request.params)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 722, in route_wrapper
    result = endpoint(self, *args, **params_ok)
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/dataset.py", line 28, in call_button
    action = self._call_kw(model, method, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/dataset.py", line 20, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 468, in call_kw
    result = _call_kw_multi(method, model, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 453, in _call_kw_multi
    result = method(recs, *args, **kwargs)
  File "<decorator-gen-83>", line 2, in button_immediate_upgrade
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 75, in check_and_log
    return method(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 657, in button_immediate_upgrade
    return self._button_immediate_function(self.env.registry[self._name].button_upgrade)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 590, in _button_immediate_function
    registry = modules.registry.Registry.new(self._cr.dbname, update_module=True)
  File "<decorator-gen-16>", line 2, in new
  File "/usr/lib/python3/dist-packages/odoo/tools/func.py", line 87, in locked
    return func(inst, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 113, in new
    odoo.modules.load_modules(registry, force_demo, status, update_module)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 476, in load_modules
    processed_modules += load_marked_modules(env, graph,
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 364, in load_marked_modules
    loaded, processed = load_module_graph(
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 227, in load_module_graph
    load_data(env, idref, mode, kind='data', package=package)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 71, in load_data
    tools.convert_file(env, package.name, filename, idref, mode, noupdate, kind)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 627, in convert_file
    convert_xml_import(env, module, fp, idref, mode, noupdate)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 693, in convert_xml_import
    obj.parse(doc.getroot())
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 613, in parse
    self._tag_root(de)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 569, in _tag_root
    raise ParseError('while parsing %s:%s, somewhere inside\n%s' % (
odoo.tools.convert.ParseError: while parsing /usr/lib/python3/dist-packages/odoo/addons/ricardomartins_customfields/views/crm_lead_views.xml:3, somewhere inside
<record id="crm_lead_view_form" model="ir.ui.view">
       <field name="name">crm.lead.view.form</field>
        <field name="model">crm.lead</field>
        <field name="inherit_id" ref="crm.crm_case_form_view_leads"/>
        <field name="arch" type="xml">
            <xpath expr="//form/sheet/notebook/page[@name='internal_notes']" position="after">
                <page string="X App Type">
                    <group>
                        <field name="x_app_type"/>
                    </group>
                </page>
            </xpath>
        </field>
    </record>

The above server error caused the following client error:
RPC_ERROR: Odoo Server Error
    RPCError@https://odoo.ricardomartins.net.br/web/assets/debug/web.assets_web.js:27764:9 (/web/static/src/core/network/rpc_service.js:11)
    makeErrorFromResponse@https://odoo.ricardomartins.net.br/web/assets/debug/web.assets_web.js:27790:19 (/web/static/src/core/network/rpc_service.js:37)
    jsonrpc/promise</<@https://odoo.ricardomartins.net.br/web/assets/debug/web.assets_web.js:27838:48 (/web/static/src/core/network/rpc_service.js:85)

I have never created anything for Odoo, but just want to find a nice way to display the recently added fields.

Any help is appreciated.


Solution

  • According to the picture in your question, this is the CRM lead form which has the following record id crm.crm_lead_view_form