Server IP : 127.0.0.2 / Your IP : 13.58.229.23 Web Server : Apache/2.4.18 (Ubuntu) System : User : www-data ( ) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : disk_free_space,disk_total_space,diskfreespace,dl,exec,fpaththru,getmyuid,getmypid,highlight_file,ignore_user_abord,leak,listen,link,opcache_get_configuration,opcache_get_status,passthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,php_uname,phpinfo,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,pclose,popen,proc_open,proc_close,proc_get_status,proc_nice,proc_terminate,shell_exec,source,show_source,system,virtual MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /opt/odoo/addons/google_calendar/controllers/ |
Upload File : |
# -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo import http from odoo.http import request class GoogleCalendarController(http.Controller): @http.route('/google_calendar/sync_data', type='json', auth='user') def sync_data(self, arch, fields, model, **kw): """ This route/function is called when we want to synchronize openERP calendar with Google Calendar Function return a dictionary with the status : need_config_from_admin, need_auth, need_refresh, success if not calendar_event The dictionary may contains an url, to allow OpenERP Client to redirect user on this URL for authorization for example """ if model == 'calendar.event': GoogleService = request.env['google.service'] GoogleCal = request.env['google.calendar'] # Checking that admin have already configured Google API for google synchronization ! context = kw.get('local_context', {}) client_id = GoogleService.with_context(context).get_client_id('calendar') if not client_id or client_id == '': action_id = '' if GoogleCal.can_authorize_google(): action_id = request.env.ref('google_calendar.action_config_settings_google_calendar').id return { "status": "need_config_from_admin", "url": '', "action": action_id } # Checking that user have already accepted OpenERP to access his calendar ! if GoogleCal.need_authorize(): url = GoogleCal.with_context(context).authorize_google_uri(from_url=kw.get('fromurl')) return { "status": "need_auth", "url": url } # If App authorized, and user access accepted, We launch the synchronization return GoogleCal.with_context(context).synchronize_events() return {"status": "success"} @http.route('/google_calendar/remove_references', type='json', auth='user') def remove_references(self, model, **kw): """ This route/function is called when we want to remove all the references between one calendar OpenERP and one Google Calendar """ status = "NOP" if model == 'calendar.event': GoogleCal = request.env['google.calendar'] # Checking that user have already accepted OpenERP to access his calendar ! context = kw.get('local_context', {}) if GoogleCal.with_context(context).remove_references(): status = "OK" else: status = "KO" return {"status": status}