[FIX] move definition of fields category_id and full_name, and fix unique name constraint
authorRaphael Collet <rco@openerp.com>
Fri, 2 Dec 2011 16:30:22 +0000 (17:30 +0100)
committerRaphael Collet <rco@openerp.com>
Fri, 2 Dec 2011 16:30:22 +0000 (17:30 +0100)
bzr revid: rco@openerp.com-20111202163022-ntc4ni944zwkm50n

openerp/addons/base/res/res_users.py

index eafd6c3..10c53f9 100644 (file)
@@ -40,8 +40,25 @@ import openerp.exceptions
 
 class groups(osv.osv):
     _name = "res.groups"
-    _order = 'name'
     _description = "Access Groups"
+    _order = 'full_name'
+    _rec_name = 'full_name'
+
+    def _get_full_name(self, cr, uid, ids, field, arg, context=None):
+        res = {}
+        for g in self.browse(cr, uid, ids, context):
+            if g.category_id:
+                res[g.id] = '%s / %s' % (g.category_id.name, g.name)
+            else:
+                res[g.id] = g.name
+        return res
+
+    def _from_group_ids(self, cr, uid, ids, context=None):
+        return ids
+
+    def _from_category_ids(obj, cr, uid, ids, context=None):
+        return obj.pool.get('res.groups').search(cr, uid, [('category_id', 'in', ids)], context=context)
+
     _columns = {
         'name': fields.char('Name', size=64, required=True, translate=True),
         'users': fields.many2many('res.users', 'res_groups_users_rel', 'gid', 'uid', 'Users'),
@@ -50,9 +67,16 @@ class groups(osv.osv):
             'group_id', 'rule_group_id', 'Rules', domain=[('global', '=', False)]),
         'menu_access': fields.many2many('ir.ui.menu', 'ir_ui_menu_group_rel', 'gid', 'menu_id', 'Access Menu'),
         'comment' : fields.text('Comment',size=250),
+        'category_id': fields.many2one('ir.module.category', 'Application', select=True),
+        'full_name': fields.function(_get_full_name, type='char', string='Group Name',
+            store={
+                'res.groups': (_from_group_ids, ['category_id', 'name'], 10),
+                'ir.module.category': (_from_category_ids, ['name'], 10),
+            }),
     }
+
     _sql_constraints = [
-        ('name_uniq', 'unique (name)', 'The name of the group must be unique !')
+        ('name_uniq', 'unique (full_name)', 'The name of the group must be unique !')
     ]
 
     def copy(self, cr, uid, id, default=None, context=None):
@@ -643,31 +667,6 @@ users_implied()
 
 class groups_view(osv.osv):
     _inherit = 'res.groups'
-    _rec_name = 'full_name'
-
-    def _get_full_name(self, cr, uid, ids, field, arg, context=None):
-        res = {}
-        for g in self.browse(cr, uid, ids, context):
-            if g.category_id:
-                res[g.id] = '%s / %s' % (g.category_id.name, g.name)
-            else:
-                res[g.id] = g.name
-        return res
-
-    def _from_group_ids(self, cr, uid, ids, context=None):
-        return ids
-
-    def _from_category_ids(obj, cr, uid, ids, context=None):
-        return obj.pool.get('res.groups').search(cr, uid, [('category_id', 'in', ids)], context=context)
-
-    _columns = {
-        'category_id': fields.many2one('ir.module.category', 'Application', select=True),
-        'full_name': fields.function(_get_full_name, type='char', string='Group Name',
-            store={
-                'res.groups': (_from_group_ids, ['category_id', 'name'], 10),
-                'ir.module.category': (_from_category_ids, ['name'], 10),
-            }),
-    }
 
     def get_classified(self, cr, uid, context=None):
         """ classify all groups by prefix; return a pair (apps, others) where