From b690772353ee6b0d87a15983a687ff255e8a040a Mon Sep 17 00:00:00 2001 From: "rha@tinyerp.com" <> Date: Mon, 17 Jan 2011 11:52:31 +0530 Subject: [PATCH] [Fix]: performance issues - stock_move, account_move_lines and others lp bug: https://launchpad.net/bugs/693833 fixed bzr revid: rha@tinyerp.com-20110117062231-5u6h83i84a05rkki --- addons/mrp/mrp.py | 4 ++-- addons/purchase/purchase.py | 10 +++++----- addons/stock/stock.py | 8 ++++---- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py index a260efc8e36..65900097126 100644 --- a/addons/mrp/mrp.py +++ b/addons/mrp/mrp.py @@ -438,8 +438,8 @@ class mrp_production(osv.osv): 'date_planned_end': fields.function(_production_date_end, method=True, type='date', string='Scheduled End Date'), 'date_planned_date': fields.function(_production_date, method=True, type='date', string='Scheduled Date'), 'date_planned': fields.datetime('Scheduled date', required=True, select=1), - 'date_start': fields.datetime('Start Date'), - 'date_finished': fields.datetime('End Date'), + 'date_start': fields.datetime('Start Date', select=True), + 'date_finished': fields.datetime('End Date', select=True), 'bom_id': fields.many2one('mrp.bom', 'Bill of Material', domain=[('bom_id','=',False)]), 'routing_id': fields.many2one('mrp.routing', string='Routing', on_delete='set null', help="The list of operations (list of work centers) to produce the finished product. The routing is mainly used to compute work center costs during operations and to plan future loads on work centers based on production plannification."), diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 64026f46dda..df2bccc2205 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -162,8 +162,8 @@ class purchase_order(osv.osv): help="Reference of the document that generated this purchase order request." ), 'partner_ref': fields.char('Supplier Reference', states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]}, size=64), - 'date_order':fields.date('Date Ordered', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)]}, help="Date on which this document has been created."), - 'date_approve':fields.date('Date Approved', readonly=1, help="Date on which purchase order has been approved"), + 'date_order':fields.date('Date Ordered', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)]}, select=True, help="Date on which this document has been created."), + 'date_approve':fields.date('Date Approved', readonly=1, select=True, help="Date on which purchase order has been approved"), 'partner_id':fields.many2one('res.partner', 'Supplier', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]}, change_default=True), 'partner_address_id':fields.many2one('res.partner.address', 'Address', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]},domain="[('partner_id', '=', partner_id)]"), @@ -191,7 +191,7 @@ class purchase_order(osv.osv): "From Picking: a draft invoice will be pre-generated based on validated receptions.\n" \ "Manual: allows you to generate suppliers invoices by chosing in the uninvoiced lines of all manual purchase orders." ), - 'minimum_planned_date':fields.function(_minimum_planned_date, fnct_inv=_set_minimum_planned_date, method=True,store=True, string='Expected Date', type='date', help="This is computed as the minimum scheduled date of all purchase order lines' products."), + 'minimum_planned_date':fields.function(_minimum_planned_date, fnct_inv=_set_minimum_planned_date, method=True,store=True, string='Expected Date', type='date', select=True, help="This is computed as the minimum scheduled date of all purchase order lines' products."), 'amount_untaxed': fields.function(_amount_all, method=True, digits_compute= dp.get_precision('Purchase Price'), string='Untaxed Amount', store={ 'purchase.order.line': (_get_order, None, 10), @@ -605,7 +605,7 @@ class purchase_order_line(osv.osv): _columns = { 'name': fields.char('Description', size=256, required=True), 'product_qty': fields.float('Quantity', required=True, digits=(16,2)), - 'date_planned': fields.date('Scheduled Date', required=True), + 'date_planned': fields.date('Scheduled Date', required=True, select=True), 'taxes_id': fields.many2many('account.tax', 'purchase_order_taxe', 'ord_id', 'tax_id', 'Taxes'), 'product_uom': fields.many2one('product.uom', 'Product UOM', required=True), 'product_id': fields.many2one('product.product', 'Product', domain=[('purchase_ok','=',True)], change_default=True), @@ -673,7 +673,7 @@ class purchase_order_line(osv.osv): seller_delay = 0 prod_name = self.pool.get('product.product').name_get(cr, uid, [prod.id], context=context)[0][1] - res = {} + res = {} for s in prod.seller_ids: if s.name.id == partner_id: seller_delay = s.delay diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 68b6edb5f8d..7f882c0091c 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -1506,9 +1506,9 @@ class stock_move(osv.osv): _columns = { 'name': fields.char('Name', size=64, required=True, select=True), 'priority': fields.selection([('0', 'Not urgent'), ('1', 'Urgent')], 'Priority'), - 'create_date': fields.datetime('Creation Date', readonly=True), - 'date': fields.datetime('Date', required=True, help="Move date: scheduled date until move is done, then date of actual move processing", readonly=True), - 'date_expected': fields.datetime('Scheduled Date', states={'done': [('readonly', True)]},required=True, help="Scheduled date for the processing of this move"), + 'create_date': fields.datetime('Creation Date', readonly=True, select=True), + 'date': fields.datetime('Date', required=True, select=True, help="Move date: scheduled date until move is done, then date of actual move processing", readonly=True), + 'date_expected': fields.datetime('Scheduled Date', states={'done': [('readonly', True)]},required=True, select=True, help="Scheduled date for the processing of this move"), 'product_id': fields.many2one('product.product', 'Product', required=True, select=True, domain=[('type','<>','service')],states={'done': [('readonly', True)]}), 'product_qty': fields.float('Quantity', digits_compute=dp.get_precision('Product UoM'), required=True,states={'done': [('readonly', True)]}), @@ -2585,7 +2585,7 @@ class stock_inventory(osv.osv): account_move_data_l = account_move_obj.read(cr, uid, account_move_ids, ['state'], context=context) for account_move in account_move_data_l: if account_move['state'] == 'posted': - raise osv.except_osv(_('UserError'), + raise osv.except_osv(_('UserError'), _('You can not cancel inventory which has any account move with posted state.')) account_move_obj.unlink(cr, uid, [account_move['id']], context=context) self.write(cr, uid, [inv.id], {'state': 'cancel'}, context=context)