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

Я добавил несколько настраиваемых полей в класс 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, но не смог правильно понять. Пример фрагмента кода будет хорошей идеей


person Anis    schedule 16.08.2015    source источник


Ответы (2)


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

Добавьте приведенный ниже код в файл .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.

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

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

person DASADIYA CHAITANYA    schedule 18.08.2015
comment
это сработало!! Как я понял это делается из состояния покупки. Скажите, пожалуйста, можно ли сделать то же самое при составлении отчета? - person Anis; 23.08.2015
comment
Ничего другого, просто вы можете добавить свои настраиваемые поля из отчета так же, как вы можете добавить в качестве полей заказа на покупку, потому что три указанных выше поля становятся частью заказа на покупку. - person DASADIYA CHAITANYA; 24.08.2015
comment
ага, верно.. вроде разобрался позже.. спасибо хотя - person Anis; 25.08.2015
comment
Привет ! Не могли бы вы проверить этот вопрос, если это возможно? odoo.com/forum/help- 1/вопрос/ - person Anis; 07.10.2015

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

<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" />

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

person ChesuCR    schedule 16.08.2015