Improve partner bank account creation
authorced <>
Wed, 10 Oct 2007 05:44:53 +0000 (05:44 +0000)
committerced <>
Wed, 10 Oct 2007 05:44:53 +0000 (05:44 +0000)
bzr revid: ced-148b2aa2f4858e096f157973689a6cf7ed7add64

bin/addons/base/res/partner/partner.py
bin/addons/base/res/partner/partner_view.xml

index cccc758..149f458 100644 (file)
@@ -346,6 +346,7 @@ class res_partner_bank(osv.osv):
        _name = "res.partner.bank"
        _rec_name = "state"
        _description = __doc__
+       _order = 'sequence'
 
        def _bank_type_get(self, cr, uid, context=None):
                bank_type_obj = self.pool.get('res.partner.bank.type')
@@ -357,6 +358,17 @@ class res_partner_bank(osv.osv):
                        result.append((bank_type.code, bank_type.name))
                return result
 
+       def _default_value(self, cursor, user, field, context=None):
+               if not context.get('address', False):
+                       return
+               value = ''
+               for ham, spam, address in context['address']:
+                       if address['type'] == 'default':
+                               return address[field]
+                       elif not address['type']:
+                               value = address[field]
+               return value
+
        _columns = {
                'name': fields.char('Description', size=128),
                'acc_number': fields.char('Account number', size=64, required=False),
@@ -373,6 +385,23 @@ class res_partner_bank(osv.osv):
                        ondelete='cascade', select=True),
                'state': fields.selection(_bank_type_get, 'Bank type', required=True,
                        change_default=True),
+               'sequence': fields.integer('Sequence'),
+               'state_id': fields.many2one('res.country.state', 'State',
+                       domain="[('country_id', '=', country_id)]"),
+       }
+       _defaults = {
+               'owner_name': lambda obj, cursor, user, context: obj._default_value(
+                       cursor, user, 'name', context=context),
+               'street': lambda obj, cursor, user, context: obj._default_value(
+                       cursor, user, 'street', context=context),
+               'city': lambda obj, cursor, user, context: obj._default_value(
+                       cursor, user, 'city', context=context),
+               'zip': lambda obj, cursor, user, context: obj._default_value(
+                       cursor, user, 'zip', context=context),
+               'country_id': lambda obj, cursor, user, context: obj._default_value(
+                       cursor, user, 'country_id', context=context),
+               'state_id': lambda obj, cursor, user, context: obj._default_value(
+                       cursor, user, 'state_id', context=context),
        }
 
        def fields_get(self, cr, uid, fields=None, context=None):
index 1c67ac6..7540022 100644 (file)
                                        <field name="parent_id"/>
                                        <field name="website" widget="url"/>
                                        <field name="date" select="2"/>
-                                       <field name="bank_ids" colspan="4" nolabel="1">
+                                       <field name="bank_ids" colspan="4" nolabel="1"
+                                               context="address=address">
                                                <form string="Bank account">
                                                        <field name="state" select="2"/>
-                                                       <field name="name" select="2"/>
                                                        <newline/>
                                                        <field name="acc_number" select="1"/>
                                                        <newline/>
                                                        <field name="bank"/>
                                                        <newline/>
+                                                       <field name="sequence"/>
+                                                       <field name="name" select="2" colspan="4"/>
                                                        <separator string="Bank account owner" colspan="4"/>
                                                        <field name="owner_name" colspan="4"/>
                                                        <field name="street" colspan="4"/>
                                <newline/>
                                <field name="bank"/>
                                <newline/>
+                               <field name="sequence"/>
+                               <field name="name" colspan="4"/>
                                <separator string="Bank account owner" colspan="4"/>
                                <field name="owner_name" colspan="4" select="2"/>
                                <field name="street" colspan="4"/>
                                <field name="city"/>
                                <field name="zip"/>
                                <field name="country_id" select="2" completion="1"/>
+                               <field name="state_id" select="2"/>
                        </form>
                </field>
        </record>