Search code examples
formattingodoo-15

Odoo 15 Helpdesk formatting ID field


I need help with the modul Helpdesk. I wanted to add the field ID into the tree view via Addon. I could manage to do so, but now I want to format the field like this Ticket ID : #1234, at the moment its in this kind of format : Ticket ID 1,234. I also can´t find the field ID in the source code.

This my code for the tree view:

<!-- Helpdesk Addon Tree View -->

  <record id="helpdesk_addon_tree_view" model="ir.ui.view">
    <field name="name">view.helpdesk.addon.tree</field>
    <field name="model">helpdesk.ticket</field>
    <field name="inherit_id" ref="helpdesk.helpdesk_tickets_view_tree"/>
    <field name="arch" type="xml">
      <field name="display_name" position="before">
        <field name="id" string="ID"/>
      </field>
      <field name="stage_id" position="after">
        <field name="create_date"/>
      </field>
    </field>
  </record>

</odoo>

Helpdesk


Solution

  • The id is a number and you can't format it, as a workaround you can add new Char field and override create method to fill it then you can use the new created field in the list view.

    from odoo import models, api, fields, _
    
    class HelpdeskTicket(models.Model):
        _inherit = 'helpdesk.ticket'
    
        ticket_no = fields.Char(string="Ticket No")
    
                    
        @api.model_create_multi
        def create(self, list_value):
            tickets = super(HelpdeskTicket, self).create(list_value)
    
            # set ticket Id
            for ticket in tickets:
                if ticket.id:
                    ticket.ticket_no= '#' + str(ticket.id)
            return tickets
    

    XML will be:

    <!-- Helpdesk Addon Tree View -->
    
      <record id="helpdesk_addon_tree_view" model="ir.ui.view">
        <field name="name">view.helpdesk.addon.tree</field>
        <field name="model">helpdesk.ticket</field>
        <field name="inherit_id" ref="helpdesk.helpdesk_tickets_view_tree"/>
        <field name="arch" type="xml">
          <field name="display_name" position="before">
            <field name="ticket_no" string="ID"/>
          </field>
          <field name="stage_id" position="after">
            <field name="create_date"/>
          </field>
        </field>
      </record>
    
    </odoo>