From c108965792cec46819bc2b60e431287f29fa83b7 Mon Sep 17 00:00:00 2001 From: gw3000 Date: Mon, 19 Jun 2023 22:55:50 +0200 Subject: [PATCH] form to add a new rescuer --- rescuer/forms.py | 37 +++++++++++++++++++ rescuer/templates/rescuer/rescuer_create.html | 4 +- rescuer/views.py | 22 ++++++++++- 3 files changed, 59 insertions(+), 4 deletions(-) create mode 100644 rescuer/forms.py diff --git a/rescuer/forms.py b/rescuer/forms.py new file mode 100644 index 0000000..2f5c3a8 --- /dev/null +++ b/rescuer/forms.py @@ -0,0 +1,37 @@ +from django import forms +from django.utils.translation import gettext_lazy as _ + +from .models import Rescuer + + +class DateInput(forms.DateInput): + input_type = 'date' + + +class RescuerForm(forms.ModelForm): + class Meta: + widgets = {'date_of_birth': DateInput()} + model = Rescuer + fields = [ + "gender", + "first_name", + "last_name", + "street", + "street_number", + "zip_code", + "city", + "state", + "date_of_birth", + "email"] + labels = { + 'gender': _('Geschlecht'), + 'first_name': _('Vorname'), + 'last_name': _('Nachname'), + 'date_of_birth': _('Geburtstag'), + 'street': _('Straße'), + 'street_number': _('Hausnummer'), + 'zip_code': _('Postleitzahl'), + 'city': _('Stadt'), + 'state': _('Land'), + 'email': _('Email'), + } diff --git a/rescuer/templates/rescuer/rescuer_create.html b/rescuer/templates/rescuer/rescuer_create.html index 1c4fb16..7c3ad26 100644 --- a/rescuer/templates/rescuer/rescuer_create.html +++ b/rescuer/templates/rescuer/rescuer_create.html @@ -1,7 +1,7 @@ {% extends 'base.html' %} {% load crispy_forms_tags %} {% block content %} -

Retter anlegen

+

Einen neuen Retter anlegen

@@ -52,4 +52,4 @@
-{% endblock content %} \ No newline at end of file +{% endblock content %} diff --git a/rescuer/views.py b/rescuer/views.py index 232f80f..c09bb21 100644 --- a/rescuer/views.py +++ b/rescuer/views.py @@ -1,5 +1,6 @@ -from django.shortcuts import render +from django.shortcuts import render, redirect +from .forms import RescuerForm from .models import Rescuer @@ -16,4 +17,21 @@ def rescuer_single(request, id): def rescuer_create(request): - return render(request, "rescuer/rescuer_create.html") + form = RescuerForm() + if request.method == 'POST': + form = RescuerForm(request.POST or None) + if form.is_valid(): + fs = form.save(commit=False) + fs.user = request.user + fs.save() + + # set customer id in session cookie + # (uuid has to be cast to a string) + rescuer_id = str(fs.pk) + request.session['rescuer_id'] = rescuer_id + + return redirect('bird_create') + context = { + 'form': form + } + return render(request, 'rescuer/rescuer_create.html', context)