diff --git a/web_dev/sas_web/meingoethopia/admin.py b/web_dev/sas_web/meingoethopia/admin.py index f25558d..d5b3d85 100644 --- a/web_dev/sas_web/meingoethopia/admin.py +++ b/web_dev/sas_web/meingoethopia/admin.py @@ -1,5 +1,5 @@ from django.contrib import admin -from .models import Betrieb, Partei, PresidentCandidate +from .models import Betrieb, Partei, PresidentCandidate, Question # Register your models here. @@ -17,6 +17,12 @@ class PresidentAdmin(admin.ModelAdmin): list_display = ('name', 'confirmed') list_filter = ('confirmed',) + +class QuestionAdmin(admin.ModelAdmin): + list_display = ('subject', 'answered') + list_filter = ('answered',) + admin.site.register(Betrieb, BetriebAdmin) admin.site.register(Partei, ParteiAdmin) admin.site.register(PresidentCandidate, PresidentAdmin) +admin.site.register(Question, QuestionAdmin) diff --git a/web_dev/sas_web/meingoethopia/models.py b/web_dev/sas_web/meingoethopia/models.py index 0ad68cd..6139e2e 100644 --- a/web_dev/sas_web/meingoethopia/models.py +++ b/web_dev/sas_web/meingoethopia/models.py @@ -45,3 +45,17 @@ class PresidentCandidate(models.Model): class Meta: verbose_name = 'Präsidentschaftskandidat' verbose_name_plural = 'Präsidentschaftskandidaten' + + +class Question(models.Model): + subject = models.CharField('Betreff', max_length=100) + email = models.EmailField('Kontakt Email') + content = models.TextField('Inhalt') + answered = models.BooleanField('Beantwortet', default=False) + + def __str__(self): + return str(self.subject) + + class Meta: + verbose_name = 'Frage' + verbose_name_plural = 'Fragen' diff --git a/web_dev/sas_web/meingoethopia/templates/meingoethopia/index.html b/web_dev/sas_web/meingoethopia/templates/meingoethopia/index.html index f91ab14..9c97e22 100644 --- a/web_dev/sas_web/meingoethopia/templates/meingoethopia/index.html +++ b/web_dev/sas_web/meingoethopia/templates/meingoethopia/index.html @@ -14,4 +14,11 @@ kandidieren?

  • Als Präsidentin aufstellen lassen
  • +

    Hast du eine Frage, die hier nicht beantwortet wird?
    +Stell sie doch einfach! Unser Team ist gerne für dich da.

    + +

    + {% endblock %} diff --git a/web_dev/sas_web/meingoethopia/templates/meingoethopia/question_new.html b/web_dev/sas_web/meingoethopia/templates/meingoethopia/question_new.html new file mode 100644 index 0000000..2b24fba --- /dev/null +++ b/web_dev/sas_web/meingoethopia/templates/meingoethopia/question_new.html @@ -0,0 +1,14 @@ +{% extends "public/default.html" %} + +{% block content %} +

    Hier kannst Du eine Frage stellen. Vielleicht taucht sie ja bald im neuen FAQ auf!

    + +
    + {% csrf_token %} + + {{ form.as_table }} +
    + +
    + +{% endblock %} diff --git a/web_dev/sas_web/meingoethopia/urls.py b/web_dev/sas_web/meingoethopia/urls.py index 2854710..90ec270 100644 --- a/web_dev/sas_web/meingoethopia/urls.py +++ b/web_dev/sas_web/meingoethopia/urls.py @@ -7,5 +7,6 @@ urlpatterns = [ url(r'^betrieb/anmelden', views.betrieb_new, name='betrieb_new'), url(r'^partei/gruenden', views.partei_new, name='partei_new'), url(r'^praesident/kandidieren', views.praesident_werden, - name='praesident_werden') + name='praesident_werden'), + url(r'^frage/stellen', views.question_new, name='question_new') ] diff --git a/web_dev/sas_web/meingoethopia/views.py b/web_dev/sas_web/meingoethopia/views.py index df5620e..3bec0ca 100644 --- a/web_dev/sas_web/meingoethopia/views.py +++ b/web_dev/sas_web/meingoethopia/views.py @@ -1,6 +1,6 @@ from django.shortcuts import render from django import forms -from .models import Betrieb, Partei, PresidentCandidate +from .models import Betrieb, Partei, PresidentCandidate, Question class BetriebForm(forms.Form): @@ -24,6 +24,12 @@ class PresidentForm(forms.Form): motivation = forms.CharField(label='Motivation') +class QuestionForm(forms.Form): + subject = forms.CharField(label='Thema', max_length=100) + email = forms.EmailField(label='Kontakt Email') + content = forms.CharField(label='Frage') + + # Create your views here. def index(request): return render(request, "meingoethopia/index.html") @@ -77,5 +83,20 @@ def praesident_werden(request): 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'), + answered=False) + question.save() + 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")