team-3/src/c3nav/editor/utils.py
Laura Klünder dcdd16d37b fix from_obj
2018-12-10 19:51:47 +01:00

57 lines
1.5 KiB
Python

class DefaultEditUtils:
def __init__(self, request):
self.request = request
@classmethod
def from_obj(cls, obj, request):
return cls(request)
@property
def can_access_child_base_mapdata(self):
return self.request.user_permissions.can_access_base_mapdata
@property
def can_create(self):
return self.can_access_child_base_mapdata
@property
def _geometry_url(self):
return None
@property
def geometry_url(self):
return self._geometry_url if self.can_access_child_base_mapdata else None
class LevelChildEditUtils(DefaultEditUtils):
def __init__(self, level, request):
super().__init__(request)
self.level = level
@classmethod
def from_obj(cls, obj, request):
return cls(obj.level, request)
@property
def _geometry_url(self):
return '/api/editor/geometries/?level=' + str(self.level.primary_level_pk)
class SpaceChildEditUtils(DefaultEditUtils):
def __init__(self, space, request):
super().__init__(request)
self.space = space
@classmethod
def from_obj(cls, obj, request):
return cls(obj.space, request)
@property
def can_access_child_base_mapdata(self):
return (self.request.user_permissions.can_access_base_mapdata or
self.space.base_mapdata_accessible or
self.space.pk in self.request.user_space_accesses)
@property
def _geometry_url(self):
return '/api/editor/geometries/?space='+str(self.space.pk)