2015-07-01 92 views
0

我在銷售訂單上有一個布爾字段'分類',我的想法是,只有在我創建的分類報價組中的用戶可以在樹視圖中看到記錄,真的。我創建了兩條規則,我不知道爲什麼它不起作用。這裏是代碼:組odoo [v8]規則

<?xml version="1.0" encoding="UTF-8"?> 
<openerp> 
    <data> 

     <record id="sale_order_rule_group_classified_quotations" model="ir.rule"> 
     <field name="name">sale_order_rule_group_classified_quotations</field> 
     <field name="model_id" search="[('model','=','sale.order')]" model="ir.model"/> 
      <field name="groups" eval="[(4,ref('group_classified_quotations'))]"/> 
     <field name="domain_force">['|',('classified','=',True),('classified','=',False)]</field> 
     </record> 

     <record id="sale_order_rule_no_group" model="ir.rule"> 
     <field name="name">sale_order_rule_no_group</field> 
     <field name="model_id" search="[('model','=','sale.order')]" model="ir.model"/> 
      <field name="groups" eval="[(4,ref('base.group_user'))]"/> 
     <field name="domain_force">[('classified','=',False)]</field> 
     </record> 

    </data> 
</openerp> 

我在做什麼錯?

回答

0

你沒有告訴它如何不起作用(或現在如何表現)。此外,如果您想允許查看規則上的所有記錄,則應在domain_force[(1,'=',1)]上使用此值,這意味着所有記錄,並且您不需要對TrueFalse進行檢查。試試看,如果有效。

0

我最近做了類似的事情,但是在.py文件中這樣做了。

你可以做這樣的事情:

def write(self, cr, user, ids, vals, context=None): 
     if vals.get('classified'): 
      group_id = self.pool.get('ir.model.data').get_object_reference(cr, 1, 'your_model', 'your_group') 
      user = self.pool.get('res.users').browse(cr, user, user) 
      if group_id not in user.groups_id: 
       raise osv.except_osv(_('Error'), _("Only x user can adjust this field")) 
    return super(your_model, self).write(cr, user, ids, vals, context=context)