[IMP] ir.filters: default user_id = uid ; comment about cryptic code
authorOlivier Dony <odo@openerp.com>
Wed, 16 May 2012 16:31:22 +0000 (18:31 +0200)
committerOlivier Dony <odo@openerp.com>
Wed, 16 May 2012 16:31:22 +0000 (18:31 +0200)
(Some minor updates after XMO's review)

bzr revid: odo@openerp.com-20120516163122-jsb3n2eo2i253o00

openerp/addons/base/ir/ir_filters.py

index 6ee6766..02a723c 100644 (file)
@@ -53,6 +53,9 @@ class ir_filters(osv.osv):
         lower_name = vals['name'].lower()
         matching_filters = [f for f in self.get_filters(cr, uid, vals['model_id'])
                                 if f['name'].lower() == lower_name
+                                # next line looks for matching user_ids (specific or global), i.e.
+                                # f.user_id is False and vals.user_id is False or missing,
+                                # or f.user_id.id == vals.user_id
                                 if (f['user_id'] and f['user_id'][0]) == vals.get('user_id', False)]
         # When a filter exists for the same (name, model, user) triple, we simply
         # replace its definition.
@@ -88,6 +91,7 @@ class ir_filters(osv.osv):
     _defaults = {
         'domain': '[]',
         'context':'{}',
+        'user_id': lambda self,cr,uid,context=None: uid,
     }
 
 ir_filters()