2014-10-31 72 views
0

我已经创建了res.partner形式的按钮,它调用一个动作。如何将变量传递到OpenERP7中的搜索视图?

该操作打开的其它不同模型的树视图,res.partner.link.category(与字段partner_idlink_category_idtypedateobservations)---这个表是res.partner和其他表之间的关系称为link.category .---

我也创建了res.partner.link.category的搜索视图。

我现在需要的是:如果我正在查找合作伙伴,然后单击按钮,请参阅res.partner.link.category树视图,仅查看具有该单元的记录partner_id我正在查看点击的时刻。在这种情况下我如何使用上下文?

如何将该上下文(与partner_id)传递到搜索视图?我尝试了很多东西,但我无法管理我的目标。

这里是按钮的代码:

<button name="%(res_partner_extended.action_view_history_res_partner_link_category)d" 
    string="View whole history" type="action" context="{'default_partner_id': active_id}"/> 

这是它调用的动作:

<record id="action_view_history_res_partner_link_category" 
    model="ir.actions.act_window"> 
    <field name="name">View whole history</field> 
    <field name="type">ir.actions.act_window</field> 
    <field name="res_model">res.partner.link.category</field> 
    <field name="view_type">form</field> 
    <field name="view_mode">tree</field> 
    <field name="context">{'default_partner_id': context.get('default_partner_id', False)}</field> 
    <field name="view_id" ref="res_partner_link_category_history_tree_view" /> 
    <field name="target">current</field> 
</record> 

树视图:

<record id="res_partner_link_category_history_tree_view" model="ir.ui.view"> 
    <field name="name">res.partner.link.category.history.tree</field> 
    <field name="model">res.partner.link.category</field> 
    <field name="type">tree</field> 
    <field name="arch" type="xml"> 
     <tree string="Link categories" create="false"> 
      <field name="partner_id" /> 
      <field name="link_category_id" /> 
      <field name="type" /> 
      <field name="date" /> 
      <field name="observations" /> 
     </tree> 
    </field> 
</record> 

而且搜索视图:

<record id="res_partner_link_category_history_search_view" model="ir.ui.view"> 
    <field name="name">res.partner.link.category.history.search</field> 
    <field name="model">res.partner.link.category</field> 
    <field name="type">search</field> 
    <field name="arch" type="xml"> 
     <search> 
      <filter name="partner_id" string="Current partner" domain="[('partner_id','=',context.get('default_partner_id', False))]"/> 
     </search> 
    </field> 
</record> 

任何人都可以帮助我吗?

回答

1

尝试添加域的action由按钮运行结束:

<field name="domain">[('partner_id','=',active_id)]</field> 

,如果你想触发过滤器的默认搜索,然后在按钮背景下通过过滤器的值名称默认设置为true,这将触发打开窗口时应用的默认fitelr。示例代码:

<button name="%(res_partner_extended.action_view_history_res_partner_link_category)d" 
    string="View whole history" type="action" context="{'search_default_partner_id': 1}"/> 

希望这会有所帮助。

+0

这工作@firebug!万分感谢!但是不可能将该域的active_id传递给过滤器的域? – forvas 2014-11-03 09:04:30

+0

@forvas:有可能要做,但这很棘手,你可能不得不搭上'def fields_view_get'。 – 2014-11-03 18:04:28