summaryrefslogtreecommitdiff
path: root/addons/calendar/controllers
diff options
context:
space:
mode:
authorjke-openerp <jke@openerp.com>2013-12-19 15:47:39 +0100
committerjke-openerp <jke@openerp.com>2013-12-19 15:47:39 +0100
commitdd285d23af8060557f3bf5c5c1f7205e5bbdf8a5 (patch)
tree1bab344ffebe5389d01106262e569c385116ae08 /addons/calendar/controllers
parent3d04737ab1827879071a3e988394314d849f3948 (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__.py3
-rw-r--r--addons/calendar/controllers/main.py90
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
+