Devishree Brahmbhatt (OpenERP) has proposed merging
lp:~openerp-dev/openobject-addons/trunk-fp-notes-apa-remove-res-partner-address-object-dbr
into lp:~openerp-dev/openobject-addons/trunk-fp-notes-apa.
Requested reviews:
Amit Patel (OpenERP) (apa-tiny)
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-fp-notes-apa-remove-res-partner-address-object-dbr/+merge/110329
Hello sir,
Remove use of res.partner.address.
Note:Some code improvement from following branch:
lp:~openerp-dev/openobject-addons/trunk-partner-address-cleaning-google_map-kjo
So, kindly review it.
Thanks,
DBR
--
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-fp-notes-apa-remove-res-partner-address-object-dbr/+merge/110329
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openobject-addons/trunk-fp-notes-apa.
=== modified file 'import_google/test/test_sync_google_contact_import_address.yml'
--- import_google/test/test_sync_google_contact_import_address.yml 2011-06-16 05:03:29 +0000
+++ import_google/test/test_sync_google_contact_import_address.yml 2012-06-14 13:24:28 +0000
@@ -27,8 +27,8 @@
- |
I check whether the Contacts are created in Partner address or not.
-
- !python {model: res.partner.address}: |
+ !python {model: res.partner}: |
addr_obj = self.pool.get('ir.model.data')
- data_ids = addr_obj.search(cr, uid, [('model','=','res.partner.address'),('module','=','synchronize_google')])
+ data_ids = addr_obj.search(cr, uid, [('model','=','res.partner'),('module','=','synchronize_google')])
assert data_ids, 'Addresses not created !'
\ No newline at end of file
=== modified file 'import_google/test/test_sync_google_contact_import_partner.yml'
--- import_google/test/test_sync_google_contact_import_partner.yml 2011-06-15 12:31:48 +0000
+++ import_google/test/test_sync_google_contact_import_partner.yml 2012-06-14 13:24:28 +0000
@@ -26,10 +26,10 @@
- |
I check whether the Partners are created or not.
-
- !python {model: res.partner.address }: |
+ !python {model: res.partner }: |
addr_obj = self.pool.get('ir.model.data')
addr_ids = addr_obj.search(cr, uid, [])
- data_ids = addr_obj.search(cr, uid, [('model','=','res.partner.address'),('module','=','synchronize_google')])
+ data_ids = addr_obj.search(cr, uid, [('model','=','res.partner'),('module','=','synchronize_google')])
address_ids = map(lambda x: x.res_id, [child for child in addr_obj.browse(cr, uid, data_ids) if child.res_id])
partner_ids = map(lambda x: x.partner_id.id, [addr for addr in self.browse(cr, uid, address_ids) if addr.partner_id])
assert partner_ids, 'Partners not created !'
=== modified file 'import_google/wizard/import_google.py'
--- import_google/wizard/import_google.py 2012-01-31 13:36:57 +0000
+++ import_google/wizard/import_google.py 2012-06-14 13:24:28 +0000
@@ -46,7 +46,6 @@
contact = False
DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S"
TABLE_CONTACT = 'Contact'
- TABLE_ADDRESS ='Address'
TABLE_EVENT = 'Events'
def initialize(self):
@@ -64,13 +63,11 @@
return {
self.TABLE_EVENT: self.get_event_mapping(),
self.TABLE_CONTACT: self.get_contact_mapping(),
- self.TABLE_ADDRESS: self.get_address_mapping(),
}
def get_data(self, table):
data_fetching_function = {
self.TABLE_CONTACT: self.get_contact,
- self.TABLE_ADDRESS: self.get_contact,
self.TABLE_EVENT: self.get_events,
}
@@ -284,8 +281,9 @@
data['id'] = entry.id.text
name = tools.ustr(entry.title.text)
if name == "None":
- name = entry.email[0].address
- data['name'] = name
+ if len(entry.email)==1:
+ name = entry.email[0].address
+ data['name'] = name or 'TEST'
emails = ','.join(email.address for email in entry.email)
data['email'] = emails
if table == 'Contact':
@@ -309,39 +307,29 @@
self.contact = next and self.gd_client.GetContactsFeed(next.href) or None
return datas
-
-
- def get_contact_mapping(self):
- return {
- 'model': 'res.partner',
- 'dependencies': [self.TABLE_ADDRESS],
- 'map': {
- 'id':'id',
- 'name': value('company', fallback='name'),
- 'customer': 'customer',
- 'supplier': 'supplier',
- 'address/id': ref(self.TABLE_ADDRESS, 'id'),
- }
- }
-
def get_partner_id(self, val):
partner_id = False
company_pool = self.obj.pool.get('res.partner')
if 'company' in val:
partner_ids = company_pool.search(self.cr, self.uid, [('name', '=', val.get('company'))])
- return partner_ids and partner_ids[0] or False
+ if partner_ids:
+ return partner_ids and partner_ids[0] or False
+ else:
+ partner_ids = company_pool.create(self.cr, self.uid, {'name': val.get('company'), 'email': val.get('email', False), 'is_company': True})
+ return partner_ids
contact = self.xml_id_exist(self.TABLE_CONTACT, val.get('id'))
if contact:
partner_id = self.get_mapped_id(self.TABLE_CONTACT, val.get('id'))
return partner_id
- def get_address_mapping(self):
+ def get_contact_mapping(self):
return {
- 'model': 'res.partner.address',
- 'dependencies': [],
+ 'model': 'res.partner',
'map': {
'id':'id',
- 'partner_id/.id': self.get_partner_id,
+ 'customer': 'customer',
+ 'supplier': 'supplier',
+ 'parent_id/.id': self.get_partner_id,
'name': 'name',
'city': 'city',
'phone': 'phone',
@@ -353,4 +341,4 @@
}
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'import_sugarcrm/import_sugarcrm.py'
--- import_sugarcrm/import_sugarcrm.py 2012-05-22 12:57:04 +0000
+++ import_sugarcrm/import_sugarcrm.py 2012-06-14 13:24:28 +0000
@@ -149,7 +149,7 @@
res_model = 'res.partner'
elif sugar_document_contact:
res_id = self.get_mapped_id(self.TABLE_CONTACT, sugar_document_contact[0])
- res_model = 'res.partner.address'
+ res_model = 'res.partner'
elif sugar_document_opportunity:
res_id = self.get_mapped_id(self.TABLE_OPPORTUNITY, sugar_document_opportunity[0])
res_model = 'crm.lead'
@@ -283,20 +283,16 @@
def get_contact_info_from_account(self, val):
partner_id = self.get_mapped_id(self.TABLE_ACCOUNT, val.get('account_id'))
- partner_address_id = False
partner_phone = False
partner_email = False
partner = self.obj.pool.get('res.partner').browse(self.cr, self.uid, [partner_id])[0]
- if partner.address and partner.address[0]:
- address = partner.address[0]
- partner_address_id = address.id
+ if partner:
partner_phone = address.phone
partner_email = address.email
- return partner_address_id, partner_phone,partner_email
+ return partner_phone,partner_email
def import_crm_claim(self, val):
- partner_address_id, partner_phone,partner_email = self.get_contact_info_from_account(val)
- val['partner_address_id/.id'] = partner_address_id
+ partner_phone,partner_email = self.get_contact_info_from_account(val)
val['partner_phone'] = partner_phone
val['email_from'] = partner_email
return val
@@ -312,7 +308,6 @@
'user_id/id': ref(self.TABLE_USER, 'assigned_user_id'),
'description': ppconcat('description', 'resolution', 'work_log'),
'partner_id/id': ref(self.TABLE_ACCOUNT, 'account_id'),
- 'partner_address_id/.id': 'partner_address_id/.id',
'categ_id/id': call(self.get_category, 'crm.claim', value('type')),
'partner_phone': 'partner_phone',
'email_from': 'email_from',
@@ -470,7 +465,6 @@
'user_id/id': ref(self.TABLE_USER, 'assigned_user_id'),
'categ_id/id': call(self.get_category, 'crm.meeting', const('Tasks')),
'partner_id/id': related_ref(self.TABLE_ACCOUNT),
- 'partner_address_id/id': ref(self.TABLE_CONTACT,'contact_id'),
'state': map_val('status', self.task_state)
}
}
@@ -495,7 +489,6 @@
'duration': call(self.get_float_time, value('duration_hours'), value('duration_minutes')),
'user_id/id': ref(self.TABLE_USER, 'assigned_user_id'),
'partner_id/id': related_ref(self.TABLE_ACCOUNT),
- 'partner_address_id/id': related_ref(self.TABLE_CONTACT),
'categ_id/id': call(self.get_category, 'crm.phonecall', value('direction')),
'opportunity_id/id': related_ref(self.TABLE_OPPORTUNITY),
'description': ppconcat('description'),
@@ -522,9 +515,9 @@
contact_id = False
if not user_id:
contact_id = self.xml_id_exist(self.TABLE_CONTACT, attendee.get('id', False))
- fields = ['user_id/id', 'email', 'partner_address_id/id']
+ fields = ['user_id/id', 'email']
data = [user_id, attendee.get('email1'), contact_id]
- attendee_xml_id = self.import_object(fields, data, 'calendar.attendee', self.TABLE_ATTENDEE, user_id or contact_id or attendee.get('email1'), ['|',('user_id', '=', attendee.get('id')),('partner_address_id','=',attendee.get('id')),('email', '=', attendee.get('email1'))])
+ attendee_xml_id = self.import_object(fields, data, 'calendar.attendee', self.TABLE_ATTENDEE, user_id or contact_id or attendee.get('email1'), ['|',('user_id', '=', attendee.get('id')),('email', '=', attendee.get('email1'))])
attendee_id.append(attendee_xml_id)
return ','.join(attendee_id)
@@ -560,7 +553,6 @@
'alarm_id/id': call(self.get_alarm_id, value('reminder_time')),
'user_id/id': ref(self.TABLE_USER, 'assigned_user_id'),
'partner_id/id': related_ref(self.TABLE_ACCOUNT),
- 'partner_address_id/id': related_ref(self.TABLE_CONTACT),
'state': map_val('status', self.meeting_state)
}
}
@@ -586,19 +578,19 @@
sugar_opportunities_contact = set(sugar.relation_search(self.context.get('port'), self.context.get('session_id'), 'Opportunities', module_id=val.get('id'), related_module='Contacts', query=None, deleted=None))
partner_contact_id = False
- partner_contact_email = False
- partner_address_obj = self.obj.pool.get('res.partner.address')
+ partner_contact_email = False
+ partner_obj = self.obj.pool.get('res.partner')
partner_xml_id = self.name_exist(self.TABLE_ACCOUNT, val['account_name'], 'res.partner')
for contact in sugar_opportunities_contact:
address_id = self.get_mapped_id(self.TABLE_CONTACT, contact)
if address_id:
- address = partner_address_obj.browse(self.cr, self.uid, address_id)
- partner_name = address.partner_id and address.partner_id.name or False
+ address = partner_obj.browse(self.cr, self.uid, address_id)
+ partner_name = address.parent_id and address.parent_id.name or False
if not partner_name: #link with partner id
- fields = ['partner_id/id']
+ fields = ['parent_id/id']
data = [partner_xml_id]
- self.import_object(fields, data, 'res.partner.address', self.TABLE_CONTACT, contact, self.DO_NOT_FIND_DOMAIN)
+ self.import_object(fields, data, 'res.partner', self.TABLE_CONTACT, contact, self.DO_NOT_FIND_DOMAIN)
if not partner_name or partner_name == val.get('account_name'):
partner_contact_id = self.xml_id_exist(self.TABLE_CONTACT, contact)
partner_contact_email = address.email
@@ -606,7 +598,6 @@
def import_opp(self, val):
partner_contact_id, partner_contact_email = self.import_opportunity_contact(val)
- val['partner_address_id/id'] = partner_contact_id
val['email_from'] = partner_contact_email
return val
@@ -620,7 +611,6 @@
'probability': 'probability',
'partner_id/id': refbyname(self.TABLE_ACCOUNT, 'account_name', 'res.partner'),
'title_action': 'next_step',
- 'partner_address_id/id': 'partner_address_id/id',
'planned_revenue': 'amount',
'date_deadline': 'date_closed',
'user_id/id' : ref(self.TABLE_USER, 'assigned_user_id'),
@@ -724,12 +714,12 @@
def get_contact_mapping(self):
return {
- 'model' : 'res.partner.address',
+ 'model' : 'res.partner',
'dependencies' : [self.TABLE_ACCOUNT],
'hook' : self.import_contact,
'map' : {
'name': concat('first_name', 'last_name'),
- 'partner_id/id': ref(self.TABLE_ACCOUNT,'account_id'),
+ 'parent_id/id': ref(self.TABLE_ACCOUNT,'account_id'),
'phone': 'phone_work',
'mobile': 'phone_mobile',
'fax': 'phone_fax',
@@ -782,7 +772,7 @@
val['type'] = type
val['id_new'] = val['id'] + '_address_' + type
- return self.import_object_mapping(map_partner_address, val, 'res.partner.address', self.TABLE_CONTACT, val['id_new'], self.DO_NOT_FIND_DOMAIN)
+ return self.import_object_mapping(map_partner_address, val, 'res.partner', self.TABLE_CONTACT, val['id_new'], self.DO_NOT_FIND_DOMAIN)
def get_partner_address(self, val):
address_id=[]
@@ -791,7 +781,6 @@
if val.get(key):
id = self.get_address_type(val, type_value)
address_id.append(id)
-
return ','.join(address_id)
def get_partner_mapping(self):
@@ -806,9 +795,8 @@
'comment': ppconcat('description', 'employees', 'ownership', 'annual_revenue', 'rating', 'industry', 'ticker_symbol'),
'customer': const('1'),
'supplier': const('0'),
- 'address/id':'address/id',
+ 'parent_id/id': ref(self.TABLE_ACCOUNT,'account_id'),
'parent_id/id_parent' : 'parent_id',
- 'address/id' : self.get_partner_address,
}
}
@@ -846,7 +834,7 @@
val['country_id/id'] = country_id
val['state_id/id'] = state_id
- return self.import_object_mapping(map_user_address, val, 'res.partner.address', self.TABLE_CONTACT, val['id'], self.DO_NOT_FIND_DOMAIN)
+ return self.import_object_mapping(map_user_address, val, 'res.partner', self.TABLE_CONTACT, val['id'], self.DO_NOT_FIND_DOMAIN)
def get_employee_mapping(self):
return {
@@ -1147,4 +1135,4 @@
import_sugarcrm()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'plugin/plugin_handler.py'
--- plugin/plugin_handler.py 2011-12-26 17:12:29 +0000
+++ plugin/plugin_handler.py 2012-06-14 13:24:28 +0000
@@ -26,8 +26,8 @@
return True
def partner_get(self, cr, uid, address_email):
- ids = self.pool.get('res.partner.address').search(cr, uid, [('partner_id', '!=', False), ('email', 'like', address_email)])
- res_id = ids and self.pool.get('res.partner.address').browse(cr, uid, ids[0]).partner_id.id or 0
+ partner_obj = self.pool.get('res.partner')
+ res_id = partner_obj.search(cr, uid, [('email', 'like', address_email)]) or 0
url = self._make_url(cr, uid, res_id, 'res.partner')
return ('res.partner', res_id , url)
@@ -127,7 +127,7 @@
if partner_id == 0:
partner_id = partner_obj.create(cr, uid, {'name':dictcreate.get('name')})
dictcreate['partner_id'] = partner_id
- self.pool.get('res.partner.address').create(cr, uid, dictcreate)
+ self.pool.get('res.partner').create(cr, uid, dictcreate)
url = self._make_url(cr, uid, partner_id, 'res.partner')
return ('res.partner', partner_id, url)
=== modified file 'sale/security/ir.model.access.csv'
--- sale/security/ir.model.access.csv 2011-12-21 13:10:28 +0000
+++ sale/security/ir.model.access.csv 2012-06-14 13:24:28 +0000
@@ -30,7 +30,6 @@
access_product_product_sale_user,product.product sale use,product.model_product_product,base.group_sale_salesman,1,0,0,0
access_sale_shop_manager,account.journal sale order.user,model_sale_shop,base.group_sale_manager,1,1,1,1
access_account_fiscalyear_user,account.fiscalyear.user,account.model_account_fiscalyear,base.group_sale_salesman,1,0,0,0
-access_res_partner_address_user,res.partner.address.user,base.model_res_partner_address,base.group_sale_salesman,1,0,0,0
access_account_tax_user,account.tax.user,account.model_account_tax,base.group_sale_salesman,1,0,0,0
access_product_packaging_user,product.packaging.user,product.model_product_packaging,base.group_sale_salesman,1,1,1,0
access_ir_attachment_sales,ir.attachment.sales,base.model_ir_attachment,base.group_sale_salesman,1,1,1,0
=== modified file 'subscription/subscription_demo.xml'
--- subscription/subscription_demo.xml 2011-01-14 00:11:01 +0000
+++ subscription/subscription_demo.xml 2012-06-14 13:24:28 +0000
@@ -16,7 +16,7 @@
<field model="subscription.document" name="document_id" search="[('name', '=', u'Partner')]"/>
</record>
<record id="subscription_document_fields_3" model="subscription.document.fields">
- <field name="field" ref="base.field_res_partner_address"/>
+ <field name="field" ref="base.field_res_partner_child_ids"/>
<field model="subscription.document" name="document_id" search="[('name', '=', u'Partner')]"/>
</record>
</data>
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp