From: ced <> Date: Thu, 4 Oct 2007 05:59:30 +0000 (+0000) Subject: Better bank naming X-Git-Tag: 5.0.0-alpha-addons~1501 X-Git-Url: http://git.inspyration.org/?a=commitdiff_plain;h=a2a261265c4b71fcabe0509ee594a7acb6918f45;p=odoo%2Fodoo.git Better bank naming bzr revid: ced-c414ee0bbf628106273e728d10bcd3fef7ceed3b --- diff --git a/bin/addons/base/res/partner/partner.py b/bin/addons/base/res/partner/partner.py index c45d7ad..eee5ea5 100644 --- a/bin/addons/base/res/partner/partner.py +++ b/bin/addons/base/res/partner/partner.py @@ -345,12 +345,15 @@ class res_partner_bank(osv.osv): _description='Bank Details' _name = "res.partner.bank" _rec_name = "state" + def _bank_type_get(self, cr, uid, *args): + bank_type_obj = self.pool.get('res.partner.bank.type') + result = [] - type_ids = self.pool.get('res.partner.bank.type').search(cr, uid, []) - res = self.pool.get('res.partner.bank.type').read(cr, uid, type_ids, ['code','name']) - for r in res: - result.append((r['code'], r['name'])) + type_ids = bank_type_obj.search(cr, uid, []) + bank_types = bank_type_obj.browse(cr, uid, type_ids) + for bank_type in bank_types: + result.append((bank_type.code, bank_type.name)) return result _columns = { @@ -361,27 +364,43 @@ class res_partner_bank(osv.osv): 'street': fields.char('Street', size=128), 'zip': fields.char('Zip', change_default=True, size=24), 'city': fields.char('City', size=128), - 'country_id': fields.many2one('res.country', 'Country', change_default=True), - 'state_id': fields.many2one("res.country.state", 'State', change_default=True, domain="[('country_id','=',country_id)]"), - 'partner_id': fields.many2one('res.partner', 'Partner', required=True, ondelete='cascade', select=True), - 'state': fields.selection(_bank_type_get, 'Bank type', required=True, change_default=True), + 'country_id': fields.many2one('res.country', 'Country', + change_default=True), + 'state_id': fields.many2one("res.country.state", 'State', + change_default=True, domain="[('country_id','=',country_id)]"), + 'partner_id': fields.many2one('res.partner', 'Partner', required=True, + ondelete='cascade', select=True), + 'state': fields.selection(_bank_type_get, 'Bank type', required=True, + change_default=True), } + def fields_get(self, cr, uid, fields=None, context=None): res = super(res_partner_bank, self).fields_get(cr, uid, fields, context) - type_ids = self.pool.get('res.partner.bank.type').search(cr, uid, []) - types = self.pool.get('res.partner.bank.type').browse(cr, uid, type_ids) - for t in types: - for f in t.field_ids: - if f.name in res: - res[f.name].setdefault('states',{}) - res[f.name]['states'][t.code] = [('readonly',f.readonly),('required',f.required)] + bank_type_obj = self.pool.get('res.partner.bank.type') + type_ids = bank_type_obj.search(cr, uid, []) + types = bank_type_obj.browse(cr, uid, type_ids) + for type in types: + for field in type.field_ids: + if field.name in res: + res[field.name].setdefault('states', {}) + res[field.name]['states'][type.code] = [ + ('readonly', field.readonly), + ('required', field.required)] return res - def name_get(self, cr, uid, ids, context={}): + def name_get(self, cr, uid, ids, context=None): if not len(ids): return [] - return [(r['id'], (r[self._rec_name] or '') + (r['owner_name'] and \ - (' ' + r['owner_name']) or '')) for r in self.read(cr, uid, ids, + bank_type_obj = self.pool.get('res.partner.bank.type') + + type_ids = bank_type_obj.search(cr, uid, []) + bank_type_names = {} + for bank_type in bank_type_obj.browse(cr, uid, type_ids, + context=context): + bank_type_names[bank_type.code] = bank_type.name + + return [(r['id'], (bank_type_names[r['state']] or '') + (r['owner_name'] and \ + (': ' + r['owner_name']) or '')) for r in self.read(cr, uid, ids, [self._rec_name, 'owner_name'], context, load='_classic_write')]