← Back to team overview

openerp-dev-web team mailing list archive

lp:~openerp-dev/openobject-addons/trunk-import_salesforce-backlog3-jam into lp:~openerp-dev/openobject-addons/trunk-import_salesforce

 

Jigar Amin - OpenERP has proposed merging lp:~openerp-dev/openobject-addons/trunk-import_salesforce-backlog3-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-backlog3-jam/+merge/58233

Hello,
  Changes with merge proposal
    + Added the Missing Context condition for all methods.
    + Separated the Attachments import
  Kindly Review this.
Thank You

-- 
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-import_salesforce-backlog3-jam/+merge/58233
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-addons/trunk-import_salesforce.
=== modified file 'import_salesforce/import_sf.py'
--- import_salesforce/import_sf.py	2011-04-18 07:27:51 +0000
+++ import_salesforce/import_sf.py	2011-04-19 06:53:30 +0000
@@ -80,10 +80,14 @@
     return sql
 
 
-def importAttachment(sf_obj, cr, uid, sfc, context):
+def importAttachment(sf_obj, cr, uid, context):
+    if context == None:
+        context = {}
     attachment_pool = sf_obj.pool.get('ir.attachment')
     data_pool = sf_obj.pool.get('ir.model.data')
     try:
+        sfc = beatbox.PythonClient()
+        sfc, sflogin = getSFLogin(sfc, LOGIN_DATA.get('username'), LOGIN_DATA.get('passToken'))
         sqlStmt = prepareStatement(MODEL_MAP.get('Attachment').get('field_map'), 'Attachment')
         sfVals = sfc.query(sqlStmt)
         for rec in sfVals:
@@ -99,7 +103,8 @@
             rec.update({'datas_fname': rec.get('Name')})
             field, data = dataMapping(rec, fields)
             attachment_pool.import_data(cr, uid, field, [data], mode='update', current_module='import_salesforce', noupdate=True, context=context)
-            fields.pop('res_model')
+            if model_data:
+                fields.pop('res_model')
             fields.pop('datas_fname')
 
     except SoapFaultError, sfe:
@@ -114,6 +119,8 @@
 
 
 def importNote(sf_obj, cr, uid, sfc, context):
+    if context == None:
+        context = {}
     message_pool = sf_obj.pool.get('mailgate.message')
     data_pool = sf_obj.pool.get('ir.model.data')
     try:
@@ -150,6 +157,9 @@
     '''
     Helper Method to resolve title dependency
     '''
+    if context == None:
+        context = {}
+
     if salutation:
         title_pool = sf_obj.pool.get('res.partner.title')
         ids = title_pool.search(cr, uid, [('domain', '=', domain), '|', ('shortcut', '=', salutation), ('name', '=', salutation)])
@@ -165,6 +175,8 @@
     '''
     Helper Method to Priority of Lead/Opportunity
     '''
+    if context == None:
+        context = {}
     priMap = {
         'Hot': '2',
         'Warm': '3',
@@ -177,6 +189,9 @@
     '''
     Helper Method to resolve State dependency.
     '''
+    if context == None:
+        context = {}
+
     stateMap = {
         'Open - Not Contacted': 'draft',
         'Working - Contacted': 'open',
@@ -190,6 +205,9 @@
     '''
     Helper Method to resolve Status dependency.
     '''
+    if context == None:
+        context = {}
+
     stageMap = {
         'Open - Not Contacted': 'New',
         'Working - Contacted': 'Negotiation',
@@ -207,10 +225,16 @@
     '''
     Helper Method to to get SalesForce Owner id for User
     '''
+    if context == None:
+        context = {}
+
     return user.get('Id', False)
 
 
 def getLocalId(sf_obj, cr, uid, state, country, context):
+    if context == None:
+        context = {}
+
     if state or country:
         state_pool = sf_obj.pool.get('res.country.state')
         country_pool = sf_obj.pool.get('res.country')
@@ -226,6 +250,9 @@
 
 
 def importLead(sf_obj, cr, uid, context):
+    if context == None:
+        context = {}
+
     lead_pool = sf_obj.pool.get('crm.lead')
     try:
         sfc = beatbox.PythonClient()
@@ -259,6 +286,9 @@
 
 
 def importUser(sf_obj, cr, uid, context):
+    if context == None:
+        context = {}
+
     user_pool = sf_obj.pool.get('res.users')
     try:
         sfc = beatbox.PythonClient()
@@ -283,6 +313,9 @@
     '''
     Helper Method to resolve State dependency.
     '''
+    if context == None:
+        context = {}
+
     stateMap = {
             'Prospecting': 'draft',
             'Qualification': 'open',
@@ -302,6 +335,9 @@
     '''
     Helper Method to resolve Status dependency.
     '''
+    if context == None:
+        context = {}
+
     stageMap = {
             'Prospecting': 'New',
             'Qualification': 'Qualification',
@@ -322,6 +358,9 @@
 
 
 def importOpportunityHistory(sf_obj, cr, uid, sfc, context):
+    if context == None:
+        context = {}
+
     message_pool = sf_obj.pool.get('mailgate.message')
     data_pool = sf_obj.pool.get('ir.model.data')
     try:
@@ -359,6 +398,9 @@
 
 
 def getOpportunityPartner(sf_obj, cr, uid, sfc, account_id, context):
+    if context == None:
+        context = {}
+
     if account_id:
         account = sfc.query("SELECT Id, Name FROM Account WHERE Id = '%s'"%account_id)
         partner_pool = sf_obj.pool.get('res.partner')
@@ -369,6 +411,9 @@
 
 
 def importOpportunity(sf_obj, cr, uid, context):
+    if context == None:
+        context = {}
+    
     lead_pool = sf_obj.pool.get('crm.lead')
     try:
         sfc = beatbox.PythonClient()
@@ -432,6 +477,9 @@
 
 
 def importAddress(sf_obj, cr, uid, address, context):
+    if context == None:
+        context = {}
+    
     address_pool = sf_obj.pool.get('res.partner.address')
     aids = []
     for key, val in address.items():
@@ -447,6 +495,9 @@
 
 
 def importContact(sf_obj, cr, uid, context):
+    if context == None:
+        context = {}
+
     partner_pool = sf_obj.pool.get('res.partner')
     try:
         addressDict = {
@@ -531,6 +582,9 @@
     '''
     Helper Method to Priority of Lead/Opportunity
     '''
+    if context == None:
+        context = {}
+    
     priMap = {
         'High': '2',
         'Medium': '3',
@@ -543,6 +597,9 @@
     '''
     Helper Method to resolve State dependency.
     '''
+    if context == None:
+        context = {}
+    
     stateMap = {
         'New': 'draft',
         'Working': 'open',
@@ -553,6 +610,9 @@
 
 
 def importCaseComment(sf_obj, cr, uid, sfc, context):
+    if context == None:
+        context = {}
+
     message_pool = sf_obj.pool.get('mailgate.message')
     data_pool = sf_obj.pool.get('ir.model.data')
     try:
@@ -586,6 +646,9 @@
 
 
 def importCase(sf_obj, cr, uid, context):
+    if context == None:
+        context = {}
+
     claim_pool = sf_obj.pool.get('crm.claim')
     try:
         sfc = beatbox.PythonClient()
@@ -600,7 +663,7 @@
             field, data = dataMapping(rec, MODEL_MAP.get('Case').get('field_map'))
             claim_pool.import_data(cr, uid, field, [data], mode='update', current_module='import_salesforce', noupdate=True, context=context)
         importCaseComment(sf_obj, cr, uid, sfc, context)
-        importAttachment(sf_obj, cr, uid, sfc, context)
+
     except SoapFaultError, sfe:
         log = logging.getLogger('import.salesforce.SoapFaultError')
         log.warning(str(sfe))
@@ -613,6 +676,9 @@
 
 
 def getRecurrancy(sf_obj, cr, uid, rec, fields, context):
+    if context == None:
+        context = {}
+
     rrule_type = {
         'RecursEveryWeekday': 'daily',
         'RecursDaily': 'daily',
@@ -656,6 +722,9 @@
 
 
 def getPartnerId(sf_obj, cr, uid, rec, context):
+    if context == None:
+        context = {}
+
     if rec.get('WhoId', False):
         model_pool = sf_obj.pool.get('ir.model.data')
         model_data_ids = model_pool.search(cr, uid, [('model', '=', 'res.partner'), ('name', '=', rec.get('WhoId'))])
@@ -665,6 +734,9 @@
 
 
 def getEventUser(sf_obj, cr, uid, rec, context):
+    if context == None:
+        context = {}
+
     model_pool = sf_obj.pool.get('ir.model.data')
     user = email = address = False
     model_partner_id = model_pool.search(cr, uid, [('name', '=', rec.get('AttendeeId', False))])
@@ -683,6 +755,9 @@
 
 
 def getAttendee(sf_obj, cr, uid, sfc, context):
+    if context == None:
+        context = {}
+
     attendee_pool = sf_obj.pool.get('calendar.attendee')
     model_pool = sf_obj.pool.get('ir.model.data')
     meeting_pool = sf_obj.pool.get('crm.meeting')
@@ -733,6 +808,9 @@
 
 
 def importEvent(sf_obj, cr, uid, context):
+    if context == None:
+        context = {}
+
     meeting_pool = sf_obj.pool.get('crm.meeting')
     try:
         sfc = beatbox.PythonClient()
@@ -788,6 +866,9 @@
 
 
 def createActivity(sf_obj, cr, uid, fields, rec, model, context):
+    if context == None:
+        context = {}
+
     model_pool = sf_obj.pool.get(model)
     try:
         rec.update({'Subject': rec.get('Subject')[0]})
@@ -806,6 +887,9 @@
 
 
 def importActivity(sf_obj, cr, uid, context):
+    if context == None:
+        context = {}
+
     cate_pool = sf_obj.pool.get('crm.case.categ')
     modeldata_pool = sf_obj.pool.get('ir.model.data')
     model_pool = sf_obj.pool.get('ir.model')
@@ -1094,19 +1178,21 @@
         'contact': fields.boolean('Partner/Contacts', help="If Partner/Contacts is checked, SalesFroce Contact data imported to OpenERP Partner and Partner Address."),
         'case': fields.boolean('Cases/Claim', help="If Cases/Claim is checked, SalesFroce Cases data imported to OpenERP CRM Claim."),
         'event': fields.boolean('Event/Meetings', help="If Event/Meetings is checked, SalesFroce Cases data imported to OpenERP Meetings."),
+        'attachment': fields.boolean('Attachments', help="If Attachments is checked, SalesFroce attachments data  will imported to OpenERP Attachemnt, and if resource of the attachment is imported and it will linked to the repective documents."),
         'task': fields.boolean('Acivity', help="If Activity is checked, SalesFroce Activity data  will imported to OpenERP Meetings and if you want ot import data in separate than selectd 'With Type' from below slection else  select 'Without Type'.\nSalesForce Activity is comprised of Email, Call, Meeting."),
         'task_type': fields.selection([('wttype', 'Without Type'), ('wtype', 'With Type')], 'Activity Type', invisible=True, help="In SalesForce Acivity > Task,  the Field Lavel Security of the field 'Type' is set for all user levels than select the 'With Type' option else select 'With Type' option."),
     }
 
     _defaults = {
-       'lead': True,
-       'opportunity': True,
-       'users': True,
-       'contact': True,
-       'event': True,
-       'task': True,
-       'case': True,
-       'task_type': 'wttype',
+        'attachment': True,
+        'lead': True,
+        'opportunity': True,
+        'users': True,
+        'contact': True,
+        'event': True,
+        'task': True,
+        'case': True,
+        'task_type': 'wttype',
     }
 
     def _get_nodes(self, cr, uid, ids, context=None):
@@ -1131,6 +1217,8 @@
                 nodes.append('Task')
                 global ACT_TYPE
                 ACT_TYPE = current.task_type
+            if current.attachment:
+                nodes.append('Attachment')
         return nodes
 
     def sf_do_import(self, cr, uid, ids, context=None):

=== modified file 'import_salesforce/import_sf_view.xml'
--- import_salesforce/import_sf_view.xml	2011-04-06 07:24:44 +0000
+++ import_salesforce/import_sf_view.xml	2011-04-19 06:53:30 +0000
@@ -16,6 +16,7 @@
                         <field name='opportunity'/>
                         <field name='case'/>
                         <field name='event'/>
+                        <field name='attachment'/>
                         <field name='task'/>
                         <newline/>
                         <field name='task_type' attrs="{'invisible': [('task', '!=', True)], 'required':[('task', '=', True)]}" colspan="4"/>
@@ -28,7 +29,7 @@
                             <button icon="gtk-execute" string="_Import" name="sf_do_import" type="object"/>
                         </group>
                     </group>
-                </form> 
+                </form>
             </field>
         </record>
     </data>

=== modified file 'import_salesforce/wizard/sf_import_message.py'
--- import_salesforce/wizard/sf_import_message.py	2011-04-11 11:20:17 +0000
+++ import_salesforce/wizard/sf_import_message.py	2011-04-19 06:53:30 +0000
@@ -24,9 +24,7 @@
 
 
 class sf_import_message(osv.osv):
-    """
-        Import Message
-    """
+    """Import Message"""
     _name = "sf.import.message"
     _description = __doc__
     _columns = {
@@ -37,7 +35,7 @@
         if context == None:
             context = {}
         res = super(sf_import_message, self).default_get(cr, uid, fields, context=context)
-        res.update({'name' : context.get('message')})
+        res.update({'name': context.get('message')})
         return res
 
 sf_import_message()


Follow ups