[MERGE] remove res.partner.address by chs
it also removes an ugly hack in the orm. bzr revid: al@openerp.com-20121215182836-y15v2mwgdg9wyubi
This commit is contained in:
commit
0a35f78974
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
# OpenERP, Open Source Management Solution
|
# OpenERP, Open Source Management Solution
|
||||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||||
# Copyright (C) 2010 OpenERP s.a. (<http://openerp.com>).
|
# Copyright (C) 2010, 2012 OpenERP s.a. (<http://openerp.com>).
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
@ -85,7 +85,6 @@ The kernel of OpenERP, needed for all installation.
|
||||||
'res/ir_property_view.xml',
|
'res/ir_property_view.xml',
|
||||||
'security/base_security.xml',
|
'security/base_security.xml',
|
||||||
'security/ir.model.access.csv',
|
'security/ir.model.access.csv',
|
||||||
'security/ir.model.access-1.csv', # res.partner.address is deprecated; it is still there for backward compability only and will be removed in next version
|
|
||||||
],
|
],
|
||||||
'demo': [
|
'demo': [
|
||||||
'base_demo.xml',
|
'base_demo.xml',
|
||||||
|
|
|
@ -208,10 +208,6 @@ class res_partner(osv.osv, format_address):
|
||||||
'bank_ids': fields.one2many('res.partner.bank', 'partner_id', 'Banks'),
|
'bank_ids': fields.one2many('res.partner.bank', 'partner_id', 'Banks'),
|
||||||
'website': fields.char('Website', size=64, help="Website of Partner or Company"),
|
'website': fields.char('Website', size=64, help="Website of Partner or Company"),
|
||||||
'comment': fields.text('Notes'),
|
'comment': fields.text('Notes'),
|
||||||
'address': fields.one2many('res.partner.address', 'partner_id', 'Addresses',
|
|
||||||
deprecated="The address information is now directly stored on each Partner record. "\
|
|
||||||
"Multiple contacts with their own address can be added via the child_ids relationship. "\
|
|
||||||
"This field will be removed as of OpenERP 7.1."),
|
|
||||||
'category_id': fields.many2many('res.partner.category', id1='partner_id', id2='category_id', string='Tags'),
|
'category_id': fields.many2many('res.partner.category', id1='partner_id', id2='category_id', string='Tags'),
|
||||||
'credit_limit': fields.float(string='Credit Limit'),
|
'credit_limit': fields.float(string='Credit Limit'),
|
||||||
'ean13': fields.char('EAN13', size=13),
|
'ean13': fields.char('EAN13', size=13),
|
||||||
|
@ -538,7 +534,7 @@ class res_partner(osv.osv, format_address):
|
||||||
The purpose of this function is to build and return an address formatted accordingly to the
|
The purpose of this function is to build and return an address formatted accordingly to the
|
||||||
standards of the country where it belongs.
|
standards of the country where it belongs.
|
||||||
|
|
||||||
:param address: browse record of the res.partner.address to format
|
:param address: browse record of the res.partner to format
|
||||||
:returns: the address formatted in a display that fit its country habits (or the default ones
|
:returns: the address formatted in a display that fit its country habits (or the default ones
|
||||||
if not country is specified)
|
if not country is specified)
|
||||||
:rtype: string
|
:rtype: string
|
||||||
|
@ -564,55 +560,4 @@ class res_partner(osv.osv, format_address):
|
||||||
address_format = '%(company_name)s\n' + address_format
|
address_format = '%(company_name)s\n' + address_format
|
||||||
return address_format % args
|
return address_format % args
|
||||||
|
|
||||||
# res.partner.address is deprecated; it is still there for backward compability only and will be removed in next version
|
|
||||||
class res_partner_address(osv.osv):
|
|
||||||
_table = "res_partner"
|
|
||||||
_name = 'res.partner.address'
|
|
||||||
_order = 'type, name'
|
|
||||||
_columns = {
|
|
||||||
'parent_id': fields.many2one('res.partner', 'Company', ondelete='set null', select=True),
|
|
||||||
'partner_id': fields.related('parent_id', type='many2one', relation='res.partner', string='Partner'), # for backward compatibility
|
|
||||||
'type': fields.selection( [ ('default','Default'),('invoice','Invoice'), ('delivery','Delivery'), ('contact','Contact'), ('other','Other') ],'Address Type', help="Used to select automatically the right address according to the context in sales and purchases documents."),
|
|
||||||
'function': fields.char('Function', size=128),
|
|
||||||
'title': fields.many2one('res.partner.title','Title'),
|
|
||||||
'name': fields.char('Contact Name', size=64, select=1),
|
|
||||||
'street': fields.char('Street', size=128),
|
|
||||||
'street2': fields.char('Street2', size=128),
|
|
||||||
'zip': fields.char('Zip', change_default=True, size=24),
|
|
||||||
'city': fields.char('City', size=128),
|
|
||||||
'state_id': fields.many2one("res.country.state", 'Fed. State', domain="[('country_id','=',country_id)]"),
|
|
||||||
'country_id': fields.many2one('res.country', 'Country'),
|
|
||||||
'email': fields.char('Email', size=240),
|
|
||||||
'phone': fields.char('Phone', size=64),
|
|
||||||
'fax': fields.char('Fax', size=64),
|
|
||||||
'mobile': fields.char('Mobile', size=64),
|
|
||||||
'birthdate': fields.char('Birthdate', size=64),
|
|
||||||
'is_customer_add': fields.related('partner_id', 'customer', type='boolean', string='Customer'),
|
|
||||||
'is_supplier_add': fields.related('partner_id', 'supplier', type='boolean', string='Supplier'),
|
|
||||||
'active': fields.boolean('Active', help="Uncheck the active field to hide the contact."),
|
|
||||||
'company_id': fields.many2one('res.company', 'Company',select=1),
|
|
||||||
'color': fields.integer('Color Index'),
|
|
||||||
}
|
|
||||||
|
|
||||||
_defaults = {
|
|
||||||
'active': True,
|
|
||||||
'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'res.partner', context=c),
|
|
||||||
'color': 0,
|
|
||||||
'type': 'default',
|
|
||||||
}
|
|
||||||
|
|
||||||
def write(self, cr, uid, ids, vals, context=None):
|
|
||||||
logging.getLogger('res.partner').warning("Deprecated use of res.partner.address")
|
|
||||||
if 'partner_id' in vals:
|
|
||||||
vals['parent_id'] = vals.get('partner_id')
|
|
||||||
del(vals['partner_id'])
|
|
||||||
return self.pool.get('res.partner').write(cr, uid, ids, vals, context=context)
|
|
||||||
|
|
||||||
def create(self, cr, uid, vals, context=None):
|
|
||||||
logging.getLogger('res.partner').warning("Deprecated use of res.partner.address")
|
|
||||||
if 'partner_id' in vals:
|
|
||||||
vals['parent_id'] = vals.get('partner_id')
|
|
||||||
del(vals['partner_id'])
|
|
||||||
return self.pool.get('res.partner').create(cr, uid, vals, context=context)
|
|
||||||
|
|
||||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
|
|
||||||
"access_res_partner_address_group_partner_manager","res_partner_address group_partner_manager","model_res_partner_address","group_partner_manager",1,1,1,1
|
|
||||||
"access_res_partner_address_group_user","res_partner_address group_user","model_res_partner_address","group_user",1,0,0,0
|
|
||||||
"access_res_partner_address","res.partner.address","model_res_partner_address","group_system",1,1,1,1
|
|
|
|
@ -865,10 +865,6 @@ class BaseModel(object):
|
||||||
parent_names = [parent_names]
|
parent_names = [parent_names]
|
||||||
else:
|
else:
|
||||||
name = cls._name
|
name = cls._name
|
||||||
# for res.parnter.address compatiblity, should be remove in v7
|
|
||||||
if 'res.partner.address' in parent_names:
|
|
||||||
parent_names.pop(parent_names.index('res.partner.address'))
|
|
||||||
parent_names.append('res.partner')
|
|
||||||
if not name:
|
if not name:
|
||||||
raise TypeError('_name is mandatory in case of multiple inheritance')
|
raise TypeError('_name is mandatory in case of multiple inheritance')
|
||||||
|
|
||||||
|
|
|
@ -182,7 +182,7 @@ class TestO2MSerialization(common.TransactionCase):
|
||||||
def test_no_command(self):
|
def test_no_command(self):
|
||||||
" empty list of commands yields an empty list of records "
|
" empty list of commands yields an empty list of records "
|
||||||
results = self.partner.resolve_2many_commands(
|
results = self.partner.resolve_2many_commands(
|
||||||
self.cr, UID, 'address', [])
|
self.cr, UID, 'child_ids', [])
|
||||||
|
|
||||||
self.assertEqual(results, [])
|
self.assertEqual(results, [])
|
||||||
|
|
||||||
|
@ -190,7 +190,7 @@ class TestO2MSerialization(common.TransactionCase):
|
||||||
" returns the VALUES dict as-is "
|
" returns the VALUES dict as-is "
|
||||||
values = [{'foo': 'bar'}, {'foo': 'baz'}, {'foo': 'baq'}]
|
values = [{'foo': 'bar'}, {'foo': 'baz'}, {'foo': 'baq'}]
|
||||||
results = self.partner.resolve_2many_commands(
|
results = self.partner.resolve_2many_commands(
|
||||||
self.cr, UID, 'address', map(CREATE, values))
|
self.cr, UID, 'child_ids', map(CREATE, values))
|
||||||
|
|
||||||
self.assertEqual(results, values)
|
self.assertEqual(results, values)
|
||||||
|
|
||||||
|
@ -204,7 +204,7 @@ class TestO2MSerialization(common.TransactionCase):
|
||||||
commands = map(LINK_TO, ids)
|
commands = map(LINK_TO, ids)
|
||||||
|
|
||||||
results = self.partner.resolve_2many_commands(
|
results = self.partner.resolve_2many_commands(
|
||||||
self.cr, UID, 'address', commands, ['name'])
|
self.cr, UID, 'child_ids', commands, ['name'])
|
||||||
|
|
||||||
self.assertEqual(sorted_by_id(results), sorted_by_id([
|
self.assertEqual(sorted_by_id(results), sorted_by_id([
|
||||||
{'id': ids[0], 'name': 'foo'},
|
{'id': ids[0], 'name': 'foo'},
|
||||||
|
@ -221,7 +221,7 @@ class TestO2MSerialization(common.TransactionCase):
|
||||||
]
|
]
|
||||||
|
|
||||||
results = self.partner.resolve_2many_commands(
|
results = self.partner.resolve_2many_commands(
|
||||||
self.cr, UID, 'address', ids, ['name'])
|
self.cr, UID, 'child_ids', ids, ['name'])
|
||||||
|
|
||||||
self.assertEqual(sorted_by_id(results), sorted_by_id([
|
self.assertEqual(sorted_by_id(results), sorted_by_id([
|
||||||
{'id': ids[0], 'name': 'foo'},
|
{'id': ids[0], 'name': 'foo'},
|
||||||
|
@ -236,7 +236,7 @@ class TestO2MSerialization(common.TransactionCase):
|
||||||
id_baz = self.partner.create(self.cr, UID, {'name': 'baz', 'city': 'tag'})
|
id_baz = self.partner.create(self.cr, UID, {'name': 'baz', 'city': 'tag'})
|
||||||
|
|
||||||
results = self.partner.resolve_2many_commands(
|
results = self.partner.resolve_2many_commands(
|
||||||
self.cr, UID, 'address', [
|
self.cr, UID, 'child_ids', [
|
||||||
LINK_TO(id_foo),
|
LINK_TO(id_foo),
|
||||||
UPDATE(id_bar, {'name': 'qux', 'city': 'tagtag'}),
|
UPDATE(id_bar, {'name': 'qux', 'city': 'tagtag'}),
|
||||||
UPDATE(id_baz, {'name': 'quux'})
|
UPDATE(id_baz, {'name': 'quux'})
|
||||||
|
@ -258,7 +258,7 @@ class TestO2MSerialization(common.TransactionCase):
|
||||||
commands = [DELETE(ids[0]), DELETE(ids[1]), DELETE(ids[2])]
|
commands = [DELETE(ids[0]), DELETE(ids[1]), DELETE(ids[2])]
|
||||||
|
|
||||||
results = self.partner.resolve_2many_commands(
|
results = self.partner.resolve_2many_commands(
|
||||||
self.cr, UID, 'address', commands, ['name'])
|
self.cr, UID, 'child_ids', commands, ['name'])
|
||||||
|
|
||||||
self.assertEqual(results, [])
|
self.assertEqual(results, [])
|
||||||
|
|
||||||
|
@ -269,7 +269,7 @@ class TestO2MSerialization(common.TransactionCase):
|
||||||
]
|
]
|
||||||
|
|
||||||
results = self.partner.resolve_2many_commands(
|
results = self.partner.resolve_2many_commands(
|
||||||
self.cr, UID, 'address', [
|
self.cr, UID, 'child_ids', [
|
||||||
CREATE({'name': 'foo'}),
|
CREATE({'name': 'foo'}),
|
||||||
UPDATE(ids[0], {'name': 'bar'}),
|
UPDATE(ids[0], {'name': 'bar'}),
|
||||||
LINK_TO(ids[1]),
|
LINK_TO(ids[1]),
|
||||||
|
@ -300,7 +300,7 @@ class TestO2MSerialization(common.TransactionCase):
|
||||||
commands = map(lambda id: (4, id), ids)
|
commands = map(lambda id: (4, id), ids)
|
||||||
|
|
||||||
results = self.partner.resolve_2many_commands(
|
results = self.partner.resolve_2many_commands(
|
||||||
self.cr, UID, 'address', commands, ['name'])
|
self.cr, UID, 'child_ids', commands, ['name'])
|
||||||
|
|
||||||
self.assertEqual(sorted_by_id(results), sorted_by_id([
|
self.assertEqual(sorted_by_id(results), sorted_by_id([
|
||||||
{'id': ids[0], 'name': 'foo'},
|
{'id': ids[0], 'name': 'foo'},
|
||||||
|
@ -311,7 +311,7 @@ class TestO2MSerialization(common.TransactionCase):
|
||||||
def test_singleton_commands(self):
|
def test_singleton_commands(self):
|
||||||
"DELETE_ALL can appear as a singleton"
|
"DELETE_ALL can appear as a singleton"
|
||||||
results = self.partner.resolve_2many_commands(
|
results = self.partner.resolve_2many_commands(
|
||||||
self.cr, UID, 'address', [DELETE_ALL()], ['name'])
|
self.cr, UID, 'child_ids', [DELETE_ALL()], ['name'])
|
||||||
|
|
||||||
self.assertEqual(results, [])
|
self.assertEqual(results, [])
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue