From 2d7342c0d555ab6ae16bfa3d148ab3c50cea0fc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Kucharczyk?= Date: Sat, 8 Feb 2025 17:54:03 +0100 Subject: [PATCH] Fix add/edit session screen --- games/forms.py | 11 ++++++++--- games/views/session.py | 5 +++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/games/forms.py b/games/forms.py index ae38f34..f4681cc 100644 --- a/games/forms.py +++ b/games/forms.py @@ -11,13 +11,18 @@ custom_datetime_widget = forms.DateTimeInput( autofocus_input_widget = forms.TextInput(attrs={"autofocus": "autofocus"}) -class GameChoiceField(forms.ModelMultipleChoiceField): +class MultipleGameChoiceField(forms.ModelMultipleChoiceField): + def label_from_instance(self, obj) -> str: + return f"{obj.sort_name} ({obj.platform}, {obj.year_released})" + + +class SingleGameChoiceField(forms.ModelChoiceField): def label_from_instance(self, obj) -> str: return f"{obj.sort_name} ({obj.platform}, {obj.year_released})" class SessionForm(forms.ModelForm): - game = GameChoiceField( + game = SingleGameChoiceField( queryset=Game.objects.order_by("sort_name"), widget=forms.Select(attrs={"autofocus": "autofocus"}), ) @@ -84,7 +89,7 @@ class PurchaseForm(forms.ModelForm): } ) - games = GameChoiceField( + games = MultipleGameChoiceField( queryset=Game.objects.order_by("sort_name"), widget=IncludePlatformSelect(attrs={"autoselect": "autoselect"}), ) diff --git a/games/views/session.py b/games/views/session.py index 182573a..d1e456c 100644 --- a/games/views/session.py +++ b/games/views/session.py @@ -215,7 +215,8 @@ def add_session(request: HttpRequest, game_id: int = 0) -> HttpResponse: form = SessionForm(initial=initial) context["title"] = "Add New Session" - context["script_name"] = "add_session.js" + # TODO: re-add custom buttons #91 + # context["script_name"] = "add_session.js" context["form"] = form return render(request, "add.html", context) @@ -231,7 +232,7 @@ def edit_session(request: HttpRequest, session_id: int) -> HttpResponse: return redirect("list_sessions") context["title"] = "Edit Session" context["form"] = form - return render(request, "add_session.html", context) + return render(request, "add.html", context) def clone_session_by_id(session_id: int) -> Session: