diff --git a/account.py b/account.py index 233182e410..4a7b6381c1 100644 --- a/account.py +++ b/account.py @@ -41,19 +41,17 @@ class TypeTemplate(OSV): def default_display_balance(self, cursor, user, context=None): return 'debit-credit' - def name_get(self, cursor, user, ids, context=None): + def get_rec_name(self, cursor, user, ids, name, arg, context=None): if not ids: - return [] - if isinstance(ids, (int, long)): - ids = [ids] - res = [] + return {} + res = {} def _name(type): if type.parent: return _name(type.parent) + '\\' + type.name else: return type.name for type in self.browse(cursor, user, ids, context=context): - res.append((type.id, _name(type))) + res[type.id] = _name(type) return res def _get_type_value(self, cursor, user, template, context=None): @@ -126,8 +124,6 @@ class Type(OSV): name = fields.Char('Name', size=None, required=True, translate=True) parent = fields.Many2One('account.account.type', 'Parent', ondelete="restrict") - complete_name = fields.Function('get_complete_name', type='char', - fnct_search='search_complete_name', string='Name') childs = fields.One2Many('account.account.type', 'parent', 'Childs') sequence = fields.Integer('Sequence', required=True, help='Use to order the account type') @@ -157,21 +153,6 @@ class Type(OSV): def default_display_balance(self, cursor, user, context=None): return 'debit-credit' - def get_complete_name(self, cursor, user, ids, name, arg, context=None): - res = self.name_get(cursor, user, ids, context=context) - return dict(res) - - def search_complete_name(self, cursor, user, name, args, context=None): - args2 = [] - i = 0 - while i < len(args): - names = self.name_search(cursor, user, name=args[i][2], - operator=args[i][1], context=context) - ids = [x[0] for x in names] - args2.append(('id', 'in', ids)) - i += 1 - return args2 - def get_currency_digits(self, cursor, user, ids, name, arg, context=None): res = {} for type in self.browse(cursor, user, ids, context=context): @@ -216,19 +197,17 @@ class Type(OSV): res[type.id] = - res[type.id] return res - def name_get(self, cursor, user, ids, context=None): + def get_rec_name(self, cursor, user, ids, name, arg, context=None): if not ids: - return [] - if isinstance(ids, (int, long)): - ids = [ids] - res = [] + return {} + res = {} def _name(type): if type.parent: return _name(type.parent) + '\\' + type.name else: return type.name for type in self.browse(cursor, user, ids, context=context): - res.append((type.id, _name(type))) + res[type.id] = _name(type) return res def delete(self, cursor, user, ids, context=None): @@ -249,9 +228,6 @@ class AccountTemplate(OSV): name = fields.Char('Name', size=None, required=True, translate=True, select=1) - complete_name = fields.Function('get_complete_name', - fnct_search='search_complete_name', type='char', - string='Code - Name', order_field='code', depends=['name', 'code']) code = fields.Char('Code', size=None, select=1) type = fields.Many2One('account.account.type.template', 'Type', ondelete="restrict", @@ -298,45 +274,30 @@ class AccountTemplate(OSV): def default_deferral(self, cursor, user, context=None): return True - def get_complete_name(self, cursor, user, ids, name, arg, context=None): - res = self.name_get(cursor, user, ids, context=context) - return dict(res) + def get_rec_name(self, cursor, user, ids, name, arg, context=None): + if not ids: + return {} + res = {} + for template in self.browse(cursor, user, ids, context=context): + if template.code: + res[template.id] = template.code + ' - ' + template.name + else: + res[template.id] = template.name + return res - def search_complete_name(self, cursor, user, name, args, context=None): + def search_rec_name(self, cursor, user, name, args, context=None): args2 = [] i = 0 while i < len(args): - names = self.name_search(cursor, user, name=args[i][2], - operator=args[i][1], context=context) - ids = [x[0] for x in names] - args2.append(('id', 'in', ids)) + ids = self.search(cursor, user, [ + ('code', args[i][1], args[i][2]), + ], limit=1, context=context) + if ids: + args2.append(('code', args[i][1], args[i][2])) + else: + args2.append((self._rec_name, args[i][1], args[i][2])) i += 1 - return args2 - - def name_search(self, cursor, user, name='', args=None, operator='ilike', - context=None, limit=None): - if name: - ids = self.search(cursor, user, - [('code', 'like', name + '%')] + (args or []), - limit=limit, context=context) - if not ids: - ids = self.search(cursor, user, - [(self._rec_name, operator, name)] + (args or []), - limit=limit, context=context) - else: - ids = self.search(cursor, user, args, limit=limit, context=context) - res = self.name_get(cursor, user, ids, context=context) - return res - - def name_get(self, cursor, user, ids, context=None): - if not ids: - return [] - if isinstance(ids, (int, long)): - ids = [ids] - return [(r['id'], r['code'] and r['code'] + ' - ' + unicode(r[self._rec_name]) \ - or unicode(r[self._rec_name])) for r in self.read(cursor, user, ids, - [self._rec_name, 'code'], context=context)] - + return args def _get_account_value(self, cursor, user, template, context=None): ''' @@ -460,9 +421,6 @@ class Account(OSV): name = fields.Char('Name', size=None, required=True, translate=True, select=1) - complete_name = fields.Function('get_complete_name', - fnct_search='search_complete_name', type='char', - string='Code - Name', order_field='code') code = fields.Char('Code', size=None, select=1) active = fields.Boolean('Active', select=2) company = fields.Many2One('company.company', 'Company', required=True, @@ -544,8 +502,7 @@ class Account(OSV): if context is None: context = {} if context.get('company'): - return company_obj.name_get(cursor, user, context['company'], - context=context)[0] + return context['company'] return False def default_reconcile(self, cursor, user, context=None): @@ -557,36 +514,11 @@ class Account(OSV): def default_kind(self, cursor, user, context=None): return 'view' - def get_complete_name(self, cursor, user, ids, name, arg, context=None): - res = self.name_get(cursor, user, ids, context=context) - return dict(res) - - def search_complete_name(self, cursor, user, name, args, context=None): - args2 = [] - i = 0 - while i < len(args): - names = self.name_search(cursor, user, name=args[i][2], - operator=args[i][1], context=context) - ids = [x[0] for x in names] - args2.append(('id', 'in', ids)) - i += 1 - return args2 - def get_currency(self, cursor, user, ids, name, arg, context=None): currency_obj = self.pool.get('currency.currency') res = {} for account in self.browse(cursor, user, ids, context=context): res[account.id] = account.company.currency.id - currency_names = {} - for currency_id, currency_name in currency_obj.name_get(cursor, user, - [x for x in res.values() if x], context=context): - currency_names[currency_id] = currency_name - - for i in res.keys(): - if res[i] and res[i] in currency_names: - res[i] = (res[i], currency_names[res[i]]) - else: - res[i] = False return res def get_currency_digits(self, cursor, user, ids, name, arg, context=None): @@ -809,29 +741,30 @@ class Account(OSV): currency, res[name][account_id]) return res - def name_search(self, cursor, user, name='', args=None, operator='ilike', - context=None, limit=None): - if name: - ids = self.search(cursor, user, - [('code', 'like', name + '%')] + (args or []), - limit=limit, context=context) - if not ids: - ids = self.search(cursor, user, - [(self._rec_name, operator, name)] + (args or []), - limit=limit, context=context) - else: - ids = self.search(cursor, user, args, limit=limit, context=context) - res = self.name_get(cursor, user, ids, context=context) + def get_rec_name(self, cursor, user, ids, name, arg, context=None): + if not ids: + return {} + res = {} + for account in self.browse(cursor, user, ids, context=context): + if account.code: + res[account.id] = account.code + ' - ' + account.name + else: + res[account.id] = account.name return res - def name_get(self, cursor, user, ids, context=None): - if not ids: - return [] - if isinstance(ids, (int, long)): - ids = [ids] - return [(r['id'], r['code'] and r['code'] + ' - ' + unicode(r[self._rec_name]) \ - or unicode(r[self._rec_name])) for r in self.read(cursor, user, ids, - [self._rec_name, 'code'], context=context)] + def search_rec_name(self, cursor, user, name, args, context=None): + args2 = [] + i = 0 + while i < len(args): + ids = self.search(cursor, user, [ + ('code', args[i][1], args[i][2]), + ], limit=1, context=context) + if not ids: + args2.append(('code', args[i][1], args[i][2])) + else: + args2.append((self._rec_name, args[i][1], args[i][2])) + i += 1 + return args2 def copy(self, cursor, user, ids, default=None, context=None): res = super(Account, self).copy(cursor, user, ids, default=default, @@ -907,26 +840,27 @@ class AccountDeferral(OSV): res[deferral.id] = deferral.account.currency_digits return res - def name_get(self, cursor, user, ids, context=None): + def get_rec_name(self, cursor, user, ids, name, arg, context=None): if not ids: - return [] - if isinstance(ids, (int, long)): - ids = [ids] - return [(r.id, r.account.name + ' - ' + r.fiscalyear.name) for r in - self.browse(cursor, user, ids, context=context)] - - def name_search(self, cursor, user, name='', args=None, operator='ilike', - context=None, limit=None): - if args is None: - args = [] - args = args[:] - if name: - args = ['AND', args, ['OR', ('account.name', operator, name), - ('fiscalyear.name', operator, name)]] - ids = self.search(cursor, user, args, limit=limit, context=context) - res = self.name_get(cursor, user, ids, context=context) + return {} + res = {} + for deferral in self.browse(cursor, user, ids, context=context): + res[deferral.id] = deferral.account.rec_name + ' - ' + \ + deferral.fiscalyear.rec_name return res + def search_rec_name(self, cursor, user, name, args, context=None): + args2 = [] + i = 0 + while i < len(args): + ids = self.search(cursor, user, ['OR', + ('account.rec_name', args[i][1], args[i][2]), + ('fiscalyear.rec_name', args[i][1], args[i][2]), + ], context=context) + args2.append(('id', 'in', ids)) + i += 1 + return args + def write(self, cursor, user, ids, vals, context=None): self.raise_user_error(cursor, 'write_deferral', context=context) @@ -1015,8 +949,7 @@ class PrintGeneralLegderInit(WizardOSV): fiscalyear_id = fiscalyear_obj.find(cursor, user, context.get('company', False), exception=False, context=context) if fiscalyear_id: - return fiscalyear_obj.name_get(cursor, user, fiscalyear_id, - context=context)[0] + return fiscalyear_id return False def default_company(self, cursor, user, context=None): @@ -1024,8 +957,7 @@ class PrintGeneralLegderInit(WizardOSV): context = {} company_obj = self.pool.get('company.company') if context.get('company'): - return company_obj.name_get(cursor, user, context['company'], - context=context)[0] + return context['company'] return False def default_posted(self, cursor, user, context=None): @@ -1229,8 +1161,7 @@ class PrintTrialBalanceInit(WizardOSV): fiscalyear_id = fiscalyear_obj.find(cursor, user, context.get('company', False), exception=False, context=context) if fiscalyear_id: - return fiscalyear_obj.name_get(cursor, user, fiscalyear_id, - context=context)[0] + return fiscalyear_id return False def default_company(self, cursor, user, context=None): @@ -1238,8 +1169,7 @@ class PrintTrialBalanceInit(WizardOSV): context = {} company_obj = self.pool.get('company.company') if context.get('company'): - return company_obj.name_get(cursor, user, context['company'], - context=context)[0] + return context['company'] return False def default_posted(self, cursor, user, context=None): @@ -1386,8 +1316,7 @@ class OpenBalanceSheetInit(WizardOSV): context = {} company_obj = self.pool.get('company.company') if context.get('company'): - return company_obj.name_get(cursor, user, context['company'], - context=context)[0] + return context['company'] return False def default_posted(self, cursor, user, context=None): @@ -1484,8 +1413,7 @@ class OpenIncomeStatementInit(WizardOSV): fiscalyear_id = fiscalyear_obj.find(cursor, user, context.get('company', False), exception=False, context=context) if fiscalyear_id: - return fiscalyear_obj.name_get(cursor, user, fiscalyear_id, - context=context)[0] + return fiscalyear_id return False def default_company(self, cursor, user, context=None): @@ -1493,8 +1421,7 @@ class OpenIncomeStatementInit(WizardOSV): context = {} company_obj = self.pool.get('company.company') if context.get('company'): - return company_obj.name_get(cursor, user, context['company'], - context=context)[0] + return context['company'] return False def default_posted(self, cursor, user, context=None): @@ -1776,8 +1703,7 @@ class OpenThirdPartyBalanceInit(WizardOSV): fiscalyear_id = fiscalyear_obj.find(cursor, user, context.get('company', False), exception=False, context=context) if fiscalyear_id: - return fiscalyear_obj.name_get(cursor, user, fiscalyear_id, - context=context)[0] + return fiscalyear_id return False def default_posted(self, cursor, user, context=None): @@ -1788,8 +1714,7 @@ class OpenThirdPartyBalanceInit(WizardOSV): context = {} company_obj = self.pool.get('company.company') if context.get('company'): - return company_obj.name_get(cursor, user, context['company'], - context=context)[0] + return context['company'] return False OpenThirdPartyBalanceInit() @@ -1861,10 +1786,12 @@ class ThirdPartyBalance(Report): context=context))) res = cursor.fetchall() - party_name = dict(party_obj.name_get(cursor, user, [x[0] for x in res], - context=context)) + id2party = {} + for party in party_obj.browse(cursor, user, [x[0] for x in res], + context=context): + id2party[party.id] = party objects = [{ - 'name': party_name[x[0]], + 'name': id2party[x[0]].rec_name, 'debit': x[1], 'credit': x[2], 'solde': x[1] - x[2], @@ -1904,8 +1831,7 @@ class OpenAgedBalanceInit(WizardOSV): fiscalyear_id = fiscalyear_obj.find(cursor, user, context.get('company', False), exception=False, context=context) if fiscalyear_id: - return fiscalyear_obj.name_get(cursor, user, fiscalyear_id, - context=context)[0] + return fiscalyear_id return False def default_balance_type(self, cursor, user, context=None): @@ -1931,8 +1857,7 @@ class OpenAgedBalanceInit(WizardOSV): context = {} company_obj = self.pool.get('company.company') if context.get('company'): - return company_obj.name_get(cursor, user, context['company'], - context=context)[0] + return context['company'] return False OpenAgedBalanceInit() @@ -2045,9 +1970,10 @@ class AgedBalance(Report): else: res[party] = [(i[0] == position) and solde \ or Decimal("0.0") for i in enumerate(terms)] - parties = party_obj.name_get(cursor, user, [k for k in res.iterkeys()], - context=context) - parties.sort(lambda x, y: cmp(x[1], y[1])) + party_ids = party_obj.search(cursor, user, [ + ('id', 'in', [k for k in res.iterkeys()]), + ], context=context) + parties = party_obj.browse(cursor, user, party_ids, context=context) context['main_title'] = datas['form']['balance_type'] context['unit'] = datas['form']['unit'] @@ -2057,10 +1983,10 @@ class AgedBalance(Report): context['company'] = company context['parties']= [{ - 'name': p[1], - 'amount0': res[p[0]][0], - 'amount1': res[p[0]][1], - 'amount2': res[p[0]][2], + 'name': p.rec_name, + 'amount0': res[p.id][0], + 'amount1': res[p.id][1], + 'amount2': res[p.id][2], } for p in parties] return super(AgedBalance, self).parse(cursor, user, report, objects, diff --git a/account.xml b/account.xml index 3052ebf985..4deef7d04f 100644 --- a/account.xml +++ b/account.xml @@ -219,7 +219,7 @@ this repository contains the full copyright notices and license terms. --> - + ]]> @@ -304,7 +304,7 @@ this repository contains the full copyright notices and license terms. --> - + ]]> @@ -524,7 +524,7 @@ this repository contains the full copyright notices and license terms. --> - + diff --git a/fiscalyear.py b/fiscalyear.py index 1d8036a943..a22f7cf46e 100644 --- a/fiscalyear.py +++ b/fiscalyear.py @@ -74,8 +74,7 @@ class FiscalYear(OSV): if context is None: context = {} if context.get('company'): - return company_obj.name_get(cursor, user, context['company'], - context=context)[0] + return context['company'] return False def check_dates(self, cursor, user, ids): @@ -202,7 +201,6 @@ class FiscalYear(OSV): :param context: the context ''' currency_obj = self.pool.get('currency.currency') - account_obj = self.pool.get('account.account') deferral_obj = self.pool.get('account.account.deferral') if account.kind == 'view': @@ -210,10 +208,8 @@ class FiscalYear(OSV): if not account.deferral: if not currency_obj.is_zero(cursor, user, fiscalyear.company.currency, account.balance): - _, account_name = account_obj.name_get(cursor, user, account.id, - context=context)[0] self.raise_user_error(cursor, 'account_balance_not_zero', - error_args=(account_name,), context=context) + error_args=(account.rec_name,), context=context) else: deferral_obj.create(cursor, user, { 'account': account.id, diff --git a/journal.py b/journal.py index 8d1c5cb443..7dcd397a8e 100644 --- a/journal.py +++ b/journal.py @@ -142,20 +142,19 @@ class Journal(OSV): types = type_obj.browse(cursor, user, type_ids, context=context) return [(x.code, x.name) for x in types] - def name_search(self, cursor, user, name='', args=None, operator='ilike', - context=None, limit=None): - if name: - ids = self.search(cursor, user, - [('code', 'like', name + '%')] + args, - limit=limit, context=context) - if not ids: - ids = self.search(cursor, user, - [(self._rec_name, operator, name)] + args, - limit=limit, context=context) - else: - ids = self.search(cursor, user, args, limit=limit, context=context) - res = self.name_get(cursor, user, ids, context=context) - return res + def search_rec_name(self, cursor, user, name, args, context=None): + args2 = [] + i = 0 + while i < len(args): + ids = self.search(cursor, user, [ + ('code', args[i][1], args[i][2]), + ], limit=1, context=context) + if ids: + args2.append(('code', args[i][1], args[i][2])) + else: + args2.append((self._rec_name, args[i][1], args[i][2])) + i += 1 + return args2 Journal() diff --git a/move.py b/move.py index 295cc7dc79..c222e5ad19 100644 --- a/move.py +++ b/move.py @@ -122,19 +122,17 @@ class Move(OSV): return False return True - def name_search(self, cursor, user, name='', args=None, operator='ilike', - context=None, limit=None): - if args is None: - args = [] - if name: - args2 = args[:] - args2 += [('reference', operator, name)] - ids = self.search(cursor, user, args2, limit=limit, - context=context) - res = self.name_get(cursor, user, ids, context=context) - res += super(Move, self).name_search(cursor, user, name=name, - args=args, operator=operator, context=context, limit=limit) - return res + def search_rec_name(self, cursor, user, name, args, context=None): + args2 = [] + i = 0 + while i < len(args): + ids = self.search(cursor, user, ['OR', + ('reference', args[i][1], args[i][2]), + (self._rec_name, args[i][1], args[i][2]), + ], context=context) + args2.append(('id', 'in', ids)) + i += 1 + return args2 def write(self, cursor, user, ids, vals, context=None): res = super(Move, self).write(cursor, user, ids, vals, context=context) @@ -660,14 +658,16 @@ class Line(OSV): values['credit'] = line_amount < Decimal('0.0') \ and - line_amount or Decimal('0.0') if 'account' in fields: - values['account'] = account_obj.name_get(cursor, user, - account_id, context=context)[0] + values['account'] = account_id + values['account.rec_name'] = account_obj.browse(cursor, + user, account_id, context=context).rec_name if 'tax_lines' in fields and code_id: values['tax_lines'] = [ { 'amount': tax_amount, - 'code': tax_code_obj.name_get(cursor, user, - code_id, context=context)[0], + 'code': code_id, + 'code.rec_name': tax_code_obj.browse(cursor, + user, code_id, context=context).rec_name, }, ] return values @@ -797,8 +797,9 @@ class Line(OSV): continue res.setdefault('add', []).append({ 'amount': base_amounts[code_id], - 'code': tax_code_obj.name_get(cursor, user, - code_id, context=context)[0], + 'code': code_id, + 'code': tax_code_obj.browse(cursor, user, + code_id, context=context).rec_name, }) return res @@ -834,8 +835,8 @@ class Line(OSV): res['credit'] = Decimal('0.0') res['debit'] = - currency_obj.round(cursor, user, party.account_receivable.currency, amount) - res['account'] = account_obj.name_get(cursor, user, - party.account_receivable.id, context=context)[0] + res['account'] = party.account_receivable.id + res['account.rec_name'] = party.account_receivable.rec_name else: cursor.execute(query, (party.id, party.account_payable.id)) amount = cursor.fetchone()[0] @@ -849,35 +850,41 @@ class Line(OSV): res['credit'] = Decimal('0.0') res['debit'] = - currency_obj.round(cursor, user, party.account_payable.currency, amount) - res['account'] = account_obj.name_get(cursor, user, - party.account_payable.id, context=context)[0] + res['account'] = party.account_payable.id + res['account.rec_name'] = party.account_payable.rec_name if party and vals.get('debit'): if vals['debit'] > Decimal('0.0'): - res.setdefault('account', account_obj.name_get(cursor, user, - party.account_receivable.id, context=context)[0]) + if 'account' not in res: + res['account'] = party.account_receivable.id + res['account.rec_name'] = party.account_receivable.rec_name else: - res.setdefault('account', account_obj.name_get(cursor, user, - party.account_payable.id, context=context)[0]) + if 'account' not in res: + res['account'] = party.account_payable.id + res['account.rec_name'] = party.account_payable.id if party and vals.get('credit'): if vals['credit'] > Decimal('0.0'): - res.setdefault('account', account_obj.name_get(cursor, user, - party.account_payable.id, context=context)[0]) + if 'account' not in res: + res['account'] = party.account_payable.id + res['account.rec_name'] = party.account_payable.rec_name else: - res.setdefault('account', account_obj.name_get(cursor, user, - party.account_receivable.id, context=context)[0]) + if 'account' not in res: + res['account'] = party.account_receivable.id + res['account.rec_name'] = party.account_receivable.rec_name journal_id = vals.get('journal') or context.get('journal') if journal_id and party: journal = journal_obj.browse(cursor, user, journal_id, context=context) if journal.type == 'revenue': - res.setdefault('account', account_obj.name_get(cursor, user, - party.account_receivable.id, context=context)[0]) + if 'account' not in res: + res['account'] = party.account_receivable.id + res['account.rec_name'] = party.account_receivable.rec_name elif journal.type == 'expense': - res.setdefault('account', account_obj.name_get(cursor, user, - party.account_payable.id, context=context)[0]) + if 'account' not in res: + res['account'] = party.account_payable.id + res['account.rec_name'] = party.account_payable.rec_name return res def get_move_field(self, cursor, user, ids, name, arg, context=None): @@ -891,19 +898,6 @@ class Line(OSV): res[line.id] = line.move[name] else: res[line.id] = line.move[name].id - if name in ('date', 'state'): - return res - obj = self.pool.get('account.' + name) - obj_names = {} - for obj_id, obj_name in obj.name_get(cursor, user, - [x for x in res.values() if x], context=context): - obj_names[obj_id] = obj_name - - for i in res.keys(): - if res[i] and res[i] in obj_names: - res[i] = (res[i], obj_names[res[i]]) - else: - res[i] = False return res def set_move_field(self, cursor, user, id, name, value, arg, context=None): @@ -1693,8 +1687,7 @@ class PrintGeneralJournalInit(WizardOSV): context = {} company_obj = self.pool.get('company.company') if context.get('company'): - return company_obj.name_get(cursor, user, context['company'], - context=context)[0] + return context['company'] return False def default_posted(self, cursor, user, context=None): diff --git a/tax.py b/tax.py index 42067c2e42..b74fc6d2d7 100644 --- a/tax.py +++ b/tax.py @@ -147,8 +147,7 @@ class Code(OSV): if context is None: context = {} if context.get('company'): - return company_obj.name_get(cursor, user, context['company'], - context=context)[0] + return context['company'] return False def on_change_with_currency_digits(self, cursor, user, ids, vals, @@ -204,30 +203,29 @@ class Code(OSV): code.company.currency, res[code.id]) return res - def name_search(self, cursor, user, name='', args=None, operator='ilike', - context=None, limit=None): - if name: - ids = self.search(cursor, user, - [('code', 'like', name + '%')] + args, - limit=limit, context=context) - if not ids: - ids = self.search(cursor, user, - [(self._rec_name, operator, name)] + args, - limit=limit, context=context) - else: - ids = self.search(cursor, user, args, limit=limit, context=context) - res = self.name_get(cursor, user, ids, context=context) + def get_rec_name(self, cursor, user, ids, name, arg, context=None): + if not ids: + return {} + res = {} + for code in self.browse(cursor, user, ids, context=context): + if code.code: + res[code.id] = code.code + ' - ' + code.name + else: + res[code.id] = code.name return res - def name_get(self, cursor, user, ids, context=None): - if not ids: - return [] - if isinstance(ids, (int, long)): - ids = [ids] - return [(r['id'], r['code'] and r['code'] + ' - ' + \ - unicode(r[self._rec_name]) or unicode(r[self._rec_name])) - for r in self.read(cursor, user, ids, - [self._rec_name, 'code'], context=context)] + def search_rec_name(self, cursor, user, name, args, context=None): + args2 = [] + i = 0 + while i < len(args): + ids = self.search(cursor, user, [('code', args[i][1], args[i][2])], + context=context) + if ids: + args2.append(('code', args[i][1], args[i][2])) + else: + args2.append(('name', args[i][1], args[i][2])) + i += 1 + return args2 def delete(self, cursor, user, ids, context=None): if isinstance(ids, (int, long)): @@ -358,8 +356,7 @@ class TaxTemplate(OSV): group_ids = group_obj.search(cursor, user, [ ('code', '=', 'none'), ], limit=1, context=context) - return group_obj.name_get(cursor, user, group_ids[0], - context=context)[0] + return group_ids[0] def default_type(self, cursor, user, context=None): return 'percentage' @@ -587,8 +584,7 @@ class Tax(OSV): group_ids = group_obj.search(cursor, user, [ ('code', '=', 'none'), ], limit=1, context=context) - return group_obj.name_get(cursor, user, group_ids[0], - context=context)[0] + return group_ids[0] def default_type(self, cursor, user, context=None): return 'percentage' @@ -613,8 +609,7 @@ class Tax(OSV): if context is None: context = {} if context.get('company'): - return company_obj.name_get(cursor, user, context['company'], - context=context)[0] + return context['company'] return False def _process_tax(self, cursor, user, tax, price_unit, context=None):