From a8f532cc5aa109b7ca4d9bf6314807b501e46e7e Mon Sep 17 00:00:00 2001 From: "Ujjvala Collins (OpenERP)" Date: Fri, 24 Feb 2012 12:27:10 +0530 Subject: [PATCH] [IMP]: Improved code. bzr revid: uco@tinyerp.com-20120224065710-ljbbrvyckqvvgt8c --- openerp/addons/base/res/res_config_sale.py | 135 ++++-------------- .../addons/base/res/res_config_sale_view.xml | 6 +- 2 files changed, 33 insertions(+), 108 deletions(-) diff --git a/openerp/addons/base/res/res_config_sale.py b/openerp/addons/base/res/res_config_sale.py index 6506450f2fd..8b2b34a1648 100644 --- a/openerp/addons/base/res/res_config_sale.py +++ b/openerp/addons/base/res/res_config_sale.py @@ -19,18 +19,10 @@ # ############################################################################## -from datetime import datetime, timedelta -from dateutil.relativedelta import relativedelta -import time -import pooler from osv import fields, osv -from tools.translate import _ -from tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT, float_compare -import decimal_precision as dp -import netsvc -class sale_config_picking_policy(osv.osv_memory): - _name = 'sale.config.picking_policy' +class sale_configuration(osv.osv_memory): + _name = 'sale.configuration' _inherit = 'res.config' _columns = { @@ -38,7 +30,7 @@ class sale_config_picking_policy(osv.osv_memory): 'analytic_journal_billing_rate' : fields.boolean("Manage Different billing rates on contract/analytic accounts"), 'import_sugarcrm' : fields.boolean("Import data from sugarCRM?"), 'import_google' : fields.boolean("Import Contacts & Meetings from Google"), - 'crm_caldav' : fields.boolean("Use caldev to synchronize Meetings"), + 'crm_caldav' : fields.boolean("Use caldav to synchronize Meetings"), 'wiki_sale_faq' : fields.boolean("Install a sales FAQ?"), 'crm_partner_assign' : fields.boolean("Manage a several address per customer"), 'google_map' : fields.boolean("Google maps on customer"), @@ -58,15 +50,34 @@ class sale_config_picking_policy(osv.osv_memory): } - def default_module_get(self, cr, uid, ids, context=None): - #TODO: Need to be implemented - print "Not Implemented!" - return {} + def default_module_get(self, cr, uid, ids, selectable=[], context=None): + #TODO: TO BE IMPLEMENTED + modules = self.pool.get('ir.module.module') + mods = ['analytic_user_function', 'analytic_journal_billing_rate', 'import_sugarcrm', 'import_google', 'crm_caldav', 'wiki_sale_faq', 'crm_partner_assign', 'plugin_thunderbird', 'plugin_outlook', 'google_map'] + res = dict([(m,False) for m in mods]) + for mod in mods: + if mod not in selectable: + selectable.append(mod) + module_ids = modules.search(cr, uid, + [('name','in',selectable), + ('state','in',['to install', 'installed', 'to upgrade'])], + context=context) + + installed_modules = dict([(mod.name,True) for mod in modules.browse(cr, uid, module_ids, context=context)]) + res.update(installed_modules) + return res _defaults = { 'type': 'pop', 'google_map': default_module_get, 'crm_caldav': default_module_get, + 'analytic_user_function': default_module_get, + 'analytic_journal_billing_rate': default_module_get, + 'import_sugarcrm': default_module_get, + 'import_google': default_module_get, + 'wiki_sale_faq': default_module_get, + 'plugin_thunderbird': default_module_get, + 'plugin_outlook': default_module_get, } def onchange_server_type(self, cr, uid, ids, server_type=False, ssl=False): @@ -81,97 +92,11 @@ class sale_config_picking_policy(osv.osv_memory): values['port'] = port return {'value':values} -# def onchange_order(self, cr, uid, ids, sale, deli, context=None): -# res = {} -# if sale: -# res.update({'order_policy': 'manual'}) -# elif deli: -# res.update({'order_policy': 'picking'}) -# return {'value':res} - def execute(self, cr, uid, ids, context=None): - ir_values_obj = self.pool.get('ir.values') - data_obj = self.pool.get('ir.model.data') - menu_obj = self.pool.get('ir.ui.menu') - module_obj = self.pool.get('ir.module.module') - module_upgrade_obj = self.pool.get('base.module.upgrade') - module_name = [] + #TODO: TO BE IMPLEMENTED + return {} - group_id = data_obj.get_object(cr, uid, 'base', 'group_sale_salesman').id +sale_configuration() - wizard = self.browse(cr, uid, ids)[0] +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - if wizard.sale_orders: - menu_id = data_obj.get_object(cr, uid, 'sale', 'menu_invoicing_sales_order_lines').id - menu_obj.write(cr, uid, menu_id, {'groups_id':[(4,group_id)]}) - - if wizard.deli_orders: - 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)]}) - - if wizard.task_work: - module_name.append('project_timesheet') - module_name.append('project_mrp') - module_name.append('account_analytic_analysis') - - if wizard.timesheet: - module_name.append('account_analytic_analysis') - - if wizard.charge_delivery: - module_name.append('delivery') - - if len(module_name): - module_ids = [] - need_install = False - module_ids = [] - for module in module_name: - data_id = module_obj.name_search(cr, uid , module, [], '=') - module_ids.append(data_id[0][0]) - - for module in module_obj.browse(cr, uid, module_ids): - if module.state == 'uninstalled': - module_obj.state_update(cr, uid, [module.id], 'to install', ['uninstalled'], context) - need_install = True - cr.commit() - if need_install: - pooler.restart_pool(cr.dbname, update_module=True)[1] - -# if wizard.time_unit: -# prod_id = data_obj.get_object(cr, uid, 'product', 'product_consultant').id -# product_obj = self.pool.get('product.product') -# product_obj.write(cr, uid, prod_id, {'uom_id':wizard.time_unit.id, 'uom_po_id': wizard.time_unit.id}) - - ir_values_obj.set(cr, uid, 'default', False, 'order_policy', ['sale.order'], wizard.order_policy) - if wizard.task_work and wizard.time_unit: - company_id = self.pool.get('res.users').browse(cr, uid, uid).company_id.id - self.pool.get('res.company').write(cr, uid, [company_id], { - 'project_time_mode_id': wizard.time_unit.id - }, context=context) - - def apply_cb(self, cr, uid, ids, context=None): - ir_values_obj = self.pool.get('ir.values') - wizard = self.browse(cr, uid, ids, context=context)[0] - ir_values_obj.set(cr, uid, 'default', False, 'picking_policy', ['sale.order'], wizard.picking_policy) - return {'type' : 'ir.actions.act_window_close'} - -sale_config_picking_policy() - - - -#class define_delivery_steps(osv.osv_memory): -# _name = 'delivery.define.delivery.steps.wizard' -# -# _columns = { -# 'picking_policy' : fields.selection([('direct', 'Deliver each product when available'), ('one', 'Deliver all products at once')], 'Picking Policy'), -# } -# _defaults = { -# 'picking_policy': lambda s,c,u,ctx: s.pool.get('sale.order').default_get(c,u,['picking_policy'],context=ctx)['picking_policy'] -# } -# -# def apply_cb(self, cr, uid, ids, context=None): -# ir_values_obj = self.pool.get('ir.values') -# wizard = self.browse(cr, uid, ids, context=context)[0] -# ir_values_obj.set(cr, uid, 'default', False, 'picking_policy', ['sale.order'], wizard.picking_policy) -# return {'type' : 'ir.actions.act_window_close'} -# -#define_delivery_steps() \ No newline at end of file diff --git a/openerp/addons/base/res/res_config_sale_view.xml b/openerp/addons/base/res/res_config_sale_view.xml index 8ef72068fb9..c6a5e54429a 100644 --- a/openerp/addons/base/res/res_config_sale_view.xml +++ b/openerp/addons/base/res/res_config_sale_view.xml @@ -3,7 +3,7 @@ Sales Application - sale.config.picking_policy + sale.configuration form
@@ -79,9 +79,9 @@ - Configure different Sales Applications + Configure Sales Application ir.actions.act_window - sale.config.picking_policy + sale.configuration form form