Try fixing the splitdatetimefield problem #36

Open
lukas wants to merge 1 commits from fix-splitdatetimefield into main
2 changed files with 31 additions and 8 deletions
Showing only changes of commit 7dfd91421e - Show all commits

View File

@ -4,6 +4,23 @@ from .models import Game, Platform, Purchase, Session
class SessionForm(forms.ModelForm): class SessionForm(forms.ModelForm):
custom_datetime_widget = forms.SplitDateTimeWidget(
date_format=("%d-%m-%Y"),
time_format=("%H:%M"),
date_attrs={"type": "date"},
time_attrs={"type": "time"},
)
timestamp_start = forms.SplitDateTimeField(
input_date_formats="['%d-%m-%Y]",
input_time_formats="['%H:%M']",
widget=custom_datetime_widget,
)
timestamp_end = forms.SplitDateTimeField(
input_date_formats="['%d-%m-%Y]",
input_time_formats="['%H:%M']",
widget=custom_datetime_widget,
)
class Meta: class Meta:
model = Session model = Session
fields = [ fields = [
@ -13,13 +30,15 @@ class SessionForm(forms.ModelForm):
"duration_manual", "duration_manual",
"note", "note",
] ]
custom_datetime_widget = forms.SplitDateTimeWidget(
date_attrs={"type": "date"}, time_attrs={"type": "time"} # fields_classes = {
) # "timestamp_start": custom_datetime_field,
widgets = { # "timestamp_end": custom_datetime_field,
"timestamp_start": custom_datetime_widget, # }
"timestamp_end": custom_datetime_widget, # widgets = {
} # "timestamp_start": custom_datetime_widget,
# "timestamp_end": custom_datetime_widget,
# }
class PurchaseForm(forms.ModelForm): class PurchaseForm(forms.ModelForm):

View File

@ -23,7 +23,11 @@ def add_session(request):
context = {} context = {}
now = now_with_tz() now = now_with_tz()
last = Session.objects.all().last() last = Session.objects.all().last()
initial = {"timestamp_start": now, "purchase": last.purchase} initial = {
"timestamp_start_0": now.date(),
"timestamp_start_1": now.time(),
"purchase": last.purchase,
}
form = SessionForm(request.POST or None, initial=initial) form = SessionForm(request.POST or None, initial=initial)
if form.is_valid(): if form.is_valid():
form.save() form.save()