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

Reply via email to