From b3b7a113af5319f2b3c8bbd3af5cea1361c358e3 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Wed, 2 Feb 2011 10:15:46 +0100 Subject: [PATCH 001/132] [FIX] many2one: return (id,name) instead of only id also for osv_memory By doing this small change we save clients the trouble of explicitly having to call name_get() for each m2o field in osv_memory objects, which they cannot trivially batch and represents a large dealy for wizards with possibly large numbers of child o2m records. An example is the linked bug, where partial picking of several hundred move lines would lead to as many separate name_get RPC calls, causing a noticeable delay. lp bug: https://launchpad.net/bugs/709567 fixed bzr revid: odo@openerp.com-20110202091546-rdsxn7wuby040m3r --- bin/osv/fields.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/bin/osv/fields.py b/bin/osv/fields.py index 72df0e925ad..b7874cda8e6 100644 --- a/bin/osv/fields.py +++ b/bin/osv/fields.py @@ -339,6 +339,20 @@ class many2one(_column): result = {} for id in ids: result[id] = obj.datas[id].get(name, False) + + # build a dictionary of the form {'id_of_distant_resource': name_of_distant_resource} + # we use uid=1 because the visibility of a many2one field value (just id and name) + # must be the access right of the parent form and not the linked object itself. + obj = obj.pool.get(self._obj) + records = dict(obj.name_get(cr, 1, + list(set([x for x in result.values() if x and isinstance(x, (int,long))])), + context=context)) + for id in ids: + if result[id] in records: + result[id] = (result[id], records[result[id]]) + else: + result[id] = False + return result def get(self, cr, obj, ids, name, user=None, context=None, values=None): From a313f724ba3843a512046768c7f69821cbda1464 Mon Sep 17 00:00:00 2001 From: "Rifakat Haradwala (Open ERP)" Date: Tue, 15 Feb 2011 14:50:57 +0530 Subject: [PATCH 002/132] [IMP]: Account: improvement in osv memory wizards bzr revid: rha@tinyerp.com-20110215092057-lpki1kg79dnya96g --- .../wizard/account_automatic_reconcile.py | 31 +++++++++---------- .../wizard/account_fiscalyear_close.py | 21 ++++++------- .../account/wizard/account_invoice_refund.py | 22 ++++++------- addons/account/wizard/account_move_journal.py | 2 +- .../wizard/account_open_closed_fiscalyear.py | 6 ++-- .../account/wizard/account_report_common.py | 2 +- .../wizard/account_validate_account_move.py | 7 ++--- addons/account/wizard/account_vat.py | 2 +- .../wizard/account_followup_print.py | 19 ++++++------ .../wizard/account_payment_order.py | 8 ++--- 10 files changed, 54 insertions(+), 66 deletions(-) diff --git a/addons/account/wizard/account_automatic_reconcile.py b/addons/account/wizard/account_automatic_reconcile.py index 13fef1fde0d..b9e5363e7d2 100644 --- a/addons/account/wizard/account_automatic_reconcile.py +++ b/addons/account/wizard/account_automatic_reconcile.py @@ -143,18 +143,15 @@ class account_automatic_reconcile(osv.osv_memory): obj_model = self.pool.get('ir.model.data') if context is None: context = {} - form = self.read(cr, uid, ids, [])[0] - for m2o_field in ['journal_id','period_id','writeoff_acc_id']: - if form[m2o_field] and isinstance(form[m2o_field], tuple): - form[m2o_field] = form[m2o_field][0] - max_amount = form.get('max_amount', False) and form.get('max_amount') or 0.0 - power = form['power'] - allow_write_off = form['allow_write_off'] + form = self.browse(cr, uid, ids, context=context)[0] + max_amount = form.max_amount or 0.0 + power = form.power + allow_write_off = form.allow_write_off reconciled = unreconciled = 0 - if not form['account_ids']: + if not form.account_ids: raise osv.except_osv(_('UserError'), _('You must select accounts to reconcile')) - for account_id in form['account_ids']: - params = (account_id,) + for account_id in form.account_ids: + params = (account_id.id,) if not allow_write_off: query = """SELECT partner_id FROM account_move_line WHERE account_id=%s AND reconcile_id IS NULL AND state <> 'draft' GROUP BY partner_id @@ -175,12 +172,12 @@ class account_automatic_reconcile(osv.osv_memory): "AND partner_id=%s " \ "AND state <> 'draft' " \ "AND reconcile_id IS NULL", - (account_id, partner_id)) + (account_id.id, partner_id)) line_ids = [id for (id,) in cr.fetchall()] if line_ids: reconciled += len(line_ids) if allow_write_off: - move_line_obj.reconcile(cr, uid, line_ids, 'auto', form['writeoff_acc_id'], form['period_id'], form['journal_id'], context) + move_line_obj.reconcile(cr, uid, line_ids, 'auto', form.writeoff_acc_id.id, form.period_id.id, form.journal_id.id, context) else: move_line_obj.reconcile_partial(cr, uid, line_ids, 'manual', context=context) @@ -194,7 +191,7 @@ class account_automatic_reconcile(osv.osv_memory): "AND partner_id IS NOT NULL " \ "GROUP BY partner_id " \ "HAVING count(*)>1", - (account_id,)) + (account_id.id,)) partner_ids = [id for (id,) in cr.fetchall()] #filter? for partner_id in partner_ids: @@ -208,7 +205,7 @@ class account_automatic_reconcile(osv.osv_memory): "AND state <> 'draft' " \ "AND debit > 0 " \ "ORDER BY date_maturity", - (account_id, partner_id)) + (account_id.id, partner_id)) debits = cr.fetchall() # get the list of unreconciled 'credit transactions' for this partner @@ -221,10 +218,10 @@ class account_automatic_reconcile(osv.osv_memory): "AND state <> 'draft' " \ "AND credit > 0 " \ "ORDER BY date_maturity", - (account_id, partner_id)) + (account_id.id, partner_id)) credits = cr.fetchall() - (rec, unrec) = self.do_reconcile(cr, uid, credits, debits, max_amount, power, form['writeoff_acc_id'], form['period_id'], form['journal_id'], context) + (rec, unrec) = self.do_reconcile(cr, uid, credits, debits, max_amount, power, form.writeoff_acc_id.id, form.period_id.id, form.journal_id.id, context) reconciled += rec unreconciled += unrec @@ -237,7 +234,7 @@ class account_automatic_reconcile(osv.osv_memory): "WHERE account_id=%s " \ "AND reconcile_id IS NULL " \ "AND state <> 'draft' " + partner_filter, - (account_id,)) + (account_id.id,)) additional_unrec = cr.fetchone()[0] unreconciled = unreconciled + additional_unrec context.update({'reconciled': reconciled, 'unreconciled': unreconciled}) diff --git a/addons/account/wizard/account_fiscalyear_close.py b/addons/account/wizard/account_fiscalyear_close.py index bd635839afb..89e28950535 100644 --- a/addons/account/wizard/account_fiscalyear_close.py +++ b/addons/account/wizard/account_fiscalyear_close.py @@ -56,25 +56,22 @@ class account_fiscalyear_close(osv.osv_memory): obj_acc_account = self.pool.get('account.account') obj_acc_journal_period = self.pool.get('account.journal.period') - data = self.read(cr, uid, ids, context=context) - for m2o_field in ['fy_id','fy2_id','journal_id','period_id']: - if isinstance(data[0][m2o_field], tuple): - data[0][m2o_field] = data[0][m2o_field][0] + data = self.browse(cr, uid, ids, context=context) if context is None: context = {} - fy_id = data[0]['fy_id'] + fy_id = data[0].fy_id.id - cr.execute("SELECT id FROM account_period WHERE date_stop < (SELECT date_start FROM account_fiscalyear WHERE id = %s)", (str(data[0]['fy2_id']),)) + cr.execute("SELECT id FROM account_period WHERE date_stop < (SELECT date_start FROM account_fiscalyear WHERE id = %s)", (str(data[0].fy2_id.id),)) fy_period_set = ','.join(map(lambda id: str(id[0]), cr.fetchall())) cr.execute("SELECT id FROM account_period WHERE date_start > (SELECT date_stop FROM account_fiscalyear WHERE id = %s)", (str(fy_id),)) fy2_period_set = ','.join(map(lambda id: str(id[0]), cr.fetchall())) - period = obj_acc_period.browse(cr, uid, data[0]['period_id'], context=context) - new_fyear = obj_acc_fiscalyear.browse(cr, uid, data[0]['fy2_id'], context=context) - old_fyear = obj_acc_fiscalyear.browse(cr, uid, data[0]['fy_id'], context=context) + period = obj_acc_period.browse(cr, uid, data[0].period_id.id, context=context) + new_fyear = obj_acc_fiscalyear.browse(cr, uid, data[0].fy2_id.id, context=context) + old_fyear = obj_acc_fiscalyear.browse(cr, uid, fy_id, context=context) - new_journal = data[0]['journal_id'] + new_journal = data[0].journal_id.id new_journal = obj_acc_journal.browse(cr, uid, new_journal, context=context) if not new_journal.default_credit_account_id or not new_journal.default_debit_account_id: @@ -110,7 +107,7 @@ class account_fiscalyear_close(osv.osv_memory): obj_acc_move_line.create(cr, uid, { 'debit': account.balance>0 and account.balance, 'credit': account.balance<0 and -account.balance, - 'name': data[0]['report_name'], + 'name': data[0].report_name, 'date': period.date_start, 'journal_id': new_journal.id, 'period_id': period.id, @@ -207,7 +204,7 @@ class account_fiscalyear_close(osv.osv_memory): if ids: obj_acc_move_line.reconcile(cr, uid, ids, context=context) - new_period = data[0]['period_id'] + new_period = data[0].period_id.id ids = obj_acc_journal_period.search(cr, uid, [('journal_id','=',new_journal.id),('period_id','=',new_period)]) if not ids: ids = [obj_acc_journal_period.create(cr, uid, { diff --git a/addons/account/wizard/account_invoice_refund.py b/addons/account/wizard/account_invoice_refund.py index edc2b1d99c9..97e15e1a071 100644 --- a/addons/account/wizard/account_invoice_refund.py +++ b/addons/account/wizard/account_invoice_refund.py @@ -88,13 +88,13 @@ class account_invoice_refund(osv.osv_memory): if context is None: context = {} - for form in self.read(cr, uid, ids, context=context): + for form in self.browse(cr, uid, ids, context=context): created_inv = [] date = False period = False description = False company = res_users_obj.browse(cr, uid, uid, context=context).company_id - journal_id = form.get('journal_id', False) + journal_id = form.journal_id.id if isinstance(journal_id, tuple): journal_id = journal_id[0] for inv in inv_obj.browse(cr, uid, context.get('active_ids'), context=context): @@ -102,19 +102,17 @@ class account_invoice_refund(osv.osv_memory): raise osv.except_osv(_('Error !'), _('Can not %s draft/proforma/cancel invoice.') % (mode)) if inv.reconciled and mode in ('cancel', 'modify'): raise osv.except_osv(_('Error !'), _('Can not %s invoice which is already reconciled, invoice should be unreconciled first. You can only Refund this invoice') % (mode)) - if form['period']: - period = form['period'] - if isinstance(period, tuple): - period = period[0] + if form.period.id: + period = form.period.id else: period = inv.period_id and inv.period_id.id or False if not journal_id: journal_id = inv.journal_id.id - if form['date']: - date = form['date'] - if not form['period']: + if form.date: + date = form.date + if not form.period.id: cr.execute("select name from ir_model_fields \ where model = 'account.period' \ and name = 'company_id'") @@ -132,8 +130,8 @@ class account_invoice_refund(osv.osv_memory): period = res[0] else: date = inv.date_invoice - if form['description']: - description = form['description'] + if form.description: + description = form.description else: description = inv.name @@ -215,7 +213,7 @@ class account_invoice_refund(osv.osv_memory): return result def invoice_refund(self, cr, uid, ids, context=None): - data_refund = self.read(cr, uid, ids, [],context=context)[0]['filter_refund'] + data_refund = self.read(cr, uid, ids, ['filter_refund'],context=context)[0]['filter_refund'] return self.compute_refund(cr, uid, ids, data_refund, context=context) diff --git a/addons/account/wizard/account_move_journal.py b/addons/account/wizard/account_move_journal.py index db179ff00ff..dec34e6e717 100644 --- a/addons/account/wizard/account_move_journal.py +++ b/addons/account/wizard/account_move_journal.py @@ -148,7 +148,7 @@ class account_move_journal(osv.osv_memory): journal_id = self._get_journal(cr, uid, context) period_id = self._get_period(cr, uid, context) - target_move = self.read(cr, uid, ids, [], context=context)[0]['target_move'] + target_move = self.read(cr, uid, ids, ['target_move'], context=context)[0]['target_move'] name = _("Journal Items") if journal_id: diff --git a/addons/account/wizard/account_open_closed_fiscalyear.py b/addons/account/wizard/account_open_closed_fiscalyear.py index e4562d02ca9..d6151676187 100644 --- a/addons/account/wizard/account_open_closed_fiscalyear.py +++ b/addons/account/wizard/account_open_closed_fiscalyear.py @@ -34,10 +34,8 @@ class account_open_closed_fiscalyear(osv.osv_memory): fy_obj = self.pool.get('account.fiscalyear') move_obj = self.pool.get('account.move') - data = self.read(cr, uid, ids, [], context=context)[0] - if isinstance(data['fyear_id'], tuple): - data['fyear_id'] = data['fyear_id'][0] - data_fyear = fy_obj.browse(cr, uid, data['fyear_id'], context=context) + data = self.browse(cr, uid, ids, context=context)[0] + data_fyear = fy_obj.browse(cr, uid, data.fyear_id.id, context=context) if not data_fyear.end_journal_period_id: raise osv.except_osv(_('Error !'), _('No End of year journal defined for the fiscal year')) period_journal = data_fyear.end_journal_period_id diff --git a/addons/account/wizard/account_report_common.py b/addons/account/wizard/account_report_common.py index f7d7cac1c77..7a8a0365208 100644 --- a/addons/account/wizard/account_report_common.py +++ b/addons/account/wizard/account_report_common.py @@ -132,7 +132,7 @@ class account_common_report(osv.osv_memory): data['ids'] = context.get('active_ids', []) data['model'] = context.get('active_model', 'ir.ui.menu') data['form'] = self.read(cr, uid, ids, ['date_from', 'date_to', 'fiscalyear_id', 'journal_ids', 'period_from', 'period_to', 'filter', 'chart_account_id', 'target_move'], context=context)[0] - for field in data['form'].keys(): + for field in ['fiscalyear_id', 'chart_account_id', 'period_from', 'period_to']: if isinstance(data['form'][field], tuple): data['form'][field] = data['form'][field][0] used_context = self._build_contexts(cr, uid, ids, data, context=context) diff --git a/addons/account/wizard/account_validate_account_move.py b/addons/account/wizard/account_validate_account_move.py index c2fcfbfd5ab..818442a6b3b 100644 --- a/addons/account/wizard/account_validate_account_move.py +++ b/addons/account/wizard/account_validate_account_move.py @@ -33,11 +33,8 @@ class validate_account_move(osv.osv_memory): obj_move = self.pool.get('account.move') if context is None: context = {} - data = self.read(cr, uid, ids, context=context)[0] - for field in data.keys(): - if isinstance(data[field], tuple): - data[field] = data[field][0] - ids_move = obj_move.search(cr, uid, [('state','=','draft'),('journal_id','=',data['journal_id']),('period_id','=',data['period_id'])]) + data = self.browse(cr, uid, ids, context=context)[0] + ids_move = obj_move.search(cr, uid, [('state','=','draft'),('journal_id','=',data.journal_id.id),('period_id','=',data.period_id.id)]) if not ids_move: raise osv.except_osv(_('Warning'), _('Specified Journal does not have any account move entries in draft state for this period')) obj_move.button_validate(cr, uid, ids_move, context=context) diff --git a/addons/account/wizard/account_vat.py b/addons/account/wizard/account_vat.py index 3e77979cd3b..3aecfb04a30 100644 --- a/addons/account/wizard/account_vat.py +++ b/addons/account/wizard/account_vat.py @@ -46,7 +46,7 @@ class account_vat_declaration(osv.osv_memory): context = {} datas = {'ids': context.get('active_ids', [])} datas['model'] = 'account.tax.code' - datas['form'] = self.read(cr, uid, ids)[0] + datas['form'] = self.read(cr, uid, ids, context=context)[0] for field in datas['form'].keys(): if isinstance(datas['form'][field], tuple): datas['form'][field] = datas['form'][field][0] diff --git a/addons/account_followup/wizard/account_followup_print.py b/addons/account_followup/wizard/account_followup_print.py index e8f5e976389..3a062202bfa 100644 --- a/addons/account_followup/wizard/account_followup_print.py +++ b/addons/account_followup/wizard/account_followup_print.py @@ -146,7 +146,7 @@ class account_followup_print_all(osv.osv_memory): if context is None: context = {} if ids: - data = self.read(cr, uid, ids, [], context=context)[0] + data = self.browse(cr, uid, ids, context=context)[0] cr.execute( "SELECT l.partner_id, l.followup_line_id,l.date_maturity, l.date, l.id "\ "FROM account_move_line AS l "\ @@ -162,8 +162,8 @@ class account_followup_print_all(osv.osv_memory): move_lines = cr.fetchall() old = None fups = {} - fup_id = 'followup_id' in context and context['followup_id'] or data['followup_id'] - date = 'date' in context and context['date'] or data['date'] + fup_id = 'followup_id' in context and context['followup_id'] or data.followup_id.id + date = 'date' in context and context['date'] or data.date current_date = datetime.date(*time.strptime(date, '%Y-%m-%d')[:3]) @@ -208,14 +208,15 @@ class account_followup_print_all(osv.osv_memory): if context is None: context = {} - data = self.read(cr, uid, ids, [], context=context)[0] + data = self.browse(cr, uid, ids, context=context)[0] + partner_ids = [partner_id.id for partner_id in data.partner_ids] model_data_ids = mod_obj.search(cr, uid, [('model','=','ir.ui.view'),('name','=','view_account_followup_print_all_msg')], context=context) resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id'] - if data['email_conf']: + if data.email_conf: msg_sent = '' msg_unsent = '' data_user = user_obj.browse(cr, uid, uid, context=context) - move_lines = line_obj.browse(cr, uid, data['partner_ids'], context=context) + move_lines = line_obj.browse(cr, uid, partner_ids, context=context) partners = [] dict_lines = {} for line in move_lines: @@ -235,8 +236,8 @@ class account_followup_print_all(osv.osv_memory): if adr.email: dest = [adr.email] src = tools.config.options['email_from'] - if not data['partner_lang']: - body = data['email_body'] + if not data.partner_lang: + body = data.email_body else: cxt = context.copy() cxt['lang'] = partner.lang @@ -272,7 +273,7 @@ class account_followup_print_all(osv.osv_memory): 'date':time.strftime('%Y-%m-%d'), } body = body%val - sub = tools.ustr(data['email_subject']) + sub = tools.ustr(data.email_subject) msg = '' if dest: try: diff --git a/addons/account_payment/wizard/account_payment_order.py b/addons/account_payment/wizard/account_payment_order.py index eb0d8b21926..d1137078c32 100644 --- a/addons/account_payment/wizard/account_payment_order.py +++ b/addons/account_payment/wizard/account_payment_order.py @@ -62,8 +62,8 @@ class payment_order_create(osv.osv_memory): payment_obj = self.pool.get('payment.line') if context is None: context = {} - data = self.read(cr, uid, ids, [], context=context)[0] - line_ids = data['entries'] + data = self.browse(cr, uid, ids, context=context)[0] + line_ids = [entry.id for entry in data.entries] if not line_ids: return {'type': 'ir.actions.act_window_close'} @@ -97,8 +97,8 @@ class payment_order_create(osv.osv_memory): mod_obj = self.pool.get('ir.model.data') if context is None: context = {} - data = self.read(cr, uid, ids, [], context=context)[0] - search_due_date = data['duedate'] + data = self.browse(cr, uid, ids, context=context)[0] + search_due_date = data.duedate # payment = self.pool.get('payment.order').browse(cr, uid, context['active_id'], context=context) # Search for move line to pay: From c1cd88b1d9647208f62e7c7eba0aea0ef2c20912 Mon Sep 17 00:00:00 2001 From: "ksa (Open ERP)" Date: Tue, 15 Feb 2011 16:09:43 +0530 Subject: [PATCH 003/132] [IMP]: Task-2009 improve osv memory wizard bzr revid: ksa@tinyerp.co.in-20110215103943-uj1pse2yv0dncpfi --- addons/hr_timesheet/wizard/hr_timesheet_print_employee.py | 4 +++- .../wizard/hr_timesheet_final_invoice_create.py | 3 +++ addons/mrp/wizard/mrp_product_produce.py | 4 ++-- .../wizard/project_scrum_backlog_create_task.py | 3 +++ addons/project_scrum/wizard/project_scrum_backlog_sprint.py | 3 +++ .../wizard/purchase_requisition_partner.py | 6 +++++- 6 files changed, 19 insertions(+), 4 deletions(-) diff --git a/addons/hr_timesheet/wizard/hr_timesheet_print_employee.py b/addons/hr_timesheet/wizard/hr_timesheet_print_employee.py index 9775a8518ff..51af2444661 100644 --- a/addons/hr_timesheet/wizard/hr_timesheet_print_employee.py +++ b/addons/hr_timesheet/wizard/hr_timesheet_print_employee.py @@ -31,7 +31,7 @@ class analytical_timesheet_employee(osv.osv_memory): 'Month', required=True), 'year': fields.integer('Year', required=True), 'employee_id': fields.many2one('hr.employee', 'Employee', required=True) - + } def _get_user(self, cr, uid, context=None): @@ -50,6 +50,8 @@ class analytical_timesheet_employee(osv.osv_memory): def print_report(self, cr, uid, ids, context=None): data = self.read(cr, uid, ids, context=context)[0] + if isinstance(data['employee_id'], tuple): + data['employee_id'] = data['employee_id'][0] datas = { 'ids': [], 'model': 'hr.employee', diff --git a/addons/hr_timesheet_invoice/wizard/hr_timesheet_final_invoice_create.py b/addons/hr_timesheet_invoice/wizard/hr_timesheet_final_invoice_create.py index 8f1ef4ef261..cebcf072794 100644 --- a/addons/hr_timesheet_invoice/wizard/hr_timesheet_final_invoice_create.py +++ b/addons/hr_timesheet_invoice/wizard/hr_timesheet_final_invoice_create.py @@ -59,6 +59,9 @@ class final_invoice_create(osv.osv_memory): res = mod_obj.read(cr, uid, result, ['res_id'], context=context) data = self.read(cr, uid, ids, [], context=context)[0] + if isinstance(data['balance_product'], tuple): + data['balance_product'] = data['balance_product'][0] + account_ids = 'active_ids' in context and context['active_ids'] or [] for account in analytic_account_obj.browse(cr, uid, account_ids, context=context): diff --git a/addons/mrp/wizard/mrp_product_produce.py b/addons/mrp/wizard/mrp_product_produce.py index 6052cdb56f7..811c707eb2a 100644 --- a/addons/mrp/wizard/mrp_product_produce.py +++ b/addons/mrp/wizard/mrp_product_produce.py @@ -70,10 +70,10 @@ class mrp_product_produce(osv.osv_memory): context = {} prod_obj = self.pool.get('mrp.production') move_ids = context.get('active_ids', []) - for data in self.read(cr, uid, ids, context=context): + for data in self.browse(cr, uid, ids, context=context): for move_id in move_ids: prod_obj.action_produce(cr, uid, move_id, - data['product_qty'], data['mode'], context=context) + data.product_qty, data.mode, context=context) return {} mrp_product_produce() diff --git a/addons/project_scrum/wizard/project_scrum_backlog_create_task.py b/addons/project_scrum/wizard/project_scrum_backlog_create_task.py index afa4f40a5f8..3a13b43ae19 100644 --- a/addons/project_scrum/wizard/project_scrum_backlog_create_task.py +++ b/addons/project_scrum/wizard/project_scrum_backlog_create_task.py @@ -35,6 +35,9 @@ class backlog_create_task(osv.osv_memory): ids_task = [] data = self.read(cr, uid, ids, [], context=context)[0] + if isinstance(data['user_id'], tuple): + data['user_id'] = data['user_id'][0] + backlogs = backlog_id.browse(cr, uid, context['active_ids'], context=context) result = mod_obj._get_id(cr, uid, 'project', 'view_task_search_form') id = mod_obj.read(cr, uid, result, ['res_id']) diff --git a/addons/project_scrum/wizard/project_scrum_backlog_sprint.py b/addons/project_scrum/wizard/project_scrum_backlog_sprint.py index 591e1d5da62..f953f886e5c 100644 --- a/addons/project_scrum/wizard/project_scrum_backlog_sprint.py +++ b/addons/project_scrum/wizard/project_scrum_backlog_sprint.py @@ -42,6 +42,9 @@ class backlog_sprint_assign(osv.osv_memory): if context is None: context = {} data = self.read(cr, uid, ids, [], context=context)[0] + if isinstance(data['sprint_id'], tuple): + data['sprint_id'] = data['sprint_id'][0] + for backlog in backlog_obj.browse(cr, uid, context['active_ids'], context=context): backlog_ids.append(backlog.id) if data['convert_to_task']: diff --git a/addons/purchase_requisition/wizard/purchase_requisition_partner.py b/addons/purchase_requisition/wizard/purchase_requisition_partner.py index 8dba2ab2eae..9ff7a769a72 100644 --- a/addons/purchase_requisition/wizard/purchase_requisition_partner.py +++ b/addons/purchase_requisition/wizard/purchase_requisition_partner.py @@ -67,7 +67,11 @@ class purchase_requisition_partner(osv.osv_memory): context = {} record_ids = context and context.get('active_ids', False) if record_ids: - data = self.read(cr, uid, ids) + data = self.read(cr, uid, ids,context=context) + for m2o_field in ['partner_id','partner_address_id']: + if isinstance(data[0][m2o_field], tuple): + data[0][m2o_field] = data[0][m2o_field][0] + company = self.pool.get('res.users').browse(cr, uid, uid, context).company_id order_obj = self.pool.get('purchase.order') order_line_obj = self.pool.get('purchase.order.line') From 63f66fdec1adee23b4d8e6aa679d8b43de855f96 Mon Sep 17 00:00:00 2001 From: "aag (OpenERP)" Date: Tue, 15 Feb 2011 16:25:09 +0530 Subject: [PATCH 004/132] [IMP] BOARD,STOCK,SURVEY :Improvement in OSV wiz ,Realated Read method bzr revid: aag@tinyerp.co.in-20110215105509-pjve7asi0r63knec --- addons/board/wizard/board_menu_create.py | 6 ++-- addons/stock/i18n/stock.pot | 5 ---- addons/stock/wizard/stock_move.py | 29 ------------------- addons/stock/wizard/stock_move_view.xml | 28 ------------------ addons/stock/wizard/stock_split_move.py | 2 +- addons/survey/wizard/survey_browse_answer.py | 15 +++++----- addons/survey/wizard/survey_print.py | 5 ++-- addons/survey/wizard/survey_print_answer.py | 2 +- .../survey/wizard/survey_print_statistics.py | 2 +- addons/survey/wizard/survey_selection.py | 6 ++-- .../survey/wizard/survey_send_invitation.py | 2 +- 11 files changed, 19 insertions(+), 83 deletions(-) diff --git a/addons/board/wizard/board_menu_create.py b/addons/board/wizard/board_menu_create.py index 10d4d80a7f3..3c46c7e4092 100644 --- a/addons/board/wizard/board_menu_create.py +++ b/addons/board/wizard/board_menu_create.py @@ -70,10 +70,10 @@ class board_menu_create(osv.osv_memory): }) obj_menu = self.pool.get('ir.ui.menu') #start Loop - for data in self.read(cr, uid, ids): + for data in self.browse(cr, uid, ids, context=context): obj_menu.create(cr, uid, { - 'name': data.get('menu_name'), - 'parent_id': data.get('menu_parent_id'), + 'name': data.menu_name, + 'parent_id': data.menu_parent_id.id, 'icon': 'STOCK_SELECT_COLOR', 'action': 'ir.actions.act_window,' + str(action_id) }, context=context) diff --git a/addons/stock/i18n/stock.pot b/addons/stock/i18n/stock.pot index 4af2dea7948..cad8800f31a 100644 --- a/addons/stock/i18n/stock.pot +++ b/addons/stock/i18n/stock.pot @@ -1114,7 +1114,6 @@ msgstr "" #: view:stock.invoice.onshipping:0 #: view:stock.location.product:0 #: view:stock.move:0 -#: view:stock.move.track:0 #: view:stock.picking:0 #: view:stock.split.into:0 msgid "_Cancel" @@ -1693,7 +1692,6 @@ msgid "Search Inventory" msgstr "" #. module: stock -#: field:stock.move.track,quantity:0 msgid "Quantity per lot" msgstr "" @@ -1920,7 +1918,6 @@ msgstr "" #. module: stock #: model:ir.actions.act_window,name:stock.track_line_old -#: view:stock.move.track:0 msgid "Tracking a move" msgstr "" @@ -2461,7 +2458,6 @@ msgid "If checked, products contained in child locations of selected location wi msgstr "" #. module: stock -#: field:stock.move.track,tracking_prefix:0 msgid "Tracking prefix" msgstr "" @@ -2901,7 +2897,6 @@ msgstr "" #: view:stock.move.consume:0 #: view:stock.move.scrap:0 #: view:stock.move.split:0 -#: view:stock.move.track:0 #: view:stock.split.into:0 msgid "Ok" msgstr "" diff --git a/addons/stock/wizard/stock_move.py b/addons/stock/wizard/stock_move.py index d0bbc73863d..875f78d7641 100644 --- a/addons/stock/wizard/stock_move.py +++ b/addons/stock/wizard/stock_move.py @@ -21,35 +21,6 @@ from osv import fields, osv -class stock_move_track(osv.osv_memory): - _name = "stock.move.track" - _description = "Track moves" - - _columns = { - 'tracking_prefix': fields.char('Tracking prefix', size=64), - 'quantity': fields.float("Quantity per lot") - } - - _defaults = { - 'quantity': lambda *x: 1 - } - - def track_lines(self, cr, uid, ids, context=None): - """ To track stock moves lines - @param self: The object pointer. - @param cr: A database cursor - @param uid: ID of the user currently logged in - @param ids: An ID or list of IDs if we want more than one - @param context: A standard dictionary - @return: - """ - datas = self.read(cr, uid, ids)[0] - move_obj = self.pool.get('stock.move') - move_obj._track_lines(cr, uid, context['active_id'], datas, context=context) - return {'type': 'ir.actions.act_window_close'} - -stock_move_track() - class stock_move_consume(osv.osv_memory): _name = "stock.move.consume" _description = "Consume Products" diff --git a/addons/stock/wizard/stock_move_view.xml b/addons/stock/wizard/stock_move_view.xml index baaa581b4f3..7f0048ad219 100644 --- a/addons/stock/wizard/stock_move_view.xml +++ b/addons/stock/wizard/stock_move_view.xml @@ -2,34 +2,6 @@ - - Tracking a move - stock.move.track - form - -
- - - - -