From fc726881e51596ac8010b172d58f4a9832af4b09 Mon Sep 17 00:00:00 2001 From: "Ujjvala Collins (OpenERP)" Date: Mon, 27 Feb 2012 14:11:38 +0530 Subject: [PATCH] [IMP]: Improved code to apply/remove groups on users. bzr revid: uco@tinyerp.com-20120227084138-qealseuiz5m66xrw --- addons/account/__openerp__.py | 2 +- addons/sale/sale.py | 27 ++++++++++++++++++++++----- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/addons/account/__openerp__.py b/addons/account/__openerp__.py index 850a8f49842..160df652dcb 100644 --- a/addons/account/__openerp__.py +++ b/addons/account/__openerp__.py @@ -125,7 +125,7 @@ module named account_voucher. 'board_account_view.xml', "edi/invoice_action_data.xml", "account_bank_view.xml", - "account_pre_install.yml" +# "account_pre_install.yml" ], 'demo_xml': [ 'demo/account_demo.xml', diff --git a/addons/sale/sale.py b/addons/sale/sale.py index 0951de75f3c..2cd9f7840ed 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -1374,6 +1374,13 @@ class sale_configuration(osv.osv_memory): defaults = {} module_list = sale_config.MODULE_LIST defaults.update(self.get_installed_modules(cr, uid, module_list, context=context)) + + group_list =['group_sale_pricelist_per_customer','group_sale_uom_per_product','group_sale_delivery_address', + 'group_sale_disc_per_sale_order_line','group_sale_notes_subtotal'] + + applied_groups = self.get_applied_groups(cr, uid, group_list, context=context) + defaults.update(applied_groups) + for val in ir_values_obj.get(cr, uid, 'default', False, ['sale.order']): defaults.update({val[1]: val[2]}) for k in defaults.keys(): @@ -1428,25 +1435,35 @@ class sale_configuration(osv.osv_memory): menu_id = data_obj.get_object(cr, uid, 'sale', 'menu_action_picking_list_to_invoice').id menu_obj.write(cr, uid, menu_id, {'groups_id':[(4,group_id)]}) + dummy,group_id = data_obj.get_object_reference(cr, uid, 'base', 'group_sale_pricelist_per_customer') if wizard.group_sale_pricelist_per_customer: - dummy,group_id = data_obj.get_object_reference(cr, uid, 'base', 'group_sale_pricelist_per_customer') users_obj.write(cr, uid, [uid], {'groups_id': [(4,group_id)]}) + else: + users_obj.write(cr, uid, [uid], {'groups_id': [(3,group_id)]}) + dummy,group_id = data_obj.get_object_reference(cr, uid, 'base', 'group_sale_uom_per_product') if wizard.group_sale_uom_per_product: - dummy,group_id = data_obj.get_object_reference(cr, uid, 'base', 'group_sale_uom_per_product') users_obj.write(cr, uid, [uid], {'groups_id': [(4,group_id)]}) + else: + users_obj.write(cr, uid, [uid], {'groups_id': [(3,group_id)]}) + dummy,group_id = data_obj.get_object_reference(cr, uid, 'base', 'group_sale_delivery_address') if wizard.group_sale_delivery_address: - dummy,group_id = data_obj.get_object_reference(cr, uid, 'base', 'group_sale_delivery_address') users_obj.write(cr, uid, [uid], {'groups_id': [(4,group_id)]}) + else: + users_obj.write(cr, uid, [uid], {'groups_id': [(3,group_id)]}) + dummy,group_id = data_obj.get_object_reference(cr, uid, 'base', 'group_sale_disc_per_sale_order_line') if wizard.group_sale_disc_per_sale_order_line: - dummy,group_id = data_obj.get_object_reference(cr, uid, 'base', 'group_sale_disc_per_sale_order_line') users_obj.write(cr, uid, [uid], {'groups_id': [(4,group_id)]}) + else: + users_obj.write(cr, uid, [uid], {'groups_id': [(3,group_id)]}) + dummy,group_id = data_obj.get_object_reference(cr, uid, 'base', 'group_sale_notes_subtotal') if wizard.group_sale_notes_subtotal: - dummy,group_id = data_obj.get_object_reference(cr, uid, 'base', 'group_sale_notes_subtotal') users_obj.write(cr, uid, [uid], {'groups_id': [(4,group_id)]}) + else: + users_obj.write(cr, uid, [uid], {'groups_id': [(3,group_id)]}) if wizard.task_work: vals['project_timesheet'] = True