[IMP]import_google : Improve the code for message box
authorDBR (OpenERP) <dbr@tinyerp.com>
Thu, 16 Jun 2011 10:21:05 +0000 (15:51 +0530)
committerDBR (OpenERP) <dbr@tinyerp.com>
Thu, 16 Jun 2011 10:21:05 +0000 (15:51 +0530)
bzr revid: dbr@tinyerp.com-20110616102105-y401kwlng6nl068g

addons/import_google/wizard/import_google.py
addons/import_google/wizard/import_google_data.py

index b4c0a69..dbdf980 100644 (file)
@@ -49,10 +49,12 @@ class google_import(import_framework):
     def initialize(self):
         google = self.obj.pool.get('google.login')
         self.external_id_field = 'Id'
-        self.gclient=self.context.get('gd_client', False)
         self.gd_client = google.google_login(self.context.get('user'), 
                                        self.context.get('password'), 
-                                        type = self.context.get('instance'))
+                                        self.context.get('instance'))
+        
+        if self.context.get('instance') and self.context.get('instance') == 'contact':
+            self.contact = self.context.get('contact') 
         if self.context.get('instance') and self.context.get('instance') == 'calendar':
             self.calendars = self.context.get('calendars') 
         
@@ -273,13 +275,16 @@ class google_import(import_framework):
 
 
     def get_contact(self):
-        contact=self.gclient
-        gclient=self.context.get('client',False)
         table = self.context.get('table')[0] 
         datas = [] 
-        while contact:      
-            for entry in contact.entry:
-               
+        if self.context.get('group_name'):
+            query = gdata.contacts.service.ContactsQuery()
+            query.group = self.context.get('group_name')
+            self.contact = self.gd_client.GetContactsFeed(query.ToUri())
+        else: 
+            self.contact = self.gd_client.GetContactsFeed()   
+        while self.contact: 
+            for entry in self.contact.entry:
                 data = {}
                 data['id'] = entry.id.text
                 name = tools.ustr(entry.title.text)
@@ -305,8 +310,8 @@ class google_import(import_framework):
                         if phone.rel == gdata.contacts.PHONE_WORK_FAX:
                             data['fax'] = phone.text 
                 datas.append(data)        
-            next = contact.GetNextLink()
-            contact = next and gclient.GetContactsFeed(next.href) or None     
+            next = self.contact.GetNextLink()
+            self.contact = next and self.gd_client.GetContactsFeed(next.href) or None     
         return datas
      
     def get_partner_address(self,val):
index 46130db..3499d44 100644 (file)
@@ -131,17 +131,14 @@ class synchronize_google(osv.osv_memory):
             if not gd_client:
                 raise osv.except_osv(_('Error'), _("Please specify correct user and password !"))        
             if obj.group_name not in ['all']:
-                query = gdata.contacts.service.ContactsQuery()
-                query.group = obj.group_name
-                contact = gd_client.GetContactsFeed(query.ToUri())
-            else:
-                contact = gd_client.GetContactsFeed()
+                context.update({ 'group_name': obj.group_name})
             if obj.create_partner=='create_all':
                 tables.append('Contact')    
             else:    
                 tables.append('Address')
-            context.update({'gd_client':contact,
-                           'client':gd_client,
+            context.update({'user': gmail_user,
+                            'password': gmail_pwd,
+                            'instance': 'contact',
                             'table':tables,
                             'customer':cust,
                             'supplier':sup})
@@ -163,7 +160,23 @@ class synchronize_google(osv.osv_memory):
         imp = google_import(self, cr, uid,'import_google' , "synchronize_google", gmail_user, context)
         imp.set_table_list(tables)
         imp.start()            
-        return {}
+        #return {}
+        msg = "  you're Contact import in background, a email will be send when the process is finished to %s"%(user_obj.gmail_user)
+        context.update({'message': msg})   
+
+        obj_model = self.pool.get('ir.model.data')
+        model_data_ids = obj_model.search(cr,uid,[('model','=','ir.ui.view'),('name','=','view_google_import_message_form')])
+        resource_id = obj_model.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
+        
+        return {
+                'view_type': 'form',
+                'view_mode': 'form',
+                'res_model': 'google.import.message',
+                'views': [(resource_id,'form')],
+                'type': 'ir.actions.act_window',
+                'target': 'new',
+               'context': context,
+            }
 
 synchronize_google()