From 7e98dba2d2893b975cb2eeb53d30cd65f59fc452 Mon Sep 17 00:00:00 2001
From: erichhasl
Date: Sun, 19 Nov 2017 00:52:13 +0100
Subject: [PATCH] add question
---
web_dev/sas_web/meingoethopia/admin.py | 8 ++++++-
web_dev/sas_web/meingoethopia/models.py | 14 +++++++++++
.../templates/meingoethopia/index.html | 7 ++++++
.../templates/meingoethopia/question_new.html | 14 +++++++++++
web_dev/sas_web/meingoethopia/urls.py | 3 ++-
web_dev/sas_web/meingoethopia/views.py | 23 ++++++++++++++++++-
6 files changed, 66 insertions(+), 3 deletions(-)
create mode 100644 web_dev/sas_web/meingoethopia/templates/meingoethopia/question_new.html
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!
+
+
+
+{% 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")