[MERGE] base: raise an exception if the format of the bank account is wrong
[odoo/odoo.git] / openerp / addons / base / res / res_bank.py
index 7f6c11a..3bfbd82 100644 (file)
@@ -35,7 +35,7 @@ class Bank(osv.osv):
         'state': fields.many2one("res.country.state", 'Fed. State',
             domain="[('country_id', '=', country)]"),
         'country': fields.many2one('res.country', 'Country'),
-        'email': fields.char('E-Mail', size=64),
+        'email': fields.char('Email', size=64),
         'phone': fields.char('Phone', size=64),
         'fax': fields.char('Fax', size=64),
         'active': fields.boolean('Active'),
@@ -61,7 +61,7 @@ class res_partner_bank_type(osv.osv):
     _columns = {
         'name': fields.char('Name', size=64, required=True, translate=True),
         'code': fields.char('Code', size=64, required=True),
-        'field_ids': fields.one2many('res.partner.bank.type.field', 'bank_type_id', 'Type fields'),
+        'field_ids': fields.one2many('res.partner.bank.type.field', 'bank_type_id', 'Type Fields'),
         'format_layout': fields.text('Format Layout', translate=True)
     }
     _defaults = {
@@ -108,7 +108,8 @@ class res_partner_bank(osv.osv):
             value = ''
         if not context.get('address'):
             return value
-        for address in self.pool.get('res.partner').resolve_o2m_commands_to_record_dicts(
+
+        for address in self.pool.get('res.partner').resolve_2many_commands(
             cursor, user, 'address', context['address'], ['type', field], context=context):
 
             if address.get('type') == 'default':
@@ -171,6 +172,17 @@ class res_partner_bank(osv.osv):
                             ('required', field.required)]
         return res
 
+    def _prepare_name_get(self, cr, uid, bank_type_obj, bank_obj, context=None):
+        """
+        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]
+
     def name_get(self, cr, uid, ids, context=None):
         if not len(ids):
             return []
@@ -186,10 +198,9 @@ class res_partner_bank(osv.osv):
                         # 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 = t.format_layout % val._data[val.id]
-                    except:
-                        result += ' [Formatting Error]'
-                        raise
+                        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
 
@@ -218,11 +229,11 @@ class res_partner_bank(osv.osv):
         if partner_id:
             part = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context)
             result['owner_name'] = part.name
-            result['street'] = part and part.street or False
-            result['city'] = part and part.city or False
-            result['zip'] =  part and part.zip or False
-            result['country_id'] =  part and part.country_id and part.country_id.id or False
-            result['state_id'] = part and part.state_id and part.state_id.id or False
+            result['street'] = part.street or False
+            result['city'] = part.city or False
+            result['zip'] =  part.zip or False
+            result['country_id'] =  part.country_id.id
+            result['state_id'] = part.state_id.id
         return {'value': result}
 
 res_partner_bank()