Jigar Amin  (OpenERP) has proposed merging 
lp:~openerp-dev/openobject-addons/trunk-import_salesforce-b9_meeting-jam into 
lp:~openerp-dev/openobject-addons/trunk-import_salesforce.

Requested reviews:
  Bhumika (OpenERP) (sbh-openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-import_salesforce-b9_meeting-jam/+merge/67021

Improvements :
  1) Import attendee like a new object (with mapping and getdata) that depend 
on event a new table, but don't add a new check box

Kindly Review this
Thank You
-- 
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-import_salesforce-b9_meeting-jam/+merge/67021
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-addons/trunk-import_salesforce.
=== modified file 'import_salesforce/wizard/import_salesforce.py'
--- import_salesforce/wizard/import_salesforce.py	2011-07-06 09:42:20 +0000
+++ import_salesforce/wizard/import_salesforce.py	2011-07-06 11:37:43 +0000
@@ -81,6 +81,7 @@
             self.TABLE_PRODUCT: "SELECT Id,CreatedById, Description, Family, IsActive, Name, ProductCode FROM %s"%(self.TABLE_PRODUCT),
             self.TABLE_EMPLOYEE: "SELECT Id, Phone, Email, MobilePhone, Name, Department, IsActive,  ManagerId FROM %s"%(self.TABLE_USER),
             self.TABLE_ACCOUNT: "SELECT Id, Name, AccountNumber, OwnerId, ParentId, Fax, Phone, Website , BillingStreet, BillingCity, BillingState, BillingCountry, BillingPostalCode, ShippingStreet, ShippingCity, ShippingState, ShippingPostalCode, ShippingCountry, Site, Type, Industry, AnnualRevenue, Description, TickerSymbol, Ownership, NumberOfEmployees, Sic, SLA__c, SLASerialNumber__c, CustomerPriority__c, SLAExpirationDate__c, NumberofLocations__c FROM %s"%(self.TABLE_ACCOUNT),
+            self.TABLE_ATTENDEE: "SELECT Id, Status, AttendeeId, EventId FROM %s"%(self.TABLE_ATTENDEE)
         }
 
     def get_data(self, table):
@@ -102,6 +103,7 @@
             self.TABLE_PRODUCT: self.get_product_mapping(),
             self.TABLE_EMPLOYEE: self.get_employee_mapping(),
             self.TABLE_ACCOUNT: self.get_account_mapping(),
+            self.TABLE_ATTENDEE: self.get_attendee_mapping(),
         }
 
     def get_all_states(self, external_val, country_id):
@@ -560,29 +562,36 @@
                                 'Email': user_rec.user_email})
         return val
 
-    def get_attendee(self, vals):
-        attendee_vals = self._SFCLIENT.query("SELECT Id, Status, AttendeeId,EventId FROM %s WHERE EventId = '%s'"%(self.TABLE_ATTENDEE, vals.get('Id')))
-        attendee_ids = []
-        fields= {
-                'state': 'Status',
+    stats_attendee = {
+        'New': 'needs-action',
+        'Declined': 'decliene',
+        'Accepted': 'accepted',
+        'Maybe': 'tentative',
+        'Deleted': 'delegated',
+    }
+
+    def get_attendee_mapping(self):
+        return {
+            'model': 'calendar.attendee',
+            'dependencies': [self.TABLE_MEETING],
+            'hook': self.get_attendee_contact,
+            'map': {
+                'state': map_val('Status', self.stats_attendee, 'needs-action'),
                 'user_id/.id': 'UserId',
                 'partner_address_id/.id': 'ContactId',
                 'email': 'Email',
                 }
-        stats_attendee = {
-            'New': 'needs-action',
-            'Declined': 'decliene',
-            'Accepted': 'accepted',
-            'Maybe': 'tentative',
-            'Deleted': 'delegated',
         }
-        for attendee in attendee_vals:
-            self.get_attendee_contact(attendee)
-            attendee.update({'Status': stats_attendee.get('Status', 'needs-action')})
-            attendee.update({'id_new': attendee['Id'] + '_EventAttendee_'})
-            nid = self.import_object_mapping(fields, attendee, 'calendar.attendee', self.TABLE_ATTENDEE, attendee.get('id_new'), self.DO_NOT_FIND_DOMAIN)
-            attendee_ids.append(nid)
-        return ','.join(attendee_ids)
+
+    def get_attendees(self, vals):
+        attendee_ids = self._SFCLIENT.query("SELECT Id FROM %s WHERE EventId = '%s'"%(self.TABLE_ATTENDEE, vals.get('Id')))
+        attendees = []
+        if attendee_ids:
+            for attendee in attendee_ids:
+                attendee_xmlid = self.xml_id_exist(self.TABLE_ATTENDEE, attendee.get('Id'))
+                if attendee_xmlid:
+                    attendees.append(attendee_xmlid)
+        return ",".join(attendees)
 
     def get_duration(self, val, duration):
         if duration:
@@ -607,7 +616,7 @@
                     'duration': call(self.get_duration, value('DurationInMinutes')),
                     'allday': map_val('IsAllDayEvent', self.boolean_map),
                     'recurrency': map_val('IsRecurrence', self.boolean_map),
-                    'attendee_ids/id': self.get_attendee,
+                    'attendee_ids/id': self.get_attendees,
                 }
         }
 
@@ -891,7 +900,7 @@
             if current.case:
                 nodes.append('Case')
             if current.event:
-                nodes.append('Event')
+                nodes.extend(['EventAttendee', 'Event'])
             if current.task:
                 nodes.append('Task')
             if current.attachment:

_______________________________________________
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