From bffbc99f9a8477552175462ac0f0fcf8cfa323cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Fri, 25 Jul 2008 10:54:39 +0200 Subject: [PATCH] Remove required on analytic_accounts for issue216 Fix integer ids in write/unlink --- purchase.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/purchase.py b/purchase.py index 2a6d8e682c..92f4253532 100644 --- a/purchase.py +++ b/purchase.py @@ -8,7 +8,7 @@ class PurchaseLine(OSV): _name = 'purchase.line' analytic_accounts = fields.Many2One('analytic_account.account.selection', - 'Analytic Accounts', required=True, + 'Analytic Accounts', states={ 'invisible': "type != 'line'", }) @@ -66,10 +66,10 @@ class PurchaseLine(OSV): selection_vals.setdefault('accounts', []) selection_vals['accounts'].append(('add', vals[field])) del vals[field] - if 'analytic_accounts' in vals: + if vals.get('analytic_accounts'): selection_obj.write(cursor, user, vals['analytic_accounts'], selection_vals, context=context) - else: + elif vals.get('type', 'line') == 'line': selection_id = selection_obj.create(cursor, user, selection_vals, context=context) vals['analytic_accounts'] = selection_id @@ -79,6 +79,8 @@ class PurchaseLine(OSV): def write(self, cursor, user, ids, vals, context=None): selection_obj = self.pool.get('analytic_account.account.selection') vals = vals.copy() + if isinstance(ids, (int, long)): + ids = [ids] selection_vals = {} for field in vals.keys(): if field.startswith('analytic_account_'): @@ -109,6 +111,8 @@ class PurchaseLine(OSV): def unlink(self, cursor, user, ids, context=None): selection_obj = self.pool.get('analytic_account.account.selection') + if isinstance(ids, (int, long)): + ids = [ids] selection_ids = [] lines = self.browse(cursor, user, ids, context=context) for line in lines: