From b1e58116a62613128dd2396dec932e85ad4828e2 Mon Sep 17 00:00:00 2001 From: "Ujjvala Collins (OpenERP)" Date: Thu, 1 Mar 2012 17:19:15 +0530 Subject: [PATCH 1/3] [IMP]: Improved views. Moved common code to server. bzr revid: uco@tinyerp.com-20120301114915-m73sfjekk1wgpj2q --- addons/account/account_installer.xml | 2 +- addons/account/res_config.py | 30 ++--------- addons/sale/res_config.py | 81 ++++------------------------ addons/sale/res_config_view.xml | 6 +-- 4 files changed, 17 insertions(+), 102 deletions(-) diff --git a/addons/account/account_installer.xml b/addons/account/account_installer.xml index 6007d45ba10..2d0ab3ae092 100644 --- a/addons/account/account_installer.xml +++ b/addons/account/account_installer.xml @@ -59,7 +59,7 @@ 3 - automatic + manual diff --git a/addons/account/res_config.py b/addons/account/res_config.py index 8f922752054..2c6208bd570 100644 --- a/addons/account/res_config.py +++ b/addons/account/res_config.py @@ -37,7 +37,7 @@ class account_configuration(osv.osv_memory): _defaults = { 'tax_policy': 'global_on_order', } - + def get_default_tax_policy(self, cr, uid, ids, context=None): applied_groups = self.get_default_applied_groups(cr, uid, ids, context=context) if applied_groups.get('group_sale_taxes_global_on_order'): @@ -47,14 +47,14 @@ class account_configuration(osv.osv_memory): else: applied_groups.update({'tax_policy': 'no_tax'}) return applied_groups - + def _check_default_tax(self, cr, uid, context=None): ir_values_obj = self.pool.get('ir.values') for tax in ir_values_obj.get(cr, uid, 'default', False, ['product.product']): if tax[1] == 'taxes_id': return tax[2] return False - + def default_get(self, cr, uid, fields_list, context=None): ir_values_obj = self.pool.get('ir.values') res = super(account_configuration, self).default_get(cr, uid, fields_list, context=context) @@ -70,7 +70,7 @@ class account_configuration(osv.osv_memory): if self._check_default_tax(cr, uid, context) and res['fields'].get('tax_value'): res['fields']['tax_value'] = {'domain': [], 'views': {}, 'context': {}, 'selectable': True, 'type': 'many2one', 'relation': 'account.tax', 'string': 'Value'} return res - + def set_tax_policy(self, cr, uid, ids, vals, context=None): data_obj = self.pool.get('ir.model.data') users_obj = self.pool.get('res.users') @@ -98,30 +98,10 @@ class account_configuration(osv.osv_memory): users_obj.write(cr, uid, [uid], {'groups_id': [(3,remove_group_id)]}) ir_values_obj.set(cr, uid, 'default', False, 'groups_id', ['res.users'], [(3,remove_group_id)]) else: - groups += [order_group_id, remove_group_id] + groups = [order_group_id, remove_group_id] for group_id in groups: groups_obj.write(cr, uid, [user_group_id], {'implied_ids': [(3,group_id)]}) users_obj.write(cr, uid, [uid], {'groups_id': [(3,group_id)]}) ir_values_obj.set(cr, uid, 'default', False, 'groups_id', ['res.users'], [(3,group_id)]) - def set_tax_value(self, cr, uid, ids, vals, context=None): - chart_account_obj = self.pool.get('wizard.multi.charts.accounts') - acc_installer_obj = self.pool.get('account.installer') - chart_template_obj = self.pool.get('account.chart.template') - tax_obj = self.pool.get('account.tax') - chart_template_ids = chart_template_obj.search(cr, uid, [('visible', '=', True)], context=context) - taxes = [] - if chart_template_ids: - name = _('Tax %.2f%%') % vals.get('tax_value') - taxes = tax_obj.search(cr, uid, [('name', '=', name)], context=context) - check_default_taxes = self._check_default_tax(cr, uid, context) - if not check_default_taxes and not taxes: - installer_id = acc_installer_obj.create(cr, uid, {}, context=context) - acc_installer_obj.execute(cr, uid, [installer_id], context=context) - if chart_template_ids: - code_digits = chart_account_obj.onchange_chart_template_id(cr, uid, [], chart_template_ids[0], context=context)['value']['code_digits'] - object_id = chart_account_obj.create(cr, uid, {'code_digits': code_digits}, context=context) - chart_account_obj.execute(cr, uid, [object_id], context=context) - return check_default_taxes - account_configuration() \ No newline at end of file diff --git a/addons/sale/res_config.py b/addons/sale/res_config.py index 9d44d29aed0..c03cce24d8c 100644 --- a/addons/sale/res_config.py +++ b/addons/sale/res_config.py @@ -77,31 +77,8 @@ class sale_configuration(osv.osv_memory): help="Install account_analytic_analysis module: This module is for modifying account analytic view to show important data to project manager of services companies."), } - def get_default_applied_groups(self, cr, uid, ids, context=None): - applied_groups = {} - user_obj = self.pool.get('res.users') - dataobj = self.pool.get('ir.model.data') - - groups = [] - user_group_ids = user_obj.browse(cr, uid, uid, context=context).groups_id - - for group_id in user_group_ids: - groups.append(group_id.id) - - for id in groups: - key_id = dataobj.search(cr, uid,[('res_id','=',id),('model','=','res.groups')],context=context) - key = dataobj.browse(cr, uid, key_id[0], context=context).name - applied_groups[key] = True - - return applied_groups - def get_default_installed_modules(self, cr, uid, ids, context=None): - module_obj = self.pool.get('ir.module.module') - module_ids = module_obj.search(cr, uid, - [('name','in',MODULE_LIST), - ('state','in',['to install', 'installed', 'to upgrade'])], - context=context) - installed_modules = dict([(mod.name,True) for mod in module_obj.browse(cr, uid, module_ids, context=context)]) + installed_modules = {} if installed_modules.get('project_mrp') and installed_modules.get('project_timesheet'): installed_modules['task_work'] = True if installed_modules.get('account_analytic_analysis'): @@ -126,13 +103,6 @@ class sale_configuration(osv.osv_memory): result[res[1]] = res[2] return result - def get_default_groups(self, cr, uid, ids, context=None): - ir_values_obj = self.pool.get('ir.values') - result = {} - for res in ir_values_obj.get(cr, uid, 'default', False, ['res.users']): - result[res[1]] = res[2] - return result - def default_get(self, cr, uid, fields_list, context=None): result = super(sale_configuration, self).default_get( cr, uid, fields_list, context=context) @@ -163,23 +133,13 @@ class sale_configuration(osv.osv_memory): getattr(self, method)(cr, uid, ids, vals, context) return True - def set_modules(self, cr, uid, ids, vals, context=None): - module_obj = self.pool.get('ir.module.module') - MODULE_LIST = vals.get('modules') - if vals.get('task_work'): - vals.update({'project_timesheet': True,'project_mrp': True}) - if vals.get('timesheet'): - vals.update({'account_analytic_analysis': True}) - for k, v in vals.items(): - if k in MODULE_LIST: - installed = self.get_default_installed_modules(cr, uid, [k], context) - if v == True and not installed.get(k): - module_id = module_obj.search(cr, uid, [('name','=',k)]) - module_obj.button_immediate_install(cr, uid, module_id, context) - elif v == False and installed.get(k): - module_id = module_obj.search(cr, uid, [('name','=',k)]) - module_obj.button_uninstall(self, cr, uid, module_id, context=None) - module_obj.button_upgrade(self, cr, uid, module_id, context=None) +# def set_installed_modules(self, cr, uid, ids, vals, context=None): +# module_obj = self.pool.get('ir.module.module') +# MODULE_LIST = vals.get('modules') +# if vals.get('task_work'): +# vals.update({'project_timesheet': True,'project_mrp': True}) +# if vals.get('timesheet'): +# vals.update({'account_analytic_analysis': True}) def set_sale_defaults(self, cr, uid, ids, vals, context=None): ir_values_obj = self.pool.get('ir.values') @@ -216,30 +176,9 @@ class sale_configuration(osv.osv_memory): return res - def set_groups(self, cr, uid, ids, vals, context=None): - data_obj = self.pool.get('ir.model.data') - users_obj = self.pool.get('res.users') - groups_obj = self.pool.get('res.groups') - ir_values_obj = self.pool.get('ir.values') - dummy,user_group_id = data_obj.get_object_reference(cr, uid, 'base', 'group_user') - for group in vals.keys(): - if group.startswith('group_'): - dummy,group_id = data_obj.get_object_reference(cr, uid, 'base', group) - if vals[group]: - groups_obj.write(cr, uid, [user_group_id], {'implied_ids': [(4,group_id)]}) - users_obj.write(cr, uid, [uid], {'groups_id': [(4,group_id)]}) - ir_values_obj.set(cr, uid, 'default', False, 'groups_id', ['res.users'], [(4,group_id)]) - else: - groups_obj.write(cr, uid, [user_group_id], {'implied_ids': [(3,group_id)]}) - users_obj.write(cr, uid, [uid], {'groups_id': [(3,group_id)]}) - ir_values_obj.set(cr, uid, 'default', False, 'groups_id', ['res.users'], [(3,group_id)]) - - def onchange_tax_policy(self, cr, uid, ids, tax_policy, tax_value, context=None): - res = {'value': {}} - if isinstance(tax_value, (int)): - self.set_default_taxes(cr, uid, ids, {'tax_value': [tax_value]}, context=context) + def onchange_tax_policy(self, cr, uid, ids, tax_policy, context=None): self.set_tax_policy(cr, uid, ids, {'tax_policy': tax_policy}, context=context) - return res + return {'value': {}} def set_default_taxes(self, cr, uid, ids, vals, context=None): ir_values_obj = self.pool.get('ir.values') diff --git a/addons/sale/res_config_view.xml b/addons/sale/res_config_view.xml index de9cc93080e..f9e698cfb81 100644 --- a/addons/sale/res_config_view.xml +++ b/addons/sale/res_config_view.xml @@ -37,11 +37,7 @@ - - - - + From 2d568efb531ff117ed49d0e082ad577a14f5fb12 Mon Sep 17 00:00:00 2001 From: "Ujjvala Collins (OpenERP)" Date: Thu, 1 Mar 2012 17:37:38 +0530 Subject: [PATCH 2/3] [IMP]: Removed common code to server. bzr revid: uco@tinyerp.com-20120301120738-mg9u1clmm5u3jakv --- addons/sale/res_config.py | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/addons/sale/res_config.py b/addons/sale/res_config.py index 98718caee84..88ceb6ee5f4 100644 --- a/addons/sale/res_config.py +++ b/addons/sale/res_config.py @@ -23,14 +23,6 @@ from osv import fields, osv import pooler from tools.translate import _ -MODULE_LIST = [ - 'analytic_user_function', 'analytic_journal_billing_rate', 'import_sugarcrm', - 'import_google', 'crm_caldav', 'wiki_sale_faq', 'base_contact','sale_layout','warning', - 'google_map', 'fetchmail_crm', 'plugin_thunderbird', 'plugin_outlook','account_analytic_analysis', - 'project_timesheet', 'account_analytic_analysis', 'project_mrp', 'delivery', - 'sale_margin', 'sale_journal' -] - class sale_configuration(osv.osv_memory): _inherit = 'res.config' @@ -89,7 +81,7 @@ class sale_configuration(osv.osv_memory): } def get_default_installed_modules(self, cr, uid, ids, context=None): - installed_modules = {} + installed_modules = super(sale_configuration, self).get_default_installed_modules(cr, uid, ids, context=context) if installed_modules.get('project_mrp') and installed_modules.get('project_timesheet'): installed_modules['task_work'] = True if installed_modules.get('account_analytic_analysis'): @@ -140,17 +132,21 @@ class sale_configuration(osv.osv_memory): #TODO: TO BE IMPLEMENTED for method in dir(self): if method.startswith('set_'): - vals['modules'] = MODULE_LIST getattr(self, method)(cr, uid, ids, vals, context) return True -# def set_installed_modules(self, cr, uid, ids, vals, context=None): -# module_obj = self.pool.get('ir.module.module') -# MODULE_LIST = vals.get('modules') -# if vals.get('task_work'): -# vals.update({'project_timesheet': True,'project_mrp': True}) -# if vals.get('timesheet'): -# vals.update({'account_analytic_analysis': True}) + def set_installed_modules(self, cr, uid, ids, vals, context=None): + if vals.get('timesheet'): + vals.update({'module_account_analytic_analysis': True}) + else: + vals.update({'module_account_analytic_analysis': False}) + + if vals.get('task_work'): + vals.update({'module_project_timesheet': True, 'module_project_mrp': True}) + else: + vals.update({'module_project_timesheet': False, 'module_project_mrp': False}) + + super(sale_configuration, self).set_installed_modules(cr, uid, ids, vals, context=context) def set_sale_defaults(self, cr, uid, ids, vals, context=None): ir_values_obj = self.pool.get('ir.values') From 4be6bcc9b13491fe1ae9edce1c858a94e56825d4 Mon Sep 17 00:00:00 2001 From: "Ujjvala Collins (OpenERP)" Date: Fri, 2 Mar 2012 14:20:38 +0530 Subject: [PATCH 3/3] [IMP]: Improved views, code according to new specifications. Improved tooltips bzr revid: uco@tinyerp.com-20120302085038-z8isyuwxhw7vp6hh --- addons/account/account_installer.xml | 2 +- addons/account/res_config.py | 10 +- .../account_analytic_analysis_view.xml | 12 +- addons/crm/res_config.py | 17 ++- addons/crm/res_config_view.xml | 57 +++++---- addons/plugin_outlook/plugin_outlook.xml | 4 +- .../plugin_thunderbird/plugin_thunderbird.xml | 4 +- addons/product/res_config.py | 11 +- addons/sale/res_config.py | 43 +++---- addons/sale/res_config_view.xml | 120 ++++++++---------- addons/sale/sale.py | 10 +- addons/sale/sale_view.xml | 5 +- 12 files changed, 147 insertions(+), 148 deletions(-) diff --git a/addons/account/account_installer.xml b/addons/account/account_installer.xml index 2d0ab3ae092..6007d45ba10 100644 --- a/addons/account/account_installer.xml +++ b/addons/account/account_installer.xml @@ -59,7 +59,7 @@ 3 - manual + automatic diff --git a/addons/account/res_config.py b/addons/account/res_config.py index 2c6208bd570..75fb624e4d8 100644 --- a/addons/account/res_config.py +++ b/addons/account/res_config.py @@ -30,12 +30,16 @@ class account_configuration(osv.osv_memory): ('no_tax', 'No Tax'), ('global_on_order', 'Global On Order'), ('on_order_line', 'On Order Lines'), - ], 'Taxes', required=True), + ], 'Taxes', required=True, + help=""" + If you want to apply global tax on sale order then select 'Global On Order' it will add 'Global On Order' group to employees. + If you want to apply different taxes for sale order lines then select 'On Order Lines' it will add 'On Order Lines' group to employees. + """), 'tax_value': fields.float('Value'), } _defaults = { - 'tax_policy': 'global_on_order', + 'tax_policy': 'global_on_order', } def get_default_tax_policy(self, cr, uid, ids, context=None): @@ -98,7 +102,7 @@ class account_configuration(osv.osv_memory): users_obj.write(cr, uid, [uid], {'groups_id': [(3,remove_group_id)]}) ir_values_obj.set(cr, uid, 'default', False, 'groups_id', ['res.users'], [(3,remove_group_id)]) else: - groups = [order_group_id, remove_group_id] + groups = [order_group_id, order_line_group_id] for group_id in groups: groups_obj.write(cr, uid, [user_group_id], {'implied_ids': [(3,group_id)]}) users_obj.write(cr, uid, [uid], {'groups_id': [(3,group_id)]}) diff --git a/addons/account_analytic_analysis/account_analytic_analysis_view.xml b/addons/account_analytic_analysis/account_analytic_analysis_view.xml index 5558d5f3323..347c6c0c0c9 100644 --- a/addons/account_analytic_analysis/account_analytic_analysis_view.xml +++ b/addons/account_analytic_analysis/account_analytic_analysis_view.xml @@ -117,11 +117,13 @@ form - - - - - + + + + + + + diff --git a/addons/crm/res_config.py b/addons/crm/res_config.py index 1082052344c..fa92752ecdd 100644 --- a/addons/crm/res_config.py +++ b/addons/crm/res_config.py @@ -26,8 +26,11 @@ class crm_configuration(osv.osv_memory): _columns = { 'module_crm_caldav' : fields.boolean("Use caldav to synchronize Meetings", - help="Install crm_caldav module: Caldav features in Meeting"), - 'fetchmail_crm': fields.boolean("Lead/Opportunity mail gateway"), + help="""This allows you Caldav features in Meeting, Share meeting with other calendar clients like sunbird. + It installs crm_caldav module."""), + 'module_fetchmail_crm': fields.boolean("Lead/Opportunity mail gateway", help=""" + This allows you to configure your incoming mail server, + It installs fetchmail_crm module."""), 'server' : fields.char('Server Name', size=256), 'port' : fields.integer('Port'), 'type': fields.selection([ @@ -92,7 +95,7 @@ class crm_configuration(osv.osv_memory): ir_values_obj = self.pool.get('ir.values') result = {} installed_modules = self.get_default_installed_modules(cr, uid, ids, context=context) - if 'fetchmail_crm' in installed_modules.keys(): + if 'module_fetchmail_crm' in installed_modules.keys(): for val in ir_values_obj.get(cr, uid, 'default', False, ['fetchmail.server']): result.update({val[1]: val[2]}) return result @@ -113,11 +116,11 @@ class crm_configuration(osv.osv_memory): model_obj = self.pool.get('ir.model') fetchmail_obj = self.pool.get('fetchmail.server') ir_values_obj = self.pool.get('ir.values') - if vals.get('fetchmail_crm'): - object_id = model_obj.search(cr, uid, [('model','=','crm.lead')])[0] + object_id = model_obj.search(cr, uid, [('model','=','crm.lead')]) + if vals.get('module_fetchmail_crm') and object_id: fetchmail_vals = { 'name': 'Incoming Leads', - 'object_id': object_id, + 'object_id': object_id[0], 'server': vals.get('server'), 'port': vals.get('port'), 'is_ssl': vals.get('is_ssl'), @@ -126,7 +129,7 @@ class crm_configuration(osv.osv_memory): 'password': vals.get('password') } server_ids = fetchmail_obj.search(cr, uid, []) - if not self.get_default_installed_modules(cr, uid, ['fetchmail_crm'], context) or not server_ids: + if not self.get_default_installed_modules(cr, uid, ids, context) or not server_ids: tt = fetchmail_obj.create(cr, uid, fetchmail_vals, context=context) else: fetchmail_ids = fetchmail_obj.search(cr, uid, [('name','=','Incoming Leads')], context=context) diff --git a/addons/crm/res_config_view.xml b/addons/crm/res_config_view.xml index 66130eae4a8..46b3447c673 100644 --- a/addons/crm/res_config_view.xml +++ b/addons/crm/res_config_view.xml @@ -5,34 +5,34 @@ Sales Application res.config form - + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -59,8 +59,11 @@ - + + + + \ No newline at end of file diff --git a/addons/plugin_outlook/plugin_outlook.xml b/addons/plugin_outlook/plugin_outlook.xml index 27fd8d6d11f..33a94dc2b42 100644 --- a/addons/plugin_outlook/plugin_outlook.xml +++ b/addons/plugin_outlook/plugin_outlook.xml @@ -52,9 +52,9 @@ Sales Application res.config form - + - +