OpenERP从后端设置默认过滤器

时间:2015-01-19 11:07:32

标签: python python-2.7 openerp openerp-7

在openeducat模型中点击一个菜单项后我想加载时间表记录,按状态过滤,其中state等于推迟。 - 使用xml或python代码。 &安培;这是我的xml视图。

<menuitem id="menu_op_timetable" 
          parent="menu_op_timetable_main" 
          name="View Time Table"
          sequence="20" 
          action="act_open_op_timetable_view" />

<record id="view_op_timetable_form" model="ir.ui.view">
    <field name="name">op.timetable.form</field>
        <field name="model">op.timetable</field>
        <field name="priority" eval="8" />
        <field name="arch" type="xml">
            <form string="Time Table" version="7.0">
                <header>
                    <button name="action_complete" string="Complete" type="workflow" icon="gtk-apply" states="planned,postponed"/>
                    <button name="action_postponed" string="Postponed" type="workflow" icon="gtk-jump-to" states="planned,postponed"/>
                    <button name="action_cancel" string="Cancel" type="workflow" icon="gtk-cancel" states="planned,postponed"/>
                            <!--class="oe_button oe_form_button oe_highlight oe_form_visible" -->
                    <field name="state" widget="statusbar" readonly="True" statusbar_colors='{"r":"red"}'
                            statusbar_visible="planned,postponed,completed,cancelled"/>
                </header>
                <sheet>
                    <separator colspan="4" string="Time Table" />
                    <group colspan="4" col="4">
                        <field name="faculty_id" />
                        <field name="standard_id" />
                        <field name="division_id" />
                        <field name="period_id" />
                        <field name="subject_id" />
                        <field name="classroom_id" />
                        <field name="start_datetime" />
                        <field name="end_datetime" />
                        <field name="type"/>
                    </group>
                </sheet>
            </form>
        </field>
</record>

1 个答案:

答案 0 :(得分:2)

首先需要在对象op.timetable的搜索视图过滤器中添加过滤器,如

<filter string="Postponed" name="state_postponed" domain="[('state','=','postponed')]" icon="terp-document-new"/>

操作ID为act_open_op_timetable_view,并编辑并添加默认过滤器,如

<field name="context">{'search_default_state_postponed': 1}</field>

希望这能解决您的问题。

修改

如果您想限制其他状态记录而不是我们需要在域中使用。

操作ID为act_open_op_timetable_view,并在域名下面进行编辑,如

<field name="domain">[('state','=','postponed')]</field>
<field name="context">{}</field>