Add status, mastered to Game

This commit is contained in:
2025-02-04 20:09:05 +01:00
parent b2b69339b3
commit b22e185d47
7 changed files with 193 additions and 1 deletions

View File

@ -24,6 +24,12 @@ class SessionForm(forms.ModelForm):
device = forms.ModelChoiceField(queryset=Device.objects.order_by("name"))
mark_as_played = forms.BooleanField(
required=False,
initial={"mark_as_played": True},
label="Set game status to Played if Unplayed",
)
class Meta:
widgets = {
"timestamp_start": custom_datetime_widget,
@ -38,8 +44,21 @@ class SessionForm(forms.ModelForm):
"emulated",
"device",
"note",
"mark_as_played",
]
def save(self, commit=True):
session = super().save(commit=False)
if self.cleaned_data.get("mark_as_played"):
game_instance = session.game
if game_instance.status == "u":
game_instance.status = "p"
if commit:
game_instance.save()
if commit:
session.save()
return session
class IncludePlatformSelect(forms.SelectMultiple):
def create_option(self, name, value, *args, **kwargs):
@ -143,7 +162,14 @@ class GameForm(forms.ModelForm):
class Meta:
model = Game
fields = ["name", "sort_name", "platform", "year_released", "wikidata"]
fields = [
"name",
"sort_name",
"platform",
"year_released",
"status",
"wikidata",
]
widgets = {"name": autofocus_input_widget}