calendar.py 2.0KB

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