如何在odoo中显示没有公司的联系方式?

时间:2019-06-21 17:20:48

标签: python xml odoo

在odoo 11中如何显示没有公司的联系方式,例如:如果在odoo中的 Y公司中的先生X ,则显示此先生和公司: Y, X 。但是我只想要 X 。谢谢

2 个答案:

答案 0 :(得分:1)

打开调试模式,在联系人列表视图上,进入“调试”菜单>>“编辑列表视图”

Edit List View

从以下更改

<tree string="Contacts">
  <field name="display_name" string="Name"/>
  <field name="function" invisible="1"/>
  <field name="phone"/>
  <field name="email"/>
  <field name="user_id" invisible="1"/>
  <field name="is_company" invisible="1"/>
  <field name="country_id" invisible="1"/>
  <field name="parent_id" invisible="1"/>
  <field name="active" invisible="1"/>
</tree>

对此

<tree string="Contacts">
  <field name="name" string="Name"/>
  <field name="function" invisible="1"/>
  <field name="phone"/>
  <field name="email"/>
  <field name="user_id" invisible="1"/>
  <field name="is_company" invisible="1"/>
  <field name="country_id" invisible="1"/>
  <field name="parent_id" invisible="1"/>
  <field name="active" invisible="1"/>
</tree>

这只会更改odoo联系人的列表视图名称表示,对于“关系”字段选择名称显示,您必须覆盖 _get_name

class ResPartner(models.Model):
  _inherit='res.partner'

  def _get_name(self):
        """ Utility method to allow name_get to be overrided without re-browse the partner """
        partner = self
        name = partner.name or ''

        if partner.company_name or partner.parent_id:
            if not name and partner.type in ['invoice', 'delivery', 'other']:
                name = dict(self.fields_get(['type'])['type']['selection'])[partner.type]
            #if not partner.is_company:
            #    name = "%s, %s" % (partner.commercial_company_name or partner.parent_id.name, name)
        if self._context.get('show_address_only'):
            name = partner._display_address(without_company=True)
        if self._context.get('show_address'):
            name = name + "\n" + partner._display_address(without_company=True)
        name = name.replace('\n\n', '\n')
        name = name.replace('\n\n', '\n')
        if self._context.get('address_inline'):
            name = name.replace('\n', ', ')
        if self._context.get('show_email') and partner.email:
            name = "%s <%s>" % (name, partner.email)
        if self._context.get('html_format'):
            name = name.replace('\n', '<br/>')
        if self._context.get('show_vat') and partner.vat:
            name = "%s ‒ %s" % (name, partner.vat)
        return name

答案 1 :(得分:1)

该名称来自在res.partner.py中编写的name_get方法。您需要在自定义模块中扩展该方法,并从联系人名称中删除公司名称作为前缀。