summaryrefslogtreecommitdiff
path: root/addons/import_google/wizard/import_google_data.py
diff options
context:
space:
mode:
authorAntony Lesuisse <al@openerp.com>2012-10-02 17:58:59 +0200
committerAntony Lesuisse <al@openerp.com>2012-10-02 17:58:59 +0200
commit17796fce4136800faeff9f8b553ed5c7d8e9d54c (patch)
treea9510c2d07f1533d74012ab9e0c02d9419470666 /addons/import_google/wizard/import_google_data.py
parentc7ec79dcda0cdba9234a5c3f0c6eb76c902ac5e2 (diff)
[REM] modules moved to openerp-extra
bzr revid: al@openerp.com-20121002155859-dfe6lycimc87tw93
Diffstat (limited to 'addons/import_google/wizard/import_google_data.py')
-rw-r--r--addons/import_google/wizard/import_google_data.py183
1 files changed, 0 insertions, 183 deletions
diff --git a/addons/import_google/wizard/import_google_data.py b/addons/import_google/wizard/import_google_data.py
deleted file mode 100644
index 5ce1d160f3e..00000000000
--- a/addons/import_google/wizard/import_google_data.py
+++ /dev/null
@@ -1,183 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-import datetime
-
-try:
- import gdata
- import gdata.contacts.service
- import gdata.contacts
-except ImportError:
- raise osv.except_osv(_('Google Contacts Import Error!'), _('Please install gdata-python-client from http://code.google.com/p/gdata-python-client/downloads/list'))
-from osv import fields
-from osv import osv
-from tools.translate import _
-from import_google import google_import
-
-
-class google_login_contact(osv.osv_memory):
-
- _inherit = 'google.login'
-
- def _get_next_action(self, cr, uid, context=None):
- data_obj = self.pool.get('ir.model.data')
- data_id = data_obj._get_id(cr, uid, 'import_google', 'view_synchronize_google_contact_import_form')
- view_id = False
- if context.get('contact'):
- data_id = data_obj._get_id(cr, uid, 'import_google', 'view_synchronize_google_contact_import_form')
- if context.get('calendar'):
- data_id = data_obj._get_id(cr, uid, 'import_google', 'view_synchronize_google_calendar_import_form')
- if data_id:
- view_id = data_obj.browse(cr, uid, data_id, context=context).res_id
- value = {
- 'name': _('Import google'),
- 'view_type': 'form',
- 'view_mode': 'form,tree',
- 'res_model': 'synchronize.google.import',
- 'view_id': False,
- 'context': context,
- 'views': [(view_id, 'form')],
- 'type': 'ir.actions.act_window',
- 'target': 'new',
- }
- return value
-
-google_login_contact()
-
-class synchronize_google(osv.osv_memory):
- _name = 'synchronize.google.import'
-
- def _get_group(self, cr, uid, context=None):
-
- # all the selection field which have method are called at load time. why ?
-
- res = []
- if context:
- user_obj = self.pool.get('res.users').browse(cr, uid, uid,context=context)
- google=self.pool.get('google.login')
- if not user_obj.gmail_user or not user_obj.gmail_password:
- raise osv.except_osv(_('Warning!'), _("No Google Username or password is defined for user.\nPlease define on user's form."))
- gd_client = google.google_login(user_obj.gmail_user,user_obj.gmail_password,type='group')
- if not gd_client:
- return [('failed', 'Connection to google fail')]
-
- res = []
- query = gdata.contacts.service.GroupsQuery(feed='/m8/feeds/groups/default/full')
- if gd_client:
- groups = gd_client.GetFeed(query.ToUri())
- for grp in groups.entry:
- res.append((grp.id.text, grp.title.text))
- res.append(('all','All Groups'))
- return res
-
- def _get_calendars(self, cr, uid, context=None):
- user_obj = self.pool.get('res.users').browse(cr, uid, uid)
- google = self.pool.get('google.login')
- res = []
- try:
- gd_client = google.google_login(user_obj.gmail_user, user_obj.gmail_password, type='calendar')
- calendars = gd_client.GetAllCalendarsFeed()
- for cal in calendars.entry:
- res.append((cal.id.text, cal.title.text))
- except Exception, e:
- return [('failed', 'Connection to google fail')]
- res.append(('all', 'All Calendars'))
- return res
-
- _columns = {
- 'customer': fields.boolean('Customer', help="Check this box to set newly created partner as Customer."),
- 'supplier': fields.boolean('Supplier', help="Check this box to set newly created partner as Supplier."),
- 'group_name': fields.selection(_get_group, "Group Name", help="Choose which group to import, By default it takes all."),
- 'calendar_name': fields.selection(_get_calendars, "Calendar Name"),
- }
-
- _defaults = {
- 'group_name': 'all',
- 'customer': True,
- 'supplier': True,
- }
-
- def import_google(self, cr, uid, ids, context=None):
- if context == None:
- context = {}
- if not ids:
- return {'type': 'ir.actions.act_window_close'}
- obj = self.browse(cr, uid, ids, context=context)[0]
- cust = obj.customer
- sup = obj.supplier
- tables=[]
- user_obj = self.pool.get('res.users').browse(cr, uid, uid)
-
- gmail_user = user_obj.gmail_user
- gmail_pwd = user_obj.gmail_password
- google = self.pool.get('google.login')
- if not gmail_user or not gmail_pwd:
- raise osv.except_osv(_('Error!'), _("Invalid login detail !\nPlease specify correct username and password."))
-
- if context.get('contact'):
- msg = " Your contacts are being imported in background, an email to %s will be sent when the process is over." % (user_obj.gmail_user)
- gd_client = google.google_login(gmail_user, gmail_pwd, type='contact')
- if not gd_client:
- raise osv.except_osv(_('Error!'), _("Please specify correct username and password!"))
- if obj.group_name not in ['all']:
- context.update({ 'group_name': obj.group_name})
- tables.append('Contact')
- context.update({'user': gmail_user,
- 'password': gmail_pwd,
- 'instance': 'contact',
- 'table':tables,
- 'customer':cust,
- 'supplier':sup})
-
- elif context.get('calendar'):
- msg = " Your meetings are being imported in background, an email to %s will be sent when the process is over."%(user_obj.gmail_user)
-
- tables.append('Events')
- current_rec = self.browse(cr, uid, ids, context=context)
- calendars = False
- for rec in current_rec:
- if rec.calendar_name != 'all':
- calendars = [rec.calendar_name]
- else:
- calendars = map(lambda x: x[0], [cal for cal in self._get_calendars(cr, uid, context) if cal[0] != 'all'])
- context.update({'user': gmail_user,
- 'password': gmail_pwd,
- 'calendars': calendars,
- 'instance': 'calendar'})
- imp = google_import(self, cr, uid,'import_google' , "synchronize_google", gmail_user, context)
- imp.set_table_list(tables)
- imp.start()
- 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()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: