use main_level_id for quest level id

This commit is contained in:
Laura Klünder 2024-12-25 13:19:15 +01:00
parent 5fa42ff35d
commit b28b44a4d5
3 changed files with 10 additions and 2 deletions

View file

@ -41,6 +41,13 @@ class SpaceGeometryMixin(GeometryMixin):
except ObjectDoesNotExist:
return None
@cached_property
def main_level_id(self):
try:
return self.space.level.on_top_of_id or self.space.level_id
except ObjectDoesNotExist:
return None
def get_geojson_properties(self, *args, **kwargs) -> dict:
result = super().get_geojson_properties(*args, **kwargs)
if hasattr(self, 'get_color'):

View file

@ -23,7 +23,7 @@ class Quest:
@property
def level_id(self) -> int:
return self.obj.level_id
return self.obj.main_level_id
@property
def identifier(self) -> str:

View file

@ -49,4 +49,5 @@ class RangingBeaconAltitudeQuest(Quest):
@classmethod
def _qs_for_request(cls, request):
return RangingBeacon.qs_for_request(request).select_related('space').filter(altitude_quest=True)
return RangingBeacon.qs_for_request(request).select_related('space',
'space__level').filter(altitude_quest=True)