X-Git-Url: http://git.inspyration.org/?a=blobdiff_plain;f=addons%2Fsale%2Fres_config.py;h=f4239b0e1a21b31155451f10b3bb6463165191f0;hb=7a75fa6ef5918e6a7291c8dec1faf978b1f82747;hp=814d473a1a291bb91f056af06027983b620e6774;hpb=787c165eb5c5a561bce6c16d7d69a625f2a7a9a8;p=odoo%2Fodoo.git diff --git a/addons/sale/res_config.py b/addons/sale/res_config.py index 814d473..f4239b0 100644 --- a/addons/sale/res_config.py +++ b/addons/sale/res_config.py @@ -19,17 +19,21 @@ # ############################################################################## -from osv import fields, osv -import pooler -from tools.translate import _ +import logging + +from openerp.osv import fields, osv +from openerp import pooler +from openerp.tools.translate import _ + +_logger = logging.getLogger(__name__) class sale_configuration(osv.osv_memory): _inherit = 'sale.config.settings' _columns = { - 'group_invoice_so_lines': fields.boolean('Generate invoices based on the sale order lines', + 'group_invoice_so_lines': fields.boolean('Generate invoices based on the sales order lines', implied_group='sale.group_invoice_so_lines', - help="To allow your salesman to make invoices for sale order lines using the menu 'Lines to Invoice'."), + help="To allow your salesman to make invoices for sales order lines using the menu 'Lines to Invoice'."), 'timesheet': fields.boolean('Prepare invoices based on timesheets', help = """For modifying account analytic view to show important data to project manager of services companies. You can also view the report of account analytic summary user-wise as well as month wise. @@ -44,17 +48,17 @@ class sale_configuration(osv.osv_memory): 'group_sale_pricelist':fields.boolean("Use pricelists to adapt your price per customers", implied_group='product.group_sale_pricelist', help="""Allows to manage different prices based on rules per category of customers. - Example: 10% for retailers, promotion of 5 EUR on this product, etc."""), +Example: 10% for retailers, promotion of 5 EUR on this product, etc."""), 'group_uom':fields.boolean("Allow using different units of measures", implied_group='product.group_uom', help="""Allows you to select and maintain different units of measure for products."""), - 'group_discount_per_so_line': fields.boolean("Allow setting a discount on the sale order lines", + 'group_discount_per_so_line': fields.boolean("Allow setting a discount on the sales order lines", implied_group='sale.group_discount_per_so_line', - help="Allows you to apply some discount per sale order line."), + help="Allows you to apply some discount per sales order line."), 'module_warning': fields.boolean("Allow configuring alerts by customer or products", - help="""Allow to configure warnings on products and trigger them when a user wants to sale a given product or a given customer. - Example: Product: this product is deprecated, do not purchase more than 5. - Supplier: don't forget to ask for an express delivery."""), + help="""Allow to configure notification on products and trigger them when a user wants to sale a given product or a given customer. +Example: Product: this product is deprecated, do not purchase more than 5. + Supplier: don't forget to ask for an express delivery."""), 'module_sale_margin': fields.boolean("Display margins on sales orders", help="""This adds the 'Margin' on sales order. This gives the profitability by calculating the difference between the Unit Price and Cost Price. @@ -69,7 +73,7 @@ class sale_configuration(osv.osv_memory): But the possibility to change these values is still available. This installs the module analytic_user_function."""), 'module_project': fields.boolean("Project"), - 'module_sale_stock': fields.boolean("Sale and Warehouse Management", + 'module_sale_stock': fields.boolean("Trigger delivery orders automatically from sales orders", help="""Allows you to Make Quotation, Sale Order using different Order policy and Manage Related Stock. This installs the module sale_stock."""), } @@ -81,8 +85,12 @@ class sale_configuration(osv.osv_memory): user = self.pool.get('res.users').browse(cr, uid, uid, context) res['time_unit'] = user.company_id.project_time_mode_id.id else: - product = ir_model_data.get_object(cr, uid, 'product', 'product_product_consultant') - res['time_unit'] = product.uom_id.id + try: + product = ir_model_data.get_object(cr, uid, 'product', 'product_product_consultant') + res['time_unit'] = product.uom_id.id + except ValueError: + # keep default value in that case + _logger.warning("Product with xml_id 'product.product_product_consultant' not found") return res def _get_default_time_unit(self, cr, uid, context=None): @@ -98,13 +106,15 @@ class sale_configuration(osv.osv_memory): wizard = self.browse(cr, uid, ids)[0] if wizard.time_unit: - product = ir_model_data.get_object(cr, uid, 'product', 'product_product_consultant') - product.write({'uom_id': wizard.time_unit.id, 'uom_po_id': wizard.time_unit.id}) + try: + product = ir_model_data.get_object(cr, uid, 'product', 'product_product_consultant') + product.write({'uom_id': wizard.time_unit.id, 'uom_po_id': wizard.time_unit.id}) + except ValueError: + _logger.warning("Product with xml_id 'product.product_product_consultant' not found, UoMs not updated!") if wizard.module_project and wizard.time_unit: user = self.pool.get('res.users').browse(cr, uid, uid, context) user.company_id.write({'project_time_mode_id': wizard.time_unit.id}) - return {} def onchange_task_work(self, cr, uid, ids, task_work, context=None): @@ -122,15 +132,17 @@ class sale_configuration(osv.osv_memory): class account_config_settings(osv.osv_memory): _inherit = 'account.config.settings' _columns = { - 'module_sale_analytic_plans': fields.boolean('Several analytic accounts on sales', + 'module_sale_analytic_plans': fields.boolean('Use multiple analytic accounts on sales', help="""This allows install module sale_analytic_plans."""), 'group_analytic_account_for_sales': fields.boolean('Analytic accounting for sales', implied_group='sale.group_analytic_accounting', - help="Allows you to specify an analytic account on sale orders."), + help="Allows you to specify an analytic account on sales orders."), } def onchange_sale_analytic_plans(self, cr, uid, ids, module_sale_analytic_plans, context=None): """ change group_analytic_account_for_sales following module_sale_analytic_plans """ + if not module_sale_analytic_plans: + return {} return {'value': {'group_analytic_account_for_sales': module_sale_analytic_plans}} # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: