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