diff options
| author | jke-openerp <jke@openerp.com> | 2013-12-19 15:47:39 +0100 |
|---|---|---|
| committer | jke-openerp <jke@openerp.com> | 2013-12-19 15:47:39 +0100 |
| commit | dd285d23af8060557f3bf5c5c1f7205e5bbdf8a5 (patch) | |
| tree | 1bab344ffebe5389d01106262e569c385116ae08 /addons/calendar/controllers | |
| parent | 3d04737ab1827879071a3e988394314d849f3948 (diff) | |
[TYPO] Rename base_calendar into calendar
bzr revid: jke@openerp.com-20131219144739-9ic700ycef8uklbc
Diffstat (limited to 'addons/calendar/controllers')
| -rw-r--r-- | addons/calendar/controllers/__init__.py | 3 | ||||
| -rw-r--r-- | addons/calendar/controllers/main.py | 90 |
2 files changed, 93 insertions, 0 deletions
diff --git a/addons/calendar/controllers/__init__.py b/addons/calendar/controllers/__init__.py new file mode 100644 index 00000000000..9f828025b8e --- /dev/null +++ b/addons/calendar/controllers/__init__.py @@ -0,0 +1,3 @@ +import main + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/calendar/controllers/main.py b/addons/calendar/controllers/main.py new file mode 100644 index 00000000000..2b56779cb72 --- /dev/null +++ b/addons/calendar/controllers/main.py @@ -0,0 +1,90 @@ +import simplejson +import urllib +import openerp +import openerp.addons.web.http as http +from openerp.addons.web.http import request +import openerp.addons.web.controllers.main as webmain +import json +from openerp.addons.web.http import SessionExpiredException +from werkzeug.exceptions import BadRequest + +class meeting_invitation(http.Controller): + + def check_security(self, db, token): + registry = openerp.modules.registry.RegistryManager.get(db) + attendee_pool = registry.get('calendar.attendee') + error_message = False + with registry.cursor() as cr: + attendee_id = attendee_pool.search(cr, openerp.SUPERUSER_ID, [('access_token','=',token)]) + if not attendee_id: + # if token is not match + error_message = """Invalid Invitation Token.""" + elif request.session.uid and request.session.login != 'anonymous': + # if valid session but user is not match + attendee = attendee_pool.browse(cr, openerp.SUPERUSER_ID, attendee_id[0]) + user = registry.get('res.users').browse(cr, openerp.SUPERUSER_ID, request.session.uid) + if attendee.partner_id.user_id.id != user.id: + #error_message = """Invitation cannot be forwarded via email. This event/meeting belongs to %s and you are logged in as %s. Please ask organizer to add you.""" % (attendee.email, user.email) + #error_message = "attendee.partner_id.user_id.id != user.id: ", attendee.partner_id.user_id.id ," VS ", user.id + print "ErRRRRRRRRRROOOOOOOrrrrrr" + if error_message: + raise BadRequest(error_message) + return True + + @http.route('/calendar/meeting/accept', type='http', auth="none") + def accept(self, db, token, action, id): + self.check_security(db, token) + registry = openerp.modules.registry.RegistryManager.get(db) + attendee_pool = registry.get('calendar.attendee') + with registry.cursor() as cr: + attendee_id = attendee_pool.search(cr, openerp.SUPERUSER_ID, [('access_token','=',token),('state','!=', 'accepted')]) + if attendee_id: + attendee_pool.do_accept(cr, openerp.SUPERUSER_ID, attendee_id) + return self.view(db, token, action, id, view='form') + + @http.route('/calendar/meeting/decline', type='http', auth="none") + def declined(self, db, token, action, id): + self.check_security(db, token) + registry = openerp.modules.registry.RegistryManager.get(db) + attendee_pool = registry.get('calendar.attendee') + with registry.cursor() as cr: + attendee_id = attendee_pool.search(cr, openerp.SUPERUSER_ID, [('access_token','=',token),('state','!=', 'declined')]) + if attendee_id: + attendee_pool.do_decline(cr, openerp.SUPERUSER_ID, attendee_id) + return self.view(db, token, action, id, view='form') + + @http.route('/calendar/meeting/view', type='http', auth="none") + def view(self, db, token, action, id, view='calendar'): + self.check_security(db, token) + registry = openerp.modules.registry.RegistryManager.get(db) + meeting_pool = registry.get('crm.meeting') + attendee_pool = registry.get('calendar.attendee') + with registry.cursor() as cr: + attendee_data = meeting_pool.get_attendee(cr, openerp.SUPERUSER_ID, id); + attendee = attendee_pool.search_read(cr, openerp.SUPERUSER_ID, [('access_token','=',token)],[]) + + if attendee: + attendee_data['current_attendee'] = attendee[0] + js = "\n ".join('<script type="text/javascript" src="%s"></script>' % i for i in webmain.manifest_list('js', db=db)) + css = "\n ".join('<link rel="stylesheet" href="%s">' % i for i in webmain.manifest_list('css',db=db)) + + return webmain.html_template % { + 'js': js, + 'css': css, + 'modules': simplejson.dumps(webmain.module_boot(db)), + 'init': "s.calendar.event('%s', '%s', '%s', '%s' , '%s');" % (db, action, id, 'form', json.dumps(attendee_data)), + } + + @http.route('/calendar/NextNotify', type='json', auth="none") + def NextNotify(self, type=''): + registry = openerp.modules.registry.RegistryManager.get(request.session.db) + uid = request.session.uid + context = request.session.context + with registry.cursor() as cr: + if type=='GET': + res = registry.get("calendar.alarm_manager").get_next_event(cr,uid,context=context) + return res + elif type=="UPDATE": + res = registry.get("res.partner").update_cal_last_event(cr,uid,context=context) + return res + |
