From d747074fb91908c65c497c399e58b5a4bae69272 Mon Sep 17 00:00:00 2001 From: corbreedy Date: Fri, 29 Oct 2021 09:58:41 +0200 Subject: [PATCH] formular nobot --- hpst/forms.py | 32 ++++++++++++ hpst/static/css/sinnes-tau.css | 9 ++++ hpst/templates/email.html | 3 +- hpst/templates/kontaktformular.html | 5 +- hpst/templates/st_base.html | 79 +++++++++++++++++++---------- hpst/views.py | 19 ++++--- 6 files changed, 106 insertions(+), 41 deletions(-) diff --git a/hpst/forms.py b/hpst/forms.py index 658fab4..ad7a2fd 100644 --- a/hpst/forms.py +++ b/hpst/forms.py @@ -3,6 +3,7 @@ from django import forms class KontaktForm(forms.Form): subject = forms.CharField(widget=forms.HiddenInput()) + stack = forms.CharField(widget=forms.HiddenInput()) from_email = forms.EmailField(required=True, widget= forms.EmailInput (attrs={'class':'w3-input w3-border', @@ -16,3 +17,34 @@ class KontaktForm(forms.Form): widget=forms.Textarea (attrs={'class':'w3-input w3-border', 'placeholder':'Mitteilung'})) + url = forms.CharField(max_length=200, + required=False, + widget= forms.TextInput + (attrs={'class':'w3-input w3-border W3-CleaR','' + 'placeholder':'Url'})) + + def clean(self): + data = super(KontaktForm, self).clean() + url=data.get('url') + if url: + raise forms.ValidationError('Fehler in der URL!', code='invalid') + stackstr = data.get('stack') + stack=stackstr.split(',') + if not stack: + raise forms.ValidationError('Fehler im Stack!', code='invalid') + ktime=0 + ltime=0 + tdiff=0 + for s in stack: + #print (s) + if s[0]=='k': + if(ltime == 0): + ltime=int(s[1:]) + else: + ktime=int(s[1:]) + tdiff+=(ktime-ltime) + ltime=ktime + #print (tdiff) + if(tdiff<10000): + raise forms.ValidationError('Formular wurde zu schnell verarbeitet', code='invalid') + return data diff --git a/hpst/static/css/sinnes-tau.css b/hpst/static/css/sinnes-tau.css index bc1adb3..49c5ee9 100644 --- a/hpst/static/css/sinnes-tau.css +++ b/hpst/static/css/sinnes-tau.css @@ -15,3 +15,12 @@ body, html { font-size: 15px; } +.W3-CleaR{ + opacity: 0; + position: absolute; + top: 0; + left: 0; + height: 0; + width: 0; + z-index: -1;} + diff --git a/hpst/templates/email.html b/hpst/templates/email.html index 6ac98d9..4c4ad83 100644 --- a/hpst/templates/email.html +++ b/hpst/templates/email.html @@ -14,11 +14,10 @@

{{message.titel}}

-

{{messg.titel}}

-

{{message.text}}

{{message.titel}}!

{{message.text}}

+

{{message.error|safe }}

{% if form %} diff --git a/hpst/templates/kontaktformular.html b/hpst/templates/kontaktformular.html index 6f1b7fc..f43d7ee 100644 --- a/hpst/templates/kontaktformular.html +++ b/hpst/templates/kontaktformular.html @@ -17,7 +17,7 @@ {% endif %} -
+ {% csrf_token %} {% for hidden_field in form.hidden_fields %} {{ hidden_field }} @@ -31,7 +31,8 @@
{{ form.message }} - diff --git a/hpst/templates/st_base.html b/hpst/templates/st_base.html index fe241bd..658df70 100644 --- a/hpst/templates/st_base.html +++ b/hpst/templates/st_base.html @@ -61,37 +61,62 @@ diff --git a/hpst/views.py b/hpst/views.py index 3404243..f4efa4e 100644 --- a/hpst/views.py +++ b/hpst/views.py @@ -23,7 +23,7 @@ def index(request): #print(conf_settings.DEBUG) context ={ "termine":termine, - "form":KontaktForm(initial={'subject': 'Kontaktformular - Index - sinnestau.de',}) + "form":KontaktForm(initial={'subject': 'Kontaktformular - Index - sinnestau.de','stack':0,}) } return render(request, "index.html", context) @@ -32,7 +32,6 @@ def wildnispaedagogik(request): context ={ "termine":termine, } - # return response with template and context return render(request, "wildnispaedagogik.html", context) def kinderfreizeit(request): @@ -40,16 +39,14 @@ def kinderfreizeit(request): context ={ "termine":termine, } - # return response with template and context return render(request, "kinderfreizeit.html", context) def lamatour(request): termine=Termin.objects.filter(date__gt=timezone.now()).filter(termintyp='L').order_by( 'date') context ={ "termine":termine, - "form":KontaktForm(initial={'subject': 'Kontaktformular - Lamatour - sinnestau.de',}) + "form":KontaktForm(initial={'subject': 'Kontaktformular - Lamatour - sinnestau.de','stack':0,}) } - # return response with template and context return render(request, "lamatour.html", context) def externereferentin(request): @@ -99,7 +96,6 @@ def termin(request,tid): "termin":termin, "error":error, } - # return response with template and context return render(request, "termin.html", context) def impressum(request): @@ -117,9 +113,9 @@ def contactView(request): "titel": "Kontaktformular", "color": "w3-yellow", "text": 'Hier das Kontaktformular', + "error":"", } if request.method == 'GET': - r_message['titel']="Kontakt Form" form = KontaktForm(initial={'subject': 'Kontaktformular - Kontakt - sinnestau.de',}) else: @@ -131,19 +127,20 @@ def contactView(request): from_email = form.cleaned_data['from_email'] message = form.cleaned_data['message'] name = form.cleaned_data['name'] - text=from_email+'\n.........................\n'+message + text=name+' - '+from_email+' schrieb\n.........................\n'+message newkon=Kontakt.objects.create( name=name, subject=subject, email=from_email, text=text ) - r_message['titel']="Vielen Dank" + r_message['titel']="Vielen Dank "+name r_message['color']="w3-green" r_message['text']="Wir haben Ihre Mitteilung erhalten!" form=None try: - send_mail(subject, text, 'formular@sinnes-tau.de', ['tanja@kuntner.de']) + send_mail(subject, text, from_email , ['info@sinnes-tau.de']) +# send_mail(subject, text, from_email , ['peter@kuntner.de']) except BadHeaderError: return HttpResponse('Invalid header found.') #return redirect('success') @@ -152,6 +149,8 @@ def contactView(request): r_message['titel']="Fehler" r_message['color']="w3-orange" r_message['text']="Ungültiges Formular!" + estr=str(form.errors) + r_message['error']=estr.replace('__all__','Allgemeiner Fehler') form=None return render(request, "email.html", {'form': form,'message':r_message})