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],
)
overlays: list[DataOverlaySchema]
quests: bool
quests: dict[str, str]
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.access import AccessPermission, AccessRestriction
from c3nav.mapdata.models.locations import Position
from c3nav.mapdata.quests import quest_types
from c3nav.mapdata.schemas.models import DataOverlaySchema
@ -39,7 +40,11 @@ def get_user_data(request):
DataOverlaySchema.model_validate(overlay).model_dump()
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

View file

@ -1925,11 +1925,10 @@ c3nav = {
},
_update_quests: function () {
if (!c3nav.map) return;
console.log(c3nav.user_data);
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 {
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);
}
},