Odoo 10: Получение вида, такого как счет _line_ids из модуля Invoice

1

Я расширяю модуль Employees, чтобы перечислить все устройства, которые получил сотрудник из компании. Ниже приведены мои models.py:

# -*- coding: utf-8 -*-

from odoo import models, fields, api

class device_types(models.Model):
    _name = "device.types"
    name = fields.Char()

class device_names(models.Model):
    _name = "device.names"
    name = fields.Char()
    #devices_names = fields.Many2one('hr.employee')


class devices(models.Model):
    _name = "devices"

    #devices_types = fields.Many2one('device.types')
    devices_id = fields.Many2one('hr.employee')
    devices_types = fields.Char()
    devices_names = fields.Char()



    #employee_id = fields.Many2one('hr.employee')


class employee_devices(models.Model):
     _inherit = 'hr.employee'
     #devices_lines_ids = fields.One2many('devices','devices_id',string='Device Lines',readonly=True, states={'draft': [('readonly', False)]}, copy=True)
     devices_lines_ids = fields.One2many('devices','devices_id',string='Device Lines')
     #devices_names = fields.Many2one('devices')
     #devices_types = fields.Many2one('devices')
     devices_types = fields.One2many('devices','devices_types')
     devices_names = fields.One2many('devices.names')

и мой view.xml:

<odoo>
  <data>
    <!-- explicit list view definition -->

    <record id="invoice_form" model="ir.ui.view">
    <field name="model">hr.employee</field>
    <field name="inherit_id" ref="hr.view_employee_form" />
    <field name="priority" eval="1"/>
    <field name="arch" type="xml"> 
        <xpath expr="//notebook//page[@name='hr_settings']" position="after">
         <page name="Devices" string="Devices" groups="hr.group_hr_user">
                                <group>
                                    <group string="Devices" name="devices_group">
                                        <field name="devices_lines_ids" nolabel="1" widget="one2many_list" mode="tree" >
                                         <tree string="Devices" editable="bottom">
                                           <field name="devices_types" />
                                              <field name="devices_names"/> 
                                         </tree> 
                                        </field>
                                    </group>
                                </group>
        </page>
       </xpath>
    </field>
</record>


  </data>
</odoo>

и я могу добиться этого: Изображение 174551

Но я хочу, чтобы выпадающее меню в типах и устройствах устройств отображало столбцы с возможностью создания новых типов и имен. Я пробовал разные комбинации, как вы можете видеть в комментариях models.py. Как я могу получить эти выпадающие меню на мой взгляд???

Короче говоря, мне нужен этот вид вида, где я могу редактировать каждый столбец внутри древовидного представления, а в некоторых столбцах выпадающее меню: Изображение 174551

Теги:
odoo
module
customization

1 ответ

1

Исправлена. мои обновленные modules.py:

# -*- coding: utf-8 -*-

from odoo import models, fields, api

class device_types(models.Model):
    _name = "device.types"
    name = fields.Char()

class device_names(models.Model):
    _name = "device.names"
    name = fields.Char()


class devices(models.Model):
    _name = "devices"
    employee_name = fields.Many2one('hr.employee')
    devices_names = fields.Many2one('device.names')
    devices_types = fields.Many2one('device.types')



class employee_devices(models.Model):
     _inherit = 'hr.employee'
     devices_lines_ids = fields.One2many('devices','employee_name',string='Device Lines',states={'draft': [('readonly', False)]}, copy=True)

и мои views.xml:

    <odoo>
    <data>
    <!-- explicit list view definition -->

    <record id="invoice_form" model="ir.ui.view">
      <field name="model">hr.employee</field>
      <field name="inherit_id" ref="hr.view_employee_form" />
      <field name="priority" eval="1"/>
      <field name="arch" type="xml">
        <xpath expr="//notebook//page[@name='hr_settings']" position="after">
          <page name="Devices" string="Devices" groups="hr.group_hr_user">
            <group>
                <field name="devices_lines_ids" nolabel="1" widget="one2many_list" mode="tree">
                  <tree string="Devices" editable="bottom">
                    <field name="devices_types" />
                    <field name="devices_names"/>
                  </tree>
                </field>
            </group>
          </page>
        </xpath>
      </field>
    </record>
  </data>
</odoo>
  • 0
    Да, вам просто нужно создать (many2one) отношения к device.names и device.types .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню