Вопрос
Odoo: как выбрать настраиваемые поля с помощью идентификатора меню
Автор вопроса: AnisОтветов: 2
Я добавил несколько настраиваемых полей в класс my_purchase_custom.py, как показано ниже.
- Пользовательский А
- Пользовательский Б
- Пользовательский C
- и т.п.
Теперь в модели purchase.order есть два пункта меню.
- Запросы цен [menu_id=314]
- Заказы на покупку [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.