[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:
Antony Lesuisse 2012-12-15 19:28:36 +01:00
commit 0a35f78974
5 changed files with 11 additions and 75 deletions

View File

@ -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',

View File

@ -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:

View File

@ -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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_res_partner_address_group_partner_manager res_partner_address group_partner_manager model_res_partner_address group_partner_manager 1 1 1 1
3 access_res_partner_address_group_user res_partner_address group_user model_res_partner_address group_user 1 0 0 0
4 access_res_partner_address res.partner.address model_res_partner_address group_system 1 1 1 1

View File

@ -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')

View File

@ -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, [])