deliver quest types

This commit is contained in:
Laura Klünder 2024-12-24 20:19:05 +01:00
parent a7cacecdbe
commit 9852171c3e
3 changed files with 9 additions and 5 deletions

View file

@ -60,7 +60,7 @@ class UserDataSchema(BaseSchema):
example=[2, 5], example=[2, 5],
) )
overlays: list[DataOverlaySchema] overlays: list[DataOverlaySchema]
quests: bool quests: dict[str, str]
class FetchUpdatesResponseSchema(BaseSchema): class FetchUpdatesResponseSchema(BaseSchema):

View file

@ -6,6 +6,7 @@ from django.utils.translation import ngettext_lazy
from c3nav.mapdata.models import DataOverlay from c3nav.mapdata.models import DataOverlay
from c3nav.mapdata.models.access import AccessPermission, AccessRestriction from c3nav.mapdata.models.access import AccessPermission, AccessRestriction
from c3nav.mapdata.models.locations import Position from c3nav.mapdata.models.locations import Position
from c3nav.mapdata.quests import quest_types
from c3nav.mapdata.schemas.models import DataOverlaySchema from c3nav.mapdata.schemas.models import DataOverlaySchema
@ -39,7 +40,11 @@ def get_user_data(request):
DataOverlaySchema.model_validate(overlay).model_dump() DataOverlaySchema.model_validate(overlay).model_dump()
for overlay in DataOverlay.qs_for_request(request) for overlay in DataOverlay.qs_for_request(request)
], ],
'quests': bool(request.user.is_superuser or request.user_permissions.quests), 'quests': (
{key: quest.quest_type_label
for key, quest in quest_types.items()
if request.user.is_superuser or request.user_permissions.quests}
),
}) })
return result return result

View file

@ -1925,11 +1925,10 @@ c3nav = {
}, },
_update_quests: function () { _update_quests: function () {
if (!c3nav.map) return; if (!c3nav.map) return;
console.log(c3nav.user_data);
if (c3nav._questsControl) { if (c3nav._questsControl) {
if (!c3nav.user_data.quests) c3nav.map.removeControl(c3nav._questsControl); if (!Object.keys(c3nav.user_data.quests).length) c3nav.map.removeControl(c3nav._questsControl);
} else { } else {
if (c3nav.user_data.quests) c3nav._questsControl = (new QuestsControl()).addTo(c3nav.map); if (Object.keys(c3nav.user_data.quests).length) c3nav._questsControl = (new QuestsControl()).addTo(c3nav.map);
} }
}, },