icon for quest types

This commit is contained in:
Laura Klünder 2024-12-25 21:29:53 +01:00
parent 10d49e9ebb
commit 4c1fbb3b21
3 changed files with 9 additions and 2 deletions

View file

@ -18,6 +18,11 @@ from c3nav.mapdata.views import set_tile_access_cookie
updates_api_router = APIRouter(tags=["updates"]) updates_api_router = APIRouter(tags=["updates"])
class QuestTypeSchema(BaseSchema):
label: str
icon: str
class UserDataSchema(BaseSchema): class UserDataSchema(BaseSchema):
# use in more places # use in more places
logged_in: bool = APIField( logged_in: bool = APIField(
@ -60,7 +65,7 @@ class UserDataSchema(BaseSchema):
example=[2, 5], example=[2, 5],
) )
overlays: list[DataOverlaySchema] overlays: list[DataOverlaySchema]
quests: dict[str, str] quests: dict[str, QuestTypeSchema]
class FetchUpdatesResponseSchema(BaseSchema): class FetchUpdatesResponseSchema(BaseSchema):

View file

@ -46,6 +46,7 @@ class RangingBeaconAltitudeQuestForm(ChangeSetModelForm):
class RangingBeaconAltitudeQuest(Quest): class RangingBeaconAltitudeQuest(Quest):
quest_type = "ranging_beacon_altitude" quest_type = "ranging_beacon_altitude"
quest_type_label = _('Ranging Beacon Altitude') quest_type_label = _('Ranging Beacon Altitude')
quest_type_icon = "router"
form_class = RangingBeaconAltitudeQuestForm form_class = RangingBeaconAltitudeQuestForm
obj: RangingBeacon obj: RangingBeacon
@ -74,6 +75,7 @@ class LeaveDescriptionQuestForm(I18nModelFormMixin, ChangeSetModelForm):
class LeaveDescriptionQuest(Quest): class LeaveDescriptionQuest(Quest):
quest_type = "leave_description" quest_type = "leave_description"
quest_type_label = _('Leave Description') quest_type_label = _('Leave Description')
quest_type_icon = "logout"
form_class = LeaveDescriptionQuestForm form_class = LeaveDescriptionQuestForm
obj: ClassVar obj: ClassVar
space: Space space: Space

View file

@ -41,7 +41,7 @@ def get_user_data(request):
for overlay in DataOverlay.qs_for_request(request) for overlay in DataOverlay.qs_for_request(request)
], ],
'quests': ( 'quests': (
{key: quest.quest_type_label {key: {"label": quest.quest_type_label, "icon": quest.quest_type_icon}
for key, quest in quest_types.items() for key, quest in quest_types.items()
if request.user.is_superuser or request.user_permissions.quests} if request.user.is_superuser or request.user_permissions.quests}
), ),