('required', field.required)]
return res
- def _prepare_name_get(self, cr, uid, bank_type_obj, bank_obj, context=None):
+ def _prepare_name_get(self, cr, uid, bank_dicts, context=None):
+ """ Format the name of a res.partner.bank.
+ This function is designed to be inherited to add replacement fields.
+ :param bank_dicts: a list of res.partner.bank dicts, as returned by the method read()
+ :return: [(id, name), ...], as returned by the method name_get()
"""
- Format the name of a res.partner.bank.
- This function is designed to be inherited to add replacement fields.
- :param browse_record bank_type_obj: res.partner.bank.type object
- :param browse_record bank_obj: res.partner.bank object
- :rtype: str
- :return: formatted name of a res.partner.bank record
- """
- return bank_type_obj.format_layout % bank_obj._data[bank_obj.id]
+ # prepare a mapping {code: format_layout} for all bank types
+ bank_type_obj = self.pool.get('res.partner.bank.type')
+ bank_types = bank_type_obj.browse(cr, uid, bank_type_obj.search(cr, uid, []), context=context)
+ bank_code_format = dict((bt.code, bt.format_layout) for bt in bank_types)
+
+ res = []
+ for data in bank_dicts:
+ name = data['acc_number']
+ if data['state'] and bank_code_format.get(data['state']):
+ try:
+ if not data.get('bank_name'):
+ data['bank_name'] = _('BANK')
+ name = bank_code_format[data['state']] % data
+ except Exception:
+ raise osv.except_osv(_("Formating Error"), _("Invalid Bank Account Type Name format."))
+ res.append((data['id'], name))
+ return res
def name_get(self, cr, uid, ids, context=None):
if not len(ids):
return []
- bank_type_obj = self.pool.get('res.partner.bank.type')
- res = []
- for val in self.browse(cr, uid, ids, context=context):
- result = val.acc_number
- if val.state:
- type_ids = bank_type_obj.search(cr, uid, [('code','=',val.state)])
- if type_ids:
- t = bank_type_obj.browse(cr, uid, type_ids[0], context=context)
- try:
- # avoid the default format_layout to result in "False: ..."
- if not val._data[val.id]['bank_name']:
- val._data[val.id]['bank_name'] = _('BANK')
- result = self._prepare_name_get(cr, uid, t, val, context=context)
- except Exception:
- raise osv.except_osv(_("Formating Error"), _("Invalid Bank Account Type Name format."))
- res.append((val.id, result))
- return res
+ bank_dicts = self.read(cr, uid, ids, context=context)
+ return self._prepare_name_get(cr, uid, bank_dicts, context=context)
def onchange_company_id(self, cr, uid, ids, company_id, context=None):
result = {}