コンテンツへスキップ
メニュー
この質問にフラグが付けられました
2 返信
282 ビュー

Is it possible to move the custom field "Reference" to infront of the subject line to show as

SP-00001116 - BYOD - VC Solution


I would ideally want to do this for every app 


https://ibb.co/ZzxFGYf0

アバター
破棄
最善の回答

Hi Jitesh,


There are two approaches depending on whether you want this just in the UI header (form/tree views) or globally everywhere (including chatter, emails, reports, etc.).

Option 1: Update the Header in Form View (UI Only)

In your custom module, you can override the header/<field name="name"> display in the XML view and concatenate the reference + subject.

Example for a form view:

<record id="view_sale_order_form_inherit" model="ir.ui.view">
    <field name="name">sale.order.form.inherit.reference_subject</field>
    <field name="model">sale.order</field>
    <field name="inherit_id" ref="sale.view_order_form"/>
    <field name="arch" type="xml">
        <!-- Replace subject field --><xpath expr="//field[@name='name']" position="replace">
            <field name="display_name_custom" readonly="1"/>
        </xpath>
    </field></record>

Then in your model:

from odoo import models, fields
class SaleOrder(models.Model):
    _inherit = "sale.order"
    display_name_custom = fields.Char(
        compute="_compute_display_name_custom",
        store=False    )

    def _compute_display_name_custom(self):
        for rec in self:
            ref = rec.reference or ""            subject = rec.name or ""            rec.display_name_custom = f"{ref} - {subject}" if ref else subject

This way, in the header it shows exactly:

SP-00001116 - BYOD - VC Solution

Option 2: Override name_get (Global Everywhere)

If you want everywhere in Odoo (lists, search dropdowns, chatter, many2one references, reports, etc.), override name_get:

from odoo import models
class SaleOrder(models.Model):
    _inherit = "sale.order"def name_get(self):
        result = []
        for rec in self:
            ref = rec.reference or ""            subject = rec.name or ""            display_name = f"{ref} - {subject}" if ref else subject
            result.append((rec.id, display_name))
        return result

This way Odoo will always display the reference before the subject, no matter where it’s used.


If you have any questions, feel free to reach out to us

Hope this helps!


Thanks & Regards,

Email: odoo@aktivsoftware.com           

Skype: kalpeshmaheshwari

アバター
破棄
著作者

Thank you.
Is the global option available on Odoo online?

著作者 最善の回答

Thank you.

Is the global option available on Odoo online?

アバター
破棄

In Odoo Online (Enterprise) you do not have access to source code, so it is not available.

関連投稿 返信 ビュー 活動
0
8月 25
767
0
4月 25
3
0
4月 25
856
0
10月 22
1760
2
7月 16
3938