change db model to improve atomic database

This commit is contained in:
Federico Justus Denkena 2023-10-24 11:02:47 +02:00
parent 8f95e89826
commit 959c588c97
Signed by: f-denkena
GPG Key ID: 28F91C66EE36F382
9 changed files with 54 additions and 11 deletions

View File

@ -13,6 +13,7 @@ sub{bottom:-0.25em}sup{top:-0.5em}figure{margin:1em 40px}img{border-style:none}
code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}hr{box-sizing:content-box;height:0;overflow:visible}
button,input,select,textarea,optgroup{font:inherit;margin:0}optgroup{font-weight:bold}
#id_gender,#id_food{display:flex;justify-content:center}
label{padding-right:7px}
input{padding:8px;border:1px solid #ccc;border-radius:4px;height:32px}
button,input{overflow:visible}button,select{text-transform:none}
button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}

View File

@ -4,11 +4,12 @@
{% block content %}
<section class="dc-container dc-padding">
<h1 class="dc-xxlarge dc-center dc-padding"">Anmeldung</h1>
<h1 class="dc-xxlarge dc-center dc-padding">Anmeldung</h1>
<div class="dc-container dc-padding">
<div class="dc-container dc-round-small dc-center dc-padding"">
<div class="dc-container dc-round-small dc-center dc-padding dc-light-gray">
<form action="" style="margin:auto" class="dc-container dc-form" method="post">
{% csrf_token %}
<div class="dc-half dc-container">
<input type="hidden" name="form_type" value="register">
{{ register_form.non_field_errors }}
<div class="dc-container">
@ -35,6 +36,7 @@
{{ register_form.birthdate.errors }}
<label class="dc-center dc-padding"" for="{{ register_form.birthdate.id_for_label }}">Geburtsdatum:</label>
<div style="padding-bottom:7px" class="dc-center dc-padding"">{{register_form.birthdate }}</div></div>
</div><div class="dc-half dc-container">
<div class="dc-container dc-padding-top">
{{ register_form.gender.errors }}
<label class="dc-center dc-padding"" for="{{ register_form.gender.id_for_label }}">Geschlecht:<div style="padding-bottom:7px" class="dc-center dc-padding"">{{register_form.gender }}</div></label>
@ -59,19 +61,15 @@
{{ register_form.publish_phone.errors }}
<label class="dc-center dc-padding"" for="{{ register_form.publish_phone.id_for_label }}">Telefonnummer für alle Teilnehmer veröffentlichen?</label>
<div style="padding-bottom:7px" class="dc-center dc-padding"">{{register_form.publish_phone }}</div></div>
</div><div class="dc-container dc-padding-top">
<div class="dc-container dc-padding-top">
{{ register_form.info.errors }}
<label class="dc-center dc-padding"" for="{{ register_form.info.id_for_label }}">Wie hast du von der Tagung erfahren?</label>
<div style="padding-bottom:7px" class="dc-center dc-padding"">{{register_form.info }}</div></div>
<div class="dc-container dc-padding-top">
{{ register_form.message.errors }}
<label class="dc-center dc-padding"" for="{{ register_form.message.id_for_label }}">Weitere Nachrichten an uns:</label>
<div style="padding-bottom:7px" class="dc-center dc-padding"">{{register_form.message }}</div></div>
<input style="width:100%" class="dc-padding-small dc-border-small dc-button dc-border-white" type="submit" value="Senden">
</form>
</div>

View File

@ -1,3 +1,4 @@
from django.contrib import admin
from .models import Registrant
# Register your models here.
admin.site.register(Registrant)

View File

@ -0,0 +1,30 @@
# Generated by Django 4.2.6 on 2023-10-24 09:02
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('website', '0003_registrant_slug_alter_registrant_address'),
]
operations = [
migrations.RenameField(
model_name='registrant',
old_name='address',
new_name='address_street',
),
migrations.AddField(
model_name='registrant',
name='address_plz',
field=models.CharField(default=0, max_length=7),
preserve_default=False,
),
migrations.AddField(
model_name='registrant',
name='address_town',
field=models.CharField(default=0, max_length=33),
preserve_default=False,
),
]

View File

@ -53,7 +53,9 @@ class Registrant(models.Model):
mail = models.EmailField()
phone = models.CharField(max_length=21)
rate_reduced = models.BooleanField()
address = models.CharField(max_length=256)
address_street = models.CharField(max_length=256)
address_plz = models.CharField(max_length=7)
address_town = models.CharField(max_length=33)
birthdate = models.DateField()
gender = models.CharField(max_length=32, blank=False, choices=GESCHLECHTER)
food = models.CharField(max_length=32, blank=False, choices=ERNÄHRUNG)
@ -72,6 +74,6 @@ class Registrant(models.Model):
class RegisterForm(ModelForm):
class Meta:
model = Registrant
fields = ["name","mail","phone","rate_reduced","address","birthdate","gender","food","music","cake","publish_address","publish_phone","info","message"]
fields = ["name","mail","phone","rate_reduced","address_street","address_plz","address_town","birthdate","gender","food","music","cake","publish_address","publish_phone","info","message"]
gender = forms.ChoiceField(widget=forms.RadioSelect,choices=GESCHLECHTER)
food = forms.ChoiceField(widget=forms.RadioSelect,choices=ERNÄHRUNG)

View File

@ -74,6 +74,17 @@ def impressum(request):
return render(request, 'impressum.html')
def anmeldung(request):
register_form = RegisterForm()
if request.method == 'POST':
register_form = RegisterForm(request.POST)
if register_form.is_valid():
register_form.save()
register_form = RegisterForm()
else:
return render(request, 'homepage.html')
try:
if not register_form:
register_form = RegisterForm()
except UnboundLocalError:
register_form = RegisterForm()
context = {"register_form": register_form}
return render(request, 'anmeldung.html', context)