Chris Biersbach (OpenERP) has proposed merging 
lp:~openerp-dev/openerp-int/mck-opw-582413-cbi into 
lp:~openerp-dev/openerp-int/mck_addons.

Requested reviews:
  OpenERP R&D Team (openerp-dev)

For more details, see:
https://code.launchpad.net/~openerp-dev/openerp-int/mck-opw-582413-cbi/+merge/139178
-- 
https://code.launchpad.net/~openerp-dev/openerp-int/mck-opw-582413-cbi/+merge/139178
Your team OpenERP R&D Team is requested to review the proposed merge of 
lp:~openerp-dev/openerp-int/mck-opw-582413-cbi into 
lp:~openerp-dev/openerp-int/mck_addons.
=== modified file 'mass_editing/wizard/mass_editing_wizard.py'
--- mass_editing/wizard/mass_editing_wizard.py	2012-11-29 13:27:55 +0000
+++ mass_editing/wizard/mass_editing_wizard.py	2012-12-11 12:07:27 +0000
@@ -47,9 +47,15 @@
             for field in editing_data.field_ids:
                 default_attrs = "{'readonly' : [('selection_"+field.name+"','!=','set')]}"
                 colspan = "2"
-                field_info = model_obj.fields_get(cr, uid, [field.name], context)  
+                field_info = model_obj.fields_get(cr, uid, [field.name], context) 
+                attrs = self._attrs_field.get(model_obj._name, {}).get(field.name, default_attrs)
+                res = None
+                if isinstance(attrs, dict) and attrs.get('callback_function', False):
+                     fun = attrs.get('callback_function')
+                     res = getattr(self, fun)(cr, uid, [], context=context)
+                     attrs = res[1].get(field.name)
                 xml_field = {'name': field.name,
-                             'attrs': self._attrs_field.get(model_obj._name, {}).get(field.name, default_attrs),
+                             'attrs': attrs,
                              'nolabel':'1',
                              'colspan':'2', 
                              'required': self._required_field.get(model_obj._name, {}).get(field.name, '0'),
@@ -78,7 +84,9 @@
                         xml_field['colspan'] = '4'
                         colspan = "4"
                 
-                selection_field_node = etree.SubElement(xml_group, 'field', {'name': "selection_"+field.name,'colspan': colspan,})
+                selection_field = {'name': "selection_"+field.name,'colspan': colspan, 'attrs': '{"invisible": ' + (isinstance(res, tuple) and str(res[0]) or "False") + '}'}
+                
+                selection_field_node = etree.SubElement(xml_group, 'field', selection_field)
                 field_node = etree.SubElement(xml_group, 'field', xml_field)
                 orm.setup_modifiers(field_node, all_fields[field.name])
                 orm.setup_modifiers(selection_field_node, all_fields["selection_"+field.name])

=== modified file 'mck_mass_editing/mass_editing.py'
--- mck_mass_editing/mass_editing.py	2012-10-31 14:35:40 +0000
+++ mck_mass_editing/mass_editing.py	2012-12-11 12:07:27 +0000
@@ -42,21 +42,35 @@
          'mck.role.function.link' : {'function_id' : '1' },              
     }
     
+    def _contact_attrs(self, cr, uid, ids, context=None):
+        user_obj = self.pool.get('res.users')
+        group_obj = self.pool.get('res.groups')
+        crm_admin_group_id = group_obj.search(cr, uid, [('name', '=', 'Central CRM admin')], context=context)
+        crm_admin_group = user_obj.browse(cr, uid, crm_admin_group_id, context=context)
+        if isinstance(crm_admin_group, list):
+            crm_admin_group = crm_admin_group[0]
+        user = user_obj.browse(cr, uid, uid, context=context)
+        ok = crm_admin_group.id in [group.id for group in user.groups_id]
+        return ok and (False, {'state': "{'invisible': False, 'readonly': [('selection_state','!=','set')]}"}) or (True, {'state': "{'invisible': True, 'readonly': [('selection_state','!=','set')]}"})
+    
+    
     _attrs_field = {
         'mck.role.function.link' : {
                                     'service_line_1_id' : "{'readonly': ['|', ('selection_function_id', '!=', 'set'), ('selection_service_line_1_id','!=','set')]}",
                                     'service_line_2_id' : "{'readonly': ['|', ('selection_function_id', '!=', 'set'), ('selection_service_line_2_id','!=','set')]}",
                                     'service_line_3_id' : "{'readonly': ['|', ('selection_function_id', '!=', 'set'), ('selection_service_line_3_id','!=','set')]}",
                                     },
+        'res.partner.contact' : {
+                                 'state': {'callback_function' : "_contact_attrs"},
+                                 'selection_state': {'callback_function' : "_contact_attrs"},
+                                    },
     }
-    
+
     _onchange_field = {
                        
          'mck.role.function.link' : {'function_id' : "onchange_clear_function()" },              
     }
-    
-    
-    
+
     def onchange_clear_function(self, cr, uid, ids, context=None):
         return { 'value' : { 'service_line_1_id' : False, 
                              'service_line_2_id' : False,

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : openerp-dev-gtk@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to