calendar.py 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. # -*- coding: utf-8 -*-
  2. import re
  3. import tg
  4. from tg import tmpl_context
  5. from tracim.lib.base import BaseController
  6. from tracim.lib.calendar import CalendarManager
  7. from tracim.model.serializers import Context
  8. from tracim.model.serializers import CTX
  9. from tracim.model.serializers import DictLikeClass
  10. class CalendarController(BaseController):
  11. """
  12. Calendar web tracim page.
  13. """
  14. @tg.expose('tracim.templates.calendar.iframe_container')
  15. def index(self):
  16. user = tmpl_context.identity.get('user')
  17. dictified_current_user = Context(CTX.CURRENT_USER).toDict(user)
  18. fake_api = DictLikeClass(
  19. current_user=dictified_current_user,
  20. )
  21. return DictLikeClass(fake_api=fake_api)
  22. class CalendarConfigController(BaseController):
  23. """
  24. CalDavZap javascript config generation
  25. """
  26. @tg.expose('tracim.templates.calendar.config')
  27. def index(self):
  28. # TODO BS 20160720: S'assurer d'être identifié !
  29. user = tmpl_context.identity.get('user')
  30. dictified_current_user = Context(CTX.CURRENT_USER).toDict(user)
  31. fake_api = DictLikeClass(
  32. current_user=dictified_current_user,
  33. )
  34. user_base_url = CalendarManager.get_user_base_url()
  35. workspace_base_url = CalendarManager.get_workspace_base_url()
  36. workspace_calendar_urls = CalendarManager\
  37. .get_workspace_readable_calendars_urls_for_user(user)
  38. base_href_url = \
  39. re.sub(r"^http[s]?://", '', CalendarManager.get_base_url())
  40. # Template will use User.auth_token, ensure it's validity
  41. user.ensure_auth_token()
  42. return DictLikeClass(
  43. fake_api=fake_api,
  44. user_base_url=user_base_url,
  45. workspace_base_url=workspace_base_url,
  46. workspace_clendar_urls=workspace_calendar_urls,
  47. auth_token=user.auth_token,
  48. base_href_url=base_href_url,
  49. )