diff --git a/addons/crm/crm_installer.py b/addons/crm/crm_installer.py index b1a1ff0fe18..f6c61337ce4 100644 --- a/addons/crm/crm_installer.py +++ b/addons/crm/crm_installer.py @@ -37,7 +37,7 @@ class crm_installer(osv.osv_memory): 'thunderbird': fields.boolean('Thunderbird', help="Allows you to link your e-mail to OpenERP's documents. You can attach it to any existing one in OpenERP or create a new one."), 'outlook': fields.boolean('MS-Outlook', help="Allows you to link your e-mail to OpenERP's documents. You can attach it to any existing one in OpenERP or create a new one."), 'wiki_sale_faq': fields.boolean('Sale FAQ', help="Helps you manage wiki pages for Frequently Asked Questions on Sales Application."), - 'import_google': fields.boolean('Google Contacts', help="Imports contacts from your google account."), + 'import_google': fields.boolean('Google Import', help="Imports contacts and events from your google account."), } def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): diff --git a/addons/import_base/import_framework.py b/addons/import_base/import_framework.py index 8994e1568e6..8e930828206 100644 --- a/addons/import_base/import_framework.py +++ b/addons/import_base/import_framework.py @@ -346,11 +346,6 @@ class import_framework(Thread): result = [] imported = set() #to invoid importing 2 times the sames modules for table in self.table_list: -# try: -# to_import = self.get_mapping()[table].get('import', True) -# except: -# import traceback,sys -# info = reduce(lambda x, y: x+y, traceback.format_exception(sys.exc_type, sys.exc_value, sys.exc_traceback)) to_import = self.get_mapping()[table].get('import', True) if not table in imported: res = self._resolve_dependencies(self.get_mapping()[table].get('dependencies', []), imported) diff --git a/addons/import_google/__init__.py b/addons/import_google/__init__.py index 1889d262ff8..7ca8ce67ab3 100644 --- a/addons/import_google/__init__.py +++ b/addons/import_google/__init__.py @@ -19,7 +19,6 @@ # ############################################################################## -import import_google_contact -import sync_google_calendar +import partner import wizard # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_google/__openerp__.py b/addons/import_google/__openerp__.py index d76c0a32831..d49ba8cbbf1 100644 --- a/addons/import_google/__openerp__.py +++ b/addons/import_google/__openerp__.py @@ -20,22 +20,24 @@ ############################################################################## { - 'name': 'Google Contact Import', + 'name': 'Google Import', 'version': '1.0', 'category': 'Generic Modules/Others', - 'description': """The module adds google contact in partner address""", + 'description': """The module adds google contact in partner address and add google calendar events details in Meeting""", 'author': 'OpenERP SA', 'website': 'http://www.openerp.com', 'depends': ['base', 'google_base_account','crm'], 'init_xml': [], - 'update_xml': [ + 'update_xml': ['security/ir.model.access.csv', 'sync_google_calendar_view.xml', - 'wizard/google_contact_import_view.xml', + 'wizard/import_google_data_view.xml', + 'wizard/google_import_message_view.xml' + ], 'demo_xml': [], 'test': [ -# 'test/test_sync_google_contact_import_partner.yml', -# 'test/test_sync_google_contact_import_address.yml', + 'test/test_sync_google_contact_import_partner.yml', + 'test/test_sync_google_contact_import_address.yml', 'test/test_sync_google_calendar.yml', ], 'installable': True, diff --git a/addons/import_google/import_google_contact.py b/addons/import_google/partner.py similarity index 90% rename from addons/import_google/import_google_contact.py rename to addons/import_google/partner.py index 1c00a67cd52..b7c640a7850 100644 --- a/addons/import_google/import_google_contact.py +++ b/addons/import_google/partner.py @@ -36,4 +36,11 @@ class res_partner_address(osv.osv): res_partner_address() +class crm_case_categ(osv.osv): + """ Category of Case """ + _inherit = "crm.case.categ" + _columns = { + 'user_id': fields.many2one('res.users', 'User') + } +crm_case_categ() # vim:expandtab:smartindent:toabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_google/security/ir.model.access.csv b/addons/import_google/security/ir.model.access.csv index 7ed4201e847..50b689efa69 100644 --- a/addons/import_google/security/ir.model.access.csv +++ b/addons/import_google/security/ir.model.access.csv @@ -1,3 +1,5 @@ "id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" "access_res_users_partner_manager","google.res.partner.manager","base.model_ir_model_data","base.group_partner_manager",1,1,1,0 "access_ir_model_data_partner_manager","ir.model.data.partner.manager","base.model_res_users","base.group_partner_manager",1,1,0,0 +"access_google_import_message_partner_manager","google.import.message.partner.manager","model_google_import_message","base.group_partner_manager",1,1,0,0 + diff --git a/addons/import_google/test/test_sync_google_calendar.yml b/addons/import_google/test/test_sync_google_calendar.yml index 2d29da29041..28863f358bb 100644 --- a/addons/import_google/test/test_sync_google_calendar.yml +++ b/addons/import_google/test/test_sync_google_calendar.yml @@ -4,33 +4,33 @@ - | I create a record for the gmail account for which I want to import the contacts. - - !record {model: google.login, id: google_login_contact_id0}: + !record {model: google.login, id: google_login_id0}: user: testmail.openerp@gmail.com password: openerptiny - | I login into that account. - !python {model: google.login}: | - self.login(cr, uid, [ref('google_login_contact_id0')], context) + self.login(cr, uid, [ref('google_login_id0')], context) - | Now I want to import all the events from all the calendars in the user account. - | I select all calendars. - - !record {model: synchronize.google.calendar, id: synchronize_google_calendar_id0}: + !record {model: synchronize.google.import, id: synchronize_google_import_id0}: calendar_name: all - | I import the events from the google calendar. - - !python {model: synchronize.google.calendar}: | - self.import_calendar_events(cr, uid, [ref('synchronize_google_calendar_id0')], context) + !python {model: synchronize.google.import}: | + self.import_google(cr, uid, [ref('synchronize_google_import_id0')], context={'calendar':True}) - | Now I check my meetings are created or not. - !python {model: crm.meeting}: | model_obj = self.pool.get('ir.model.data') meeting_ids = self.search(cr, uid, []) - model_ids = model_obj.search(cr, uid, [('res_id','in',meeting_ids),('model','=','crm.meeting'),('module','=','sync_google_calendar')]) + model_ids = model_obj.search(cr, uid, [('res_id','in',meeting_ids),('model','=','crm.meeting'),('module','=','synchronize_google')]) assert model_ids, 'Meetings not created !' diff --git a/addons/import_google/test/test_sync_google_contact_import_address.yml b/addons/import_google/test/test_sync_google_contact_import_address.yml index 79db352db21..b1a8f9a2e09 100644 --- a/addons/import_google/test/test_sync_google_contact_import_address.yml +++ b/addons/import_google/test/test_sync_google_contact_import_address.yml @@ -4,31 +4,31 @@ - | I create a record for the gmail account for which I want to import the contacts. - - !record {model: google.login, id: google_login_contact_id0}: - user: testmail.openerp + !record {model: google.login, id: google_login_id0}: + user: testmail.openerp@gmail.com password: openerptiny - | I login into that account. - !python {model: google.login}: | - self.login(cr, uid, [ref('google_login_contact_id0')], context) + self.login(cr, uid, [ref('google_login_id0')], context) - | Now I select from which group I want to get the contact details. - - !record {model: synchronize.google.contact.import, id: synchronize_google_contact_import_id0}: + !record {model: synchronize.google.import, id: synchronize_google_import_id0}: create_partner: create_address group_name: all + calendar_name: all - | I import the contacts and I also check if the contact already exists in db and updates the address. - - !python {model: synchronize.google.contact.import}: | - self.import_contact(cr, uid, [ref('synchronize_google_contact_import_id0')], context) + !python {model: synchronize.google.import}: | + self.import_google(cr, uid, [ref('synchronize_google_import_id0')], context={'contact':True}) - | I check whether the Contacts are created in Partner address or not. - - !python {model: ir.model.data}: | - addr_obj = self.pool.get('res.partner.address') - addr_ids = addr_obj.search(cr, uid, []) - data_ids = self.search(cr, uid, [('res_id','in',addr_ids),('model','=','res.partner.address'),('module','=','sync_google_contact')]) + !python {model: res.partner.address}: | + addr_obj = self.pool.get('ir.model.data') + data_ids = addr_obj.search(cr, uid, [('model','=','res.partner.address'),('module','=','synchronize_google')]) assert data_ids, 'Addresses not created !' \ No newline at end of file diff --git a/addons/import_google/test/test_sync_google_contact_import_partner.yml b/addons/import_google/test/test_sync_google_contact_import_partner.yml index 95db4de043e..4eadbf0f100 100644 --- a/addons/import_google/test/test_sync_google_contact_import_partner.yml +++ b/addons/import_google/test/test_sync_google_contact_import_partner.yml @@ -4,33 +4,33 @@ - | I create a record for the gmail account for which I want to import the contacts. - - !record {model: google.login, id: google_login_contact_id1}: - user: testmail.openerp + !record {model: google.login, id: google_login_id1}: + user: testmail.openerp@gmail.com password: openerptiny - | I login into that account. - !python {model: google.login}: | - self.login(cr, uid, [ref('google_login_contact_id1')], context) + self.login(cr, uid, [ref('google_login_id1')], context) - | Now I select from which group I want to get the contact details and I want to create partner for all contacts. - - !record {model: synchronize.google.contact.import, id: synchronize_google_contact_import_id1}: + !record {model: synchronize.google.import, id: synchronize_google_import_id1}: create_partner: create_all group_name: all - | I import the contacts. - - !python {model: synchronize.google.contact.import}: | - self.import_contact(cr, uid, [ref('synchronize_google_contact_import_id1')], context) + !python {model: synchronize.google.import}: | + self.import_google(cr, uid, [ref('synchronize_google_import_id1')], context={'contact':True}) - | I check whether the Partners are created or not. - - !python {model: ir.model.data}: | - addr_obj = self.pool.get('res.partner.address') + !python {model: res.partner.address }: | + addr_obj = self.pool.get('ir.model.data') addr_ids = addr_obj.search(cr, uid, []) - data_ids = self.search(cr, uid, [('res_id','in',addr_ids),('model','=','res.partner.address'),('module','=','sync_google_contact')]) - address_ids = map(lambda x: x.res_id, [child for child in self.browse(cr, uid, data_ids) if child.res_id]) - partner_ids = map(lambda x: x.partner_id.id, [addr for addr in addr_obj.browse(cr, uid, address_ids) if addr.partner_id]) + data_ids = addr_obj.search(cr, uid, [('model','=','res.partner.address'),('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 !' \ No newline at end of file diff --git a/addons/import_google/wizard/__init__.py b/addons/import_google/wizard/__init__.py index a36445eebaa..41c118a0ef3 100644 --- a/addons/import_google/wizard/__init__.py +++ b/addons/import_google/wizard/__init__.py @@ -19,5 +19,6 @@ # ############################################################################## import import_google -import google_contact_import +import import_google_data +import google_import_message # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_google/wizard/google_contact_import.py b/addons/import_google/wizard/google_contact_import.py deleted file mode 100644 index 8616c363837..00000000000 --- a/addons/import_google/wizard/google_contact_import.py +++ /dev/null @@ -1,363 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# 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 . -# -############################################################################## -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 import_contact - -class google_login_contact(osv.osv_memory): - _inherit = 'google.login' - _name = 'google.login.contact' - - def _get_next_action(self, cr, uid, context): - 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 data_id: - view_id = data_obj.browse(cr, uid, data_id, context=context).res_id - value = { - 'name': _('Import Contact'), - 'view_type': 'form', - 'view_mode': 'form,tree', - 'res_model': 'synchronize.google.contact.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_contact(osv.osv_memory): - _name = 'synchronize.google.contact.import' - - def _get_group(self, cr, uid, context=None): - user_obj = self.pool.get('res.users').browse(cr, uid, uid) - 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 Defined for user.\nPlease define in user view")) - gd_client = google.google_login(user_obj.gmail_user,user_obj.gmail_password,type='group') - if not gd_client: - raise osv.except_osv(_('Error'), _("Authentication fail check the user and password !")) - - 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 - - _columns = { - 'create_partner': fields.selection([('create_all','Create partner for each contact'),('create_address','Import only address')],'Options'), - '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", size=32,help="Choose which group to import, By default it takes all."), - } - - _defaults = { - 'create_partner': 'create_all', - 'group_name': 'all', - } -# -# def create_partner(self, cr, uid, data={}, context=None): -# if context == None: -# context = {} -# if not data: -# return False -# name = data.get("company") or data.get('name','') -# partner_pool = self.pool.get('res.partner') -# partner_id = partner_pool.create(cr, uid, { -# 'name': name, -# 'user_id': uid, -# 'address' : [(6, 0, [data['address_id']])], -# 'customer': data.get('customer', False), -# 'supplier': data.get('supplier', False) -# }, context=context) -# return partner_id -# -# def set_partner(self, cr, uid, name, address_id, context=None): -# partner_pool = self.pool.get('res.partner') -# partner_ids = partner_pool.search(cr, uid, [('name', '=', name)], context=context) -# if partner_ids: -# address_pool = self.pool.get('res.partner.address')#TODO create partner of find the one with the same name -# data = {'partner_id' : partner_ids[0]} -# address_pool.write(cr, uid, [address_id], data, context=context) -# return partner_ids[0] -# return False - - def import_contact_all(self, cr, uid, ids, context=None): - tables = ['contact'] - obj = self.browse(cr, uid, ids, context=context)[0] - user_obj = self.pool.get('res.users').browse(cr, uid, uid) - google = self.pool.get('google.login') - - gmail_user = user_obj.gmail_user - gmail_pwd = user_obj.gmail_password - context = {} - gd_client = google.google_login(gmail_user, gmail_pwd, type='contact') - context.update({'user': gmail_user,'password': gmail_pwd,'gd_client':gd_client}) - - imp = import_contact(self, cr, uid,'google', "synchronize_google_contact", context=context) - imp.set_table_list(tables) - imp.start() - return {'type': 'ir.actions.act_window_close'} -# -# 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() -# -# ids = self.create_contact(cr, uid, ids, gd_client, contact, option=obj.create_partner,context=context) -# if not ids: -# return {'type': 'ir.actions.act_window_close'} -# -# return { -# 'name': _(obj.create_partner =='create_all' and 'Partners') or _('Contacts'), -# 'domain': "[('id','in', ["+','.join(map(str,ids))+"])]", -# 'view_type': 'form', -# 'view_mode': 'tree,form', -# 'res_model': obj.create_partner =='create_all' and 'res.partner' or 'res.partner.address', -# 'context': context, -# 'views': [(False, 'tree'),(False, 'form')], -# 'type': 'ir.actions.act_window', -# } - - -# def create_contact(self, cr, uid, ids, gd_client, contact, option,context=None): -# model_obj = self.pool.get('ir.model.data') -# addresss_obj = self.pool.get('res.partner.address') -# company_pool = self.pool.get('res.company') -# addresses = [] -# partner_ids = [] -# contact_ids = [] -# if 'tz' in context and context['tz']: -# time_zone = context['tz'] -# else: -# time_zone = tools.get_server_timezone() -# au_tz = timezone(time_zone) -# while contact: -# for entry in contact.entry: -# data = self._retreive_data(entry) -# google_id = data.pop('id') -# model_data = { -# 'name': google_id, -# 'model': 'res.partner.address', -# 'module': 'sync_google_contact', -# 'noupdate': True -# } -# -# data_ids = model_obj.search(cr, uid, [('model','=','res.partner.address'), ('name','=', google_id)]) -# if data_ids: -# contact_ids = [model_obj.browse(cr, uid, data_ids[0], context=context).res_id] -# elif data['email']: -# contact_ids = addresss_obj.search(cr, uid, [('email', 'ilike', data['email'])]) -# -# if contact_ids: -# addresses.append(contact_ids[0]) -# address = addresss_obj.browse(cr, uid, contact_ids[0], context=context) -# google_updated = entry.updated.text -# utime = dateutil.parser.parse(google_updated) -# au_dt = au_tz.normalize(utime.astimezone(au_tz)) -# updated_dt = datetime.datetime(*au_dt.timetuple()[:6]).strftime('%Y-%m-%d %H:%M:%S') -# if address.write_date < updated_dt: -# self.update_contact(cr, uid, contact_ids, data, context=context) -# res_id = contact_ids[0] -# if not contact_ids: -# #create or link to an existing partner only if it's a new contact -# data.update({'type': 'default'}) -# res_id = addresss_obj.create(cr, uid, data, context=context) -# data['address_id'] = res_id -# if option == 'create_all': -# obj = self.browse(cr, uid, ids, context=context)[0] -# data['customer'] = obj.customer -# data['supplier'] = obj.supplier -# res = False -# if 'company' in data: -# res = self.set_partner(cr, uid, data.get('company'), res_id, context=context) -# if res: -# partner_ids.append(res) -# if not res: -# partner_id = self.create_partner(cr, uid, data, context=context) -# partner_ids.append(partner_id) -# addresses.append(res_id) -# -# if not data_ids: #link to google_id if it was not the case before -# model_data.update({'res_id': res_id}) -# model_obj.create(cr, uid, model_data, context=context) -# -# next = contact.GetNextLink() -# contact = next and gd_client.GetContactsFeed(next.href) or None -# -# if option == 'create_all': -# return partner_ids -# else: -# return addresses - -# def _retreive_data(self, entry): -# data = {} -# data['id'] = entry.id.text -# name = tools.ustr(entry.title.text) -# if name == "None": -# name = entry.email[0].address -# data['name'] = name -# emails = ','.join(email.address for email in entry.email) -# data['email'] = emails -# if entry.organization: -# if entry.organization.org_name: -# data.update({'company': entry.organization.org_name.text}) -# if entry.organization.org_title: -# data.update ({'function': entry.organization.org_title.text}) -# -# -# if entry.phone_number: -# for phone in entry.phone_number: -# if phone.rel == gdata.contacts.REL_WORK: -# data['phone'] = phone.text -# if phone.rel == gdata.contacts.PHONE_MOBILE: -# data['mobile'] = phone.text -# if phone.rel == gdata.contacts.PHONE_WORK_FAX: -# data['fax'] = phone.text -# return data - -# def update_contact(self, cr, uid, contact_ids, data, context=None): -# addresss_obj = self.pool.get('res.partner.address') -# vals = {} -# addr = addresss_obj.browse(cr,uid,contact_ids)[0] -# name = str((addr.name or addr.partner_id and addr.partner_id.name or '').encode('utf-8')) -# -# if name != data.get('name'): -# vals['name'] = data.get('name','') -# if addr.email != data.get('email'): -# vals['email'] = data.get('email','') -# if addr.mobile != data.get('mobile'): -# vals['mobile'] = data.get('mobile','') -# if addr.phone != data.get('phone'): -# vals['phone'] = data.get('phone','') -# if addr.fax != data.get('fax'): -# vals['fax'] = data.get('fax','') -# -# addresss_obj.write(cr, uid, contact_ids, vals, context=context) -# return {'type': 'ir.actions.act_window_close'} - -synchronize_google_contact() - - -class google_login_calendar(osv.osv_memory): - """Gdata Login Object for Google Calendar Import""" - _inherit = 'google.login' - _name = 'google.login' - - def _get_next_action(self, cr, uid, context): - data_obj = self.pool.get('ir.model.data') - data_id = data_obj._get_id(cr, uid, 'import_google', 'view_synchronize_google_calendar_import_form') - - view_id = False - if data_id: - view_id = data_obj.browse(cr, uid, data_id, context=context).res_id - value = { - 'name': _('Import Events'), - 'view_type': 'form', - 'view_mode': 'form,tree', - 'res_model': 'synchronize.google.calendar', - 'view_id': False, - 'context': context, - 'views': [(view_id, 'form')], - 'type': 'ir.actions.act_window', - 'target': 'new', - } - return value -google_login_calendar() - - -class synchronize_google_calendar_events(osv.osv_memory): - """ - Wizard to initiate import specific calendar or all calendars - """ - _name = 'synchronize.google.calendar' - - 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: - raise osv.except_osv('Error !', e.args[0].get('body')) - res.append(('all', 'All Calendars')) - return res - - _columns = { - 'calendar_name': fields.selection(_get_calendars, "Calendar Name", size=32), - } - - _defaults = { - 'calendar_name': 'all', - } - - def import_calendar_events(self, cr, uid, ids, context=None): - if context == None: - context = {} - if not ids: - return {'type': 'ir.actions.act_window_close'} - table = ['Events'] - user_obj = self.pool.get('res.users').browse(cr, uid, uid) - gmail_user = user_obj.gmail_user - gmail_pwd = user_obj.gmail_password - if not gmail_user or not gmail_pwd: - raise osv.except_osv(_('Error'), _("Invalid login detail !\n Specify Username/Password.")) - 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 = import_contact(self, cr, uid, 'import_google', "import_google_calendar", [gmail_user], context) - imp.set_table_list(table) - imp.start() - return {} - -synchronize_google_calendar_events() -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_google/sync_google_calendar.py b/addons/import_google/wizard/google_import_message.py similarity index 64% rename from addons/import_google/sync_google_calendar.py rename to addons/import_google/wizard/google_import_message.py index a8807d355bb..5e2b2b6f4b1 100644 --- a/addons/import_google/sync_google_calendar.py +++ b/addons/import_google/wizard/google_import_message.py @@ -19,19 +19,24 @@ # ############################################################################## -from osv import osv, fields +from osv import osv +from osv import fields -class crm_meeting(osv.osv): - _inherit = "crm.meeting" -crm_meeting() - -class crm_case_categ(osv.osv): - """ Category of Case """ - _inherit = "crm.case.categ" +class google_import_message(osv.osv): + """Import Message""" + + _name = "google.import.message" + _description = "Import Message" _columns = { - 'user_id': fields.many2one('res.users', 'User') - } -crm_case_categ() + 'name': fields.text('Message', readonly=True), + } -# vim:expandtab:smartindent:toabstop=4:softtabstop=4:shiftwidth=4: + def default_get(self, cr, uid, fields, context=None): + if context == None: + context = {} + res = super(google_import_message, self).default_get(cr, uid, fields, context=context) + res.update({'name': context.get('message')}) + return res + +google_import_message() diff --git a/addons/import_google/wizard/google_import_message_view.xml b/addons/import_google/wizard/google_import_message_view.xml new file mode 100644 index 00000000000..0ea8b15f286 --- /dev/null +++ b/addons/import_google/wizard/google_import_message_view.xml @@ -0,0 +1,25 @@ + + + + + + google.import.message.form + google.import.message + form + +
+ + + + + + + +