|
@@ -30,6 +30,9 @@ CALENDAR_TYPE_WORKSPACE = WorkspaceCalendar
|
30
|
30
|
CALENDAR_USER_URL_TEMPLATE = 'user/{id}.ics/'
|
31
|
31
|
CALENDAR_WORKSPACE_URL_TEMPLATE = 'workspace/{id}.ics/'
|
32
|
32
|
|
|
33
|
+CALENDAR_USER_BASE_URL = '/user/'
|
|
34
|
+CALENDAR_WORKSPACE_BASE_URL = '/workspace/'
|
|
35
|
+
|
33
|
36
|
|
34
|
37
|
class CalendarManager(object):
|
35
|
38
|
@classmethod
|
|
@@ -39,6 +42,18 @@ class CalendarManager(object):
|
39
|
42
|
return cfg.RADICALE_CLIENT_BASE_URL_TEMPLATE
|
40
|
43
|
|
41
|
44
|
@classmethod
|
|
45
|
+ def get_user_base_url(cls):
|
|
46
|
+ from tracim.config.app_cfg import CFG
|
|
47
|
+ cfg = CFG.get_instance()
|
|
48
|
+ return os.path.join(cfg.RADICALE_CLIENT_BASE_URL_TEMPLATE, 'user/')
|
|
49
|
+
|
|
50
|
+ @classmethod
|
|
51
|
+ def get_workspace_base_url(cls):
|
|
52
|
+ from tracim.config.app_cfg import CFG
|
|
53
|
+ cfg = CFG.get_instance()
|
|
54
|
+ return os.path.join(cfg.RADICALE_CLIENT_BASE_URL_TEMPLATE, 'workspace/')
|
|
55
|
+
|
|
56
|
+ @classmethod
|
42
|
57
|
def get_user_calendar_url(cls, user_id: int):
|
43
|
58
|
user_path = CALENDAR_USER_URL_TEMPLATE.format(id=str(user_id))
|
44
|
59
|
return os.path.join(cls.get_base_url(), user_path)
|
|
@@ -262,8 +277,9 @@ class CalendarManager(object):
|
262
|
277
|
}
|
263
|
278
|
|
264
|
279
|
@classmethod
|
265
|
|
- def get_readable_calendars_urls_for_user(cls, user: User) -> [str]:
|
266
|
|
- calendar_urls = [cls.get_user_calendar_url(user.user_id)]
|
|
280
|
+ def get_workspace_readable_calendars_urls_for_user(cls, user: User)\
|
|
281
|
+ -> [str]:
|
|
282
|
+ calendar_urls = []
|
267
|
283
|
workspace_api = WorkspaceApi(user)
|
268
|
284
|
for workspace in workspace_api.get_all_for_user(user):
|
269
|
285
|
if workspace.calendar_enabled:
|
|
@@ -272,3 +288,12 @@ class CalendarManager(object):
|
272
|
288
|
))
|
273
|
289
|
|
274
|
290
|
return calendar_urls
|
|
291
|
+
|
|
292
|
+ def is_discovery_path(self, path: str) -> bool:
|
|
293
|
+ """
|
|
294
|
+ If collection url in one of them, Caldav client is tring to discover
|
|
295
|
+ collections.
|
|
296
|
+ :param path: collection path
|
|
297
|
+ :return: True if given collection path is an discover path
|
|
298
|
+ """
|
|
299
|
+ return path in ('user', 'workspace')
|