|
- from django.shortcuts import render
- from django import forms
- from django.conf import settings
- from captcha.fields import CaptchaField
- from .models import Betrieb, Partei, PresidentCandidate, Question
- from .mailutils import send_from_arbeitsministerium, send_from_info
-
-
- class BetriebForm(forms.Form):
- name = forms.CharField(label='Name des Betriebs', max_length=100)
- manager = forms.CharField(label='Betriebsleiter', max_length=200)
- email = forms.EmailField(label='Kontakt Email')
- business_idea = forms.CharField(label='Idee', widget=forms.Textarea)
- captcha = CaptchaField()
-
-
- class ParteiForm(forms.Form):
- name = forms.CharField(label='Name der Partei', max_length=100)
- abbreviation = forms.CharField(label='Abkürzung', max_length=5)
- chef = forms.CharField(label='Parteivorsitzende', max_length=200)
- email = forms.EmailField(label='Kontakt Email')
- description = forms.CharField(label='Beschreibung', widget=forms.Textarea)
- captcha = CaptchaField()
-
-
- class PresidentForm(forms.Form):
- name = forms.CharField(label='Name', max_length=100)
- email = forms.EmailField(label='Kontakt Email')
- motivation = forms.CharField(label='Motivation', widget=forms.Textarea)
- captcha = CaptchaField()
-
-
- class QuestionForm(forms.Form):
- subject = forms.CharField(label='Thema', max_length=100)
- email = forms.EmailField(label='Kontakt Email')
- content = forms.CharField(label='Frage', widget=forms.Textarea)
- captcha = CaptchaField()
-
-
- # Create your views here.
- def index(request):
- return render(request, "meingoethopia/index.html")
-
-
- def betrieb_new(request):
- if request.method == 'POST':
- form = BetriebForm(request.POST)
- if form.is_valid():
- betrieb = Betrieb(name=form.cleaned_data.get('name'),
- manager=form.cleaned_data.get('manager'),
- email=form.cleaned_data.get('email'),
- business_idea=form.cleaned_data.get('business_idea'),
- ip_address=get_client_ip(request),
- confirmed=False)
- betrieb.save()
- send_from_arbeitsministerium(
- 'Anmeldung des Betriebs: {}'.format(betrieb.name),
- MAIL_CONTENT_BETRIEB.format(name=betrieb.manager), [betrieb.email]
- )
- return render(request, 'meingoethopia/confirmed.html',
- {'betrieb': betrieb})
- else:
- form = BetriebForm()
- return render(request, "meingoethopia/betrieb_new.html", {'form': form})
-
-
- def partei_new(request):
- if request.method == 'POST':
- form = ParteiForm(request.POST)
- if form.is_valid():
- partei = Partei(name=form.cleaned_data.get('name'),
- abbreviation=form.cleaned_data.get('abbreviation'),
- chef=form.cleaned_data.get('chef'),
- email=form.cleaned_data.get('email'),
- description=form.cleaned_data.get('description'),
- ip_address=get_client_ip(request),
- confirmed=False)
- partei.save()
- return render_confirmation(request)
- else:
- form = ParteiForm()
- return render(request, "meingoethopia/partei_new.html", {'form': form})
-
-
- def praesident_werden(request):
- if request.method == 'POST':
- form = PresidentForm(request.POST)
- if form.is_valid():
- president = PresidentCandidate(name=form.cleaned_data.get('name'),
- email=form.cleaned_data.get('email'),
- motivation=form.cleaned_data.get('motivation'),
- ip_address=get_client_ip(request),
- confirmed=False)
- president.save()
- return render_confirmation(request)
- else:
- form = PresidentForm()
- return render(request, "meingoethopia/president.html", {'form': form})
-
-
- def question_new(request):
- if request.method == 'POST':
- form = QuestionForm(request.POST)
- if form.is_valid():
- question = Question(subject=form.cleaned_data.get('subject'),
- email=form.cleaned_data.get('email'),
- content=form.cleaned_data.get('content'),
- ip_address=get_client_ip(request),
- answered=False)
- question.save()
- send_from_info(question.subject, question.content,
- settings.EMAIL_INFO, reply_to=[question.email])
- return render_confirmation(request)
- else:
- form = QuestionForm()
- return render(request, "meingoethopia/question_new.html", {'form': form})
-
-
- def render_confirmation(request):
- return render(request, "meingoethopia/confirmed.html")
-
-
- def get_client_ip(request):
- x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
- if x_forwarded_for:
- ip = x_forwarded_for.split(',')[0]
- else:
- ip = request.META.get('REMOTE_ADDR')
- return ip
-
-
- MAIL_CONTENT_BETRIEB = "Lieber {name},\nvielen Dank für die Anmeldung Deines" \
- " Betriebes. Die Informationsveranstaltungen beginnen erst im Februar, deshalb\n" \
- "wird sich das Arbeitsministerium dann erst mit Dir in Verbindung setzen.\n\n" \
- "Bei weiteren Fragen kannst du gerne info@goethopia.de anschreiben, oder \n" \
- "uns direkt über arbeitsministerium@goethopia.de erreichen, wenn es um einen \n" \
- "Betrieb geht. Darüber hinaus möchten wir dich darauf hinweisen, dass du Parteien, \n" \
- "die mit deinen Interessen als Betriebsleiter übereinstimmen, natürlich tatkräftig \n" \
- "unterstützen kannst in Form von Mitgliedschaft oder Unterstützung per Unterschrift.\n\n" \
- "Viele Grüße,\n" \
- "Organisation Goethopia"
|