diff --git a/openerp/addons/base/res/res_user.py b/openerp/addons/base/res/res_user.py
index 9f8cb7d889c..8eb94ccfc0e 100644
--- a/openerp/addons/base/res/res_user.py
+++ b/openerp/addons/base/res/res_user.py
@@ -638,8 +638,21 @@ def get_boolean_groups(name): return map(int, name[10:].split('_'))
def get_selection_groups(name): return map(int, name[11:].split('_'))
def encode(s): return s.encode('utf8') if isinstance(s, unicode) else s
+def partition(f, xs):
+ "return a pair equivalent to (filter(f, xs), filter(lambda x: not f(x), xs))"
+ yes, nos = [], []
+ for x in xs:
+ if f(x):
+ yes.append(x)
+ else:
+ nos.append(x)
+ return yes, nos
class users2(osv.osv):
+ """ Extension of res.users for:
+ - adding implied groups when added to a group
+ - defining special widgets for field groups_id
+ """
_inherit = 'res.users'
def _values_to_groups_id(self, cr, uid, values, context=None):
@@ -713,7 +726,7 @@ class users2(osv.osv):
app_name = name_boolean_groups(ids)
sel_name = name_selection_groups(ids)
fields[app_name] = {'type': 'boolean', 'string': app}
- fields[sel_name] = {'type': 'selection', 'string': '', 'selection': selection}
+ fields[sel_name] = {'type': 'selection', 'string': 'Group', 'selection': selection}
elems.append("""