Schule als Staat Projekt Web, Dokumente, etc.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

121 lignes
4.6KB

  1. from django.shortcuts import render
  2. from django import forms
  3. from captcha.fields import CaptchaField
  4. from .models import Betrieb, Partei, PresidentCandidate, Question
  5. class BetriebForm(forms.Form):
  6. name = forms.CharField(label='Name des Betriebs', max_length=100)
  7. manager = forms.CharField(label='Betriebsleiter', max_length=200)
  8. email = forms.EmailField(label='Kontakt Email')
  9. business_idea = forms.CharField(label='Idee', widget=forms.Textarea)
  10. captcha = CaptchaField()
  11. class ParteiForm(forms.Form):
  12. name = forms.CharField(label='Name der Partei', max_length=100)
  13. abbreviation = forms.CharField(label='Abkürzung', max_length=5)
  14. chef = forms.CharField(label='Parteivorsitzende', max_length=200)
  15. email = forms.EmailField(label='Kontakt Email')
  16. description = forms.CharField(label='Beschreibung', widget=forms.Textarea)
  17. captcha = CaptchaField()
  18. class PresidentForm(forms.Form):
  19. name = forms.CharField(label='Name', max_length=100)
  20. email = forms.EmailField(label='Kontakt Email')
  21. motivation = forms.CharField(label='Motivation', widget=forms.Textarea)
  22. captcha = CaptchaField()
  23. class QuestionForm(forms.Form):
  24. subject = forms.CharField(label='Thema', max_length=100)
  25. email = forms.EmailField(label='Kontakt Email')
  26. content = forms.CharField(label='Frage', widget=forms.Textarea)
  27. captcha = CaptchaField()
  28. # Create your views here.
  29. def index(request):
  30. return render(request, "meingoethopia/index.html")
  31. def betrieb_new(request):
  32. if request.method == 'POST':
  33. form = BetriebForm(request.POST)
  34. if form.is_valid():
  35. betrieb = Betrieb(name=form.cleaned_data.get('name'),
  36. manager=form.cleaned_data.get('manager'),
  37. email=form.cleaned_data.get('email'),
  38. business_idea=form.cleaned_data.get('business_idea'),
  39. ip_address=get_client_ip(request),
  40. confirmed=False)
  41. betrieb.save()
  42. return render_confirmation(request)
  43. else:
  44. form = BetriebForm()
  45. return render(request, "meingoethopia/betrieb_new.html", {'form': form})
  46. def partei_new(request):
  47. if request.method == 'POST':
  48. form = ParteiForm(request.POST)
  49. if form.is_valid():
  50. partei = Partei(name=form.cleaned_data.get('name'),
  51. abbreviation=form.cleaned_data.get('abbreviation'),
  52. chef=form.cleaned_data.get('chef'),
  53. email=form.cleaned_data.get('email'),
  54. description=form.cleaned_data.get('description'),
  55. ip_address=get_client_ip(request),
  56. confirmed=False)
  57. partei.save()
  58. return render_confirmation(request)
  59. else:
  60. form = ParteiForm()
  61. return render(request, "meingoethopia/partei_new.html", {'form': form})
  62. def praesident_werden(request):
  63. if request.method == 'POST':
  64. form = PresidentForm(request.POST)
  65. if form.is_valid():
  66. president = PresidentCandidate(name=form.cleaned_data.get('name'),
  67. email=form.cleaned_data.get('email'),
  68. motivation=form.cleaned_data.get('motivation'),
  69. ip_address=get_client_ip(request),
  70. confirmed=False)
  71. president.save()
  72. return render_confirmation(request)
  73. else:
  74. form = PresidentForm()
  75. return render(request, "meingoethopia/president.html", {'form': form})
  76. def question_new(request):
  77. if request.method == 'POST':
  78. form = QuestionForm(request.POST)
  79. if form.is_valid():
  80. question = Question(subject=form.cleaned_data.get('subject'),
  81. email=form.cleaned_data.get('email'),
  82. content=form.cleaned_data.get('content'),
  83. ip_address=get_client_ip(request),
  84. answered=False)
  85. question.save()
  86. return render_confirmation(request)
  87. else:
  88. form = QuestionForm()
  89. return render(request, "meingoethopia/question_new.html", {'form': form})
  90. def render_confirmation(request):
  91. return render(request, "meingoethopia/confirmed.html")
  92. def get_client_ip(request):
  93. x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
  94. if x_forwarded_for:
  95. ip = x_forwarded_for.split(',')[0]
  96. else:
  97. ip = request.META.get('REMOTE_ADDR')
  98. return ip