Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Odoo: как выбрать настраиваемые поля с помощью идентификатора меню

Автор вопроса: AnisОтветов: 2

Я добавил несколько настраиваемых полей в класс my_purchase_custom.py, как показано ниже.

  • Пользовательский А
  • Пользовательский Б
  • Пользовательский C
  • и т.п.

Теперь в модели purchase.order есть два пункта меню.

  1. Запросы цен [menu_id=314]
  2. Заказы на покупку [menu_id=315]

Что я хочу сделать, так это поместить поле Custom A в menu_id=314 и поля Custom B и Custom C в menu_id=315.

Пожалуйста, помогите в этом отношении, как изменить мой файл .xml. Я прошел по этой ссылке: https://www.odoo.com/fr_FR/forum/help-1/question/hide-menu-for-existing-group-18704, но не смог правильно понять. Пример фрагмента кода будет хорошей идеей

odoo-8

Ответы

Ответ 1 · DASADIYA CHAITANYA

Вы можете попробовать сделать это следующим образом.

Добавьте приведенный ниже код в файл .py из полей импорта openerp.osv, osv

class purchase_order(osv.osv):
    _inherit ="purchase.order"
    _columns = {
        'custom_a': fields.char('Custom A'),
        'custom_b': fields.char('Custom B'),
        'custom_b': fields.char('Custom C'),
    }

Добавьте приведенный ниже код в свой XML-файл

<record model="ir.ui.view" id="r3x_inherit_purchase_ord">
    <field name="name">Purchase Order Inherit Form</field>
    <field name="model">purchase.order</field>
    <field name="inherit_id" ref="purchase.purchase_order_form"/>
    <field name="arch" type="xml">

        <xpath expr="//field[@name='pricelist_id']" position="after">
            <field name="custom_a  attrs={'invisible':[('state','!=','draft')]}/>
            <field name="custom_b attrs={'invisible':[('state','=','draft')]} />
            <field name="custom_c attrs={'invisible':[('state','=','draft')]}/ />
        </xpath>

    </field>
</record>

пожалуйста, вы также можете указать путь к файлу openerp.py и добавить запись в свой файл .py в файл init.py.

проверьте с обновлением модуля и перезапустите сервер и проверьте влияние на вид формы заказа на покупку.

Я надеюсь, что мой ответ может быть полезен для вас :)

Ответ 2 · ChesuCR

Вы можете назначить действие своему пункту меню и загрузить определенные представления, которые вы хотите. Например:

<record id="action_sale_order_view" model="ir.actions.act_window">
    <field name="name">Quotations</field>
    <field name="type">ir.actions.act_window</field>
    <field name="res_model">sale.order</field>
    <field name="view_type">form</field>
    <field name="view_mode">tree,form,calendar,graph</field>
    <field name="domain">[('field_name','=',False)]</field>
    <field name="help" type="html">
      <p class="oe_view_nocontent_create">
        Click to define a new quotation.
      </p>
    </field>
</record>

<record id="view_act_object_tree" model="ir.actions.act_window.view">
    <field name="view_mode">tree</field>
    <field name="view_id" ref="sale.view_quotation_tree" />
    <field name="act_window_id" ref="action_sale_order_view" />
</record>

<record id="view_act_object_form" model="ir.actions.act_window.view">
    <field name="view_mode">form</field>
    <field name="view_id" ref="sale.view_order_form" />
    <field name="act_window_id" ref="action_sale_order_view" />
</record>

<record id="view_act_object_calendar" model="ir.actions.act_window.view">
    <field name="view_mode">calendar</field>
    <field name="view_id" ref="sale.view_sale_order_calendar" />
    <field name="act_window_id" ref="action_sale_order_view" />
</record>

<record id="view_act_object_graph" model="ir.actions.act_window.view">
    <field name="view_mode">graph</field>
    <field name="view_id" ref="sale.view_sale_order_graph" />
    <field name="act_window_id" ref="action_sale_order_view" />
</record>

<menuitem id="main_sale_order_view"
          name="Quotations"
          parent="base.menu_sales"
          sequence="4"
          action="action_sale_order_view" />

И вы можете показать или скрыть элементы, которые вы хотите, в ваших пользовательских представлениях. Это то, что вы ищете?

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы