изменить существующую строку фильтра в OpenERP

Я пытаюсь добавить собственный фильтр для состояния, в основном мне просто нужно было отредактировать строку уже существующего фильтра. Итак, я сделал эту часть XML, но не могу понять, что я здесь делаю неправильно:

        <record id="sale_order_list_select" model="ir.ui.view">
        <field name="name">sale.order.list.select</field>
        <field name="model">sale.order</field>
        <field name="inherit_id" ref="base.view_sales_order_filter"/>
        <field name="arch" type="xml">
            <search position="inside">
                <filter icon="terp-dolar_ok!" string="WON" domain="[('state','=','manual')]"
                        help="Sales Order ready to be invoiced"/>
            </search>
        </field>
    </record>

Новый пример:

     <record id="sale_order_list_select" model="ir.ui.view">
        <field name="name">sale.order.list.select</field>
        <field name="model">sale.order</field>
        <field name="inherit_id" ref="sale.view_sales_order_filter"/>
        <field name="arch" type="xml">
            <filter string="To Invoice" position="attributes">
                <attribute name="string">WON</attribute>
            </filter>
            <filter string="Done" position="attributes">
                <attribute name="string">LOST</attribute>
                <attribute name="domain">[('state','=','cancel' )]</attribute>
            </filter>
            <filter string="Sales" position="attributes">
                <attribute name="string">HOLD</attribute>
            </filter>
        </field>
    </record>

person RandomPerson    schedule 27.02.2015    source источник


Ответы (1)


Если вы хотите изменить только строку существующего фильтра, используйте, например, attributes:

<record id="sale_order_list_select" model="ir.ui.view">
    <field name="name">sale.order.list.select</field>
    <field name="model">sale.order</field>
    <field name="inherit_id" ref="sale.view_sales_order_filter"/>
    <field name="arch" type="xml">
        <filter string="To Invoice" position="attributes">
            <attribute name = "string">WON</attribute>
        </filter>
        <!-- After "Sales" filter it will add new "Cancel" filter -->
        <filter string="Sales" position="after">
            <filter icon="terp-dolar_ok!" string="Cancel" domain="[('state','=','cancel')]" help="Sales Order which are canceled"/>
        </filter>
    </field>
</record>
person Bhavesh Odedra    schedule 27.02.2015
comment
А если я хочу сделать новый, что я тогда делаю не так? Я попробовал ваш ответ и добавил еще несколько в этом случае, но для этого потребовался только первый фильтр, а остальные не изменились? Добавил пример в первый пост - person RandomPerson; 27.02.2015
comment
если вы хотите создать новый фильтр, нам нужно добавить фильтр, подождите, я обновлю свой ответ - person Bhavesh Odedra; 27.02.2015