Скрыть разделитель в представлении XML - OpenErp

Мне нужно скрыть «Разделитель» и все его дочерние элементы (деревья, поля, кнопки и т. д.), я застрял и не знаю, как этого добиться

<separator string="Quotations" />
                    <field name="purchase_ids" readonly="1">
                        <tree string="Purchase Order">
                            <field name="name" string="Reference"/>
                            <field name="date_order" string="Order Date"/>
                            <field name="partner_id"/>
                            <field name="company_id" groups="base.group_multi_company" widget="selection"/>
                            <field name="location_id" groups="stock.group_locations"/>
                            <field name="minimum_planned_date"/>
                            <field name="origin"/>
                            <field name="state"/>
                            <button name="purchase_cancel" states="draft,confirmed,wait_auth" string="Cancel Purchase Order" icon="gtk-cancel"/>
                            <button name="purchase_confirm" states="draft" string="Confirm Purchase Order" icon="gtk-apply"/>
                            <button name="purchase_approve" states="confirmed" string="Approved by Supplier" icon="gtk-ok"/>
                        </tree>
                    </field>

Если кто-то может помочь, буду очень признателен, заранее большое спасибо!


person NeoVe    schedule 08.04.2013    source источник


Ответы (4)


Если вам нужно скрыть поля для определенных ролей/групп, вы можете использовать атрибут групп следующим образом:

<field name="name" groups="GROUP_XML_ID"/>

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

Если вам нужно скрыть поля для определенных условий, вы можете использовать атрибут attrs следующим образом:

<separator string="Description" colspan="4" attrs="{'invisible': [('show_config', '=', False)]}" />

В противном случае было бы неплохо использовать invisible="1".

Спасибо.

person Priyesh Solanki    schedule 08.04.2013

Атрибут position="replace" удалит все, что вы хотите удалить из xml.

<separator string="Quotations" position="replace"/>
<field name="purchase_ids" position="replace"/>
person Sudhir Arya    schedule 08.04.2013
comment
В моем собственном ответе есть код, я его не понимаю, но он не работает - person NeoVe; 08.04.2013

Лучше добавить атрибут 'invisible'=True, чем делать поле невидимым. Так что сначала найдите правильное представление, затем замените разделитель, затем добавьте атрибут невидимый в поле Purchase_ids

<separator string="Quotations" position="replace"/>
<field name="purchase_ids" position="attributes">
<attribute name='invisible'>1</attribute>
</field>
person OmaL    schedule 08.04.2013
comment
О, спасибо, я собираюсь попробовать, я только что решил это, добавив (невидимый = True) к разделителю и полю, сработало хорошо, хотя не знаю, самый ли это безопасный способ сделать это, я попробую в любом случае ваше решение, я все еще изучаю openerp, большое спасибо! - person NeoVe; 08.04.2013
comment
не используйте замену для полей, так как есть изменение ошибок - person OmaL; 08.04.2013

person    schedule
comment
Привет, вместо изменения исходного источника попробуйте унаследовать соответствующий вид и применить там изменения. Вы можете добиться этого, создав новый модуль. - person vivek; 08.04.2013