OpenERP 从后端设置默认过滤器
OpenERP Set default filter from back end
在 openucat 模型中单击菜单项后,我想加载按状态过滤的时间表记录,其中状态等于推迟。
- 使用 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>
首先需要在对象的搜索视图过滤器中添加过滤器op.timetable
like
<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>
在 openucat 模型中单击菜单项后,我想加载按状态过滤的时间表记录,其中状态等于推迟。 - 使用 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>
首先需要在对象的搜索视图过滤器中添加过滤器op.timetable
like
<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>