diff --git a/trojstenid/schools/templates/settings/school_create.html b/trojstenid/schools/templates/settings/school_create.html
index 2fb91e2..cc568ad 100644
--- a/trojstenid/schools/templates/settings/school_create.html
+++ b/trojstenid/schools/templates/settings/school_create.html
@@ -41,10 +41,28 @@
Nový záznam o škole
{% endif %}
- {% form form %}
-
-
-
+ {% if confirmation %}
+
+ Podľa zadaných údajov navštevuješ tento školský rok
+ {{ current_year }} na škole {{ school }}.
+ Je to správne?
+
+
+
+ {% for field in form %}
+ {{ field.as_hidden }}
+ {% endfor %}
+
+
+
+
+
+ {% else %}
+ {% form form %}
+
+
+
+ {% endif %}
{% endif %}
diff --git a/trojstenid/schools/views.py b/trojstenid/schools/views.py
index 7c74c05..5432991 100644
--- a/trojstenid/schools/views.py
+++ b/trojstenid/schools/views.py
@@ -6,6 +6,7 @@
from django.db.models import QuerySet
from django.http import HttpResponseRedirect
from django.urls import reverse
+from django.utils import timezone
from django.utils.functional import cached_property
from django.views.generic import FormView, ListView, TemplateView
@@ -49,23 +50,32 @@ def get_context_data(self, **kwargs: Any) -> dict[str, Any]:
ctx["school"] = self.school
return ctx
- @transaction.atomic
- def form_valid(self, form: SchoolRecordForm): # pyright: ignore
- assert isinstance(self.request.user, User)
-
+ def build_record(self, form: SchoolRecordForm) -> UserSchoolRecord:
type_id, year = form.cleaned_data["start_year"].split(":")
- start_date = form.cleaned_data["start_date"]
- end_date = form.cleaned_data["end_date"]
-
- UserSchoolRecord.objects.end_active(self.request.user, start_date)
- record = UserSchoolRecord(
+ return UserSchoolRecord(
user=self.request.user,
school=self.school,
- start_date=start_date,
- end_date=end_date,
+ start_date=form.cleaned_data["start_date"],
+ end_date=form.cleaned_data["end_date"],
school_type_id=type_id,
- start_year=year,
+ start_year=int(year),
)
+
+ def form_valid(self, form: SchoolRecordForm): # pyright: ignore
+ record = self.build_record(form)
+ if not self.request.POST.get("confirmed"):
+ ctx = self.get_context_data(form=form)
+ ctx["confirmation"] = True
+ current_year = record.get_current_year_display(timezone.now().date())
+ ctx["current_year"] = f"{current_year} ({record.school_type.short})"
+ return self.render_to_response(ctx)
+
+ return self.save_record(form, record)
+
+ @transaction.atomic
+ def save_record(self, form: SchoolRecordForm, record: UserSchoolRecord):
+ assert isinstance(self.request.user, User)
+ UserSchoolRecord.objects.end_active(self.request.user, record.start_date)
try:
record.full_clean()
except ValidationError as e: