2013-10-25 40 views
0

我創建了一個模塊來跟蹤自定義硬件鎖設備(加密狗)。除了我試圖找出如何添加將自定義模塊添加到高級過濾器的功能之外,所有這一切都很好,以便我們可以搜索具有與其關聯的特定系列加密狗的客戶。如何將自定義模塊搜索添加到現有模塊中的「高級搜索」?

這裏是我的res_parter.py

from osv import fields, osv 

class res_partner(osv.osv): 
    """ Inherits partner and adds CRM information in the partner form """ 
    _inherit = 'res.partner' 

def _dongle_count(self, cr, uid, ids, field_name, arg, context=None): 
    res = dict(map(lambda x: (x,0), ids)) 
    # The current user may not have access rights for sale orders 
    try: 
     for partner in self.browse(cr, uid, ids, context): 
      res[partner.id] = len(partner.sale_order_ids) 
    except: 
     pass 
    return res 

_columns = { 
    'dongle_count': fields.function(_dongle_count, string='# of Dongles', type='integer'), 
    'dongle_ids': fields.one2many('dongle', 'partner_id', 'Dongles') 
} 

res_partner()

和我res_partner_view.xml

<?xml version="1.0"?> 
<openerp> 
    <data> 
     <record id="act_res_partner_2_dongle" model="ir.actions.act_window"> 
      <field name="name">Dongles</field> 
      <field name="res_model">dongle</field> 
      <field name="view_type">form</field> 
      <field name="view_mode">tree,form</field> 
      <field name="context"></field> 
      <field name="help" type="html"> 
       <p class="oe_view_nocontent_create"> 
       Click to create a dongle for this customer. 

       </p> 
      </field> 
     </record> 

     <!-- Partner kanban view inhert --> 


     <record id="res_partner_view_buttons" model="ir.ui.view"> 
      <field name="name">res.partner.view.buttons</field> 
      <field name="model">res.partner</field> 
      <field name="inherit_id" ref="base.view_partner_form" /> 
      <field name="priority" eval="20"/> 
      <field name="arch" type="xml"> 
       <xpath expr="//div[@name='buttons']" position="inside"> 
        <button name="%(act_res_partner_2_dongle)d" type="action" 
         string="Dongles" 
         attrs="{'invisible': [('customer', '=', False)]}"/> 
       </xpath> 
      </field> 
     </record>  

    </data> 
</openerp> 

望着包括此的各種其他模塊後,我可以」 t似乎找出了我應該添加的位置/其他內容,以便使我的新模塊顯示在高級搜索下拉菜單中。

回答

0

如果您希望通過dongle_count字段進行搜索,那麼您必須將其值存儲在數據庫中。 爲了在數據庫中存儲函數字段值,您需要在Eg的fields屬性中定義store = True參數。

'dongle_count':fields.function(_dongle_count,字符串= '加密狗的#',類型= '整數',存儲=真)

歡呼聲, kalariya hardik 爲,技術-receptives

+0

我不想在dongle_count上搜索。我試圖增加搜索與給定客戶有關的加密狗的能力。 例如,我們有加密狗系列A,B,C,每個都有一個序列號。我希望能夠使用高級搜索來查找具有加密狗系列A的所有客戶。 –

相關問題