Hi stackoverflow community !
I am trying to add a button in the header of helpdesk ticket view in Odoo 16.
To do this, I created a dedicated module, in which I have
-user:
-helpdesk_ticket_custo
-models
+ __init__.py
+ helpdesk_ticket_custo.py
-security
+ ir.model.access.csv
-views
+ helpdesk_ticket_custo_views.xml
+ __init__.py
+ __manifest__.py
I face an error during the update of my custo module
Here is my view
<odoo>
<record id="inherited_helpdesk_ticket_custo_view_form" model="ir.ui.view">
<field name="name">helpdesk.ticket.custo.form</field>
<field name="model">helpdesk.ticket.custo</field>
<field name="inherit_id" ref="helpdesk.helpdesk_ticket_view_form"/>
<field name="arch" type="xml">
<xpath expr="//header" position="inside">
<button name="action_view_send_to_customer"
type="object"
class="oe_stat_button"
icon="fa-truck"
string="Renvoyer"
help="Create out-sav to send back product to customer"/>
</xpath>
</field>
</record>
</odoo>
- My view says to use my model helpdesk.ticket.custo
- AND says to inherit from helpdesk.ticket because I want to insert in the existing view just a button
So here is my model :
from odoo import fields,models
class Helpdesk_Ticket_Custo(models.Model):
_name = "helpdesk.ticket.custo"
_description = "Surcouche pour le module assistance"
__inherit = "helpdesk.ticket"
def action_view_send_to_customer(self):
print('succès!')
return
Seems easy :/
But I have this error : Field stage_id
does not exist
I am not understanding what is the problem
Thank you for your help ...
I am expecting to update my module with no error, and see my button added to the existing view of helpdesk.ticket
The whole stacktrace
Traceback (most recent call last):
File "/home/odoo/src/odoo/odoo/http.py", line 1589, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "/home/odoo/src/odoo/odoo/service/model.py", line 133, in retrying
result = func()
File "/home/odoo/src/odoo/odoo/http.py", line 1616, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "/home/odoo/src/odoo/odoo/http.py", line 1820, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_http.py", line 154, in _dispatch
result = endpoint(**request.params)
File "/home/odoo/src/odoo/odoo/http.py", line 697, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "/home/odoo/src/odoo/addons/web/controllers/dataset.py", line 46, in call_button
action = self._call_kw(model, method, args, kwargs)
File "/home/odoo/src/odoo/addons/web/controllers/dataset.py", line 33, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/home/odoo/src/odoo/odoo/api.py", line 466, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/home/odoo/src/odoo/odoo/api.py", line 453, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "<decorator-gen-76>", line 2, in button_immediate_install
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_module.py", line 74, in check_and_log
return method(self, *args, **kwargs)
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_module.py", line 468, in button_immediate_install
return self._button_immediate_function(type(self).button_install)
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_module.py", line 592, in _button_immediate_function
registry = modules.registry.Registry.new(self._cr.dbname, update_module=True)
File "<decorator-gen-16>", line 2, in new
File "/home/odoo/src/odoo/odoo/tools/func.py", line 87, in locked
return func(inst, *args, **kwargs)
File "/home/odoo/src/odoo/odoo/modules/registry.py", line 90, in new
odoo.modules.load_modules(registry, force_demo, status, update_module)
File "/home/odoo/src/odoo/odoo/modules/loading.py", line 488, in load_modules
processed_modules += load_marked_modules(cr, graph,
File "/home/odoo/src/odoo/odoo/modules/loading.py", line 372, in load_marked_modules
loaded, processed = load_module_graph(
File "/home/odoo/src/odoo/odoo/modules/loading.py", line 231, in load_module_graph
load_data(cr, idref, mode, kind='data', package=package)
File "/home/odoo/src/odoo/odoo/modules/loading.py", line 71, in load_data
tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind)
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 763, in convert_file
convert_xml_import(cr, module, fp, idref, mode, noupdate)
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 829, in convert_xml_import
obj.parse(doc.getroot())
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 749, in parse
self._tag_root(de)
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 709, in _tag_root
raise ParseError(msg) from None # Restart with "--log-handler odoo.tools.convert:DEBUG" for complete traceback
odoo.tools.convert.ParseError: while parsing /home/odoo/src/user/helpdesk_ticket_custo/views/helpdesk_ticket_views.xml:3
Error while validating view near:
<form string="Helpdesk Ticket">
<header>
<button name="assign_ticket_to_self" string="Assign To Me" type="object" class="oe_highlight" groups="helpdesk.group_helpdesk_user" attrs="{'invisible': [('user_id', '!=', False)]}" data-hotkey="q"/>
Field `use_credit_notes` does not exist
View error context:
{'file': '/home/odoo/src/user/helpdesk_ticket_custo/views/helpdesk_ticket_views.xml',
'line': 1,
'name': 'helpdesk.ticket.custo.form',
'view': ir.ui.view(1900,),
'view.model': 'helpdesk_ticket_custo',
'view.parent': ir.ui.view(1184,),
'xmlid': 'inherited_helpdesk_ticket_view_form'}
The above server error caused the following client error:
RPC_ERROR: Odoo Server Error
at makeErrorFromResponse (https://<...>.odoo.com/web/assets/541-67840bc/web.assets_backend.min.js:995:163)
at XMLHttpRequest.<anonymous> (https://<...>.dev.odoo.com/web/assets/541-67840bc/web.assets_backend.min.js:1003:13)
SOLVED
- _inherit and not __inherit neither _inheritS
- no name attribute
class HelpdeskTicket(models.Model):
_inherit = "helpdesk.ticket"
def action_view_send_to_customer(self):
print("Bien joué")
This happens because the new model
helpdesk.ticket.custo
does not inherit fromhelpdesk.ticket
, you used__inherit
instead of_inherit
attribute