From 9da7f73569148e91178990d26413b2c6ec7b0f27 Mon Sep 17 00:00:00 2001 From: erichhasl Date: Sat, 18 Nov 2017 19:12:01 +0100 Subject: [PATCH] meingoethopia functionality --- web_dev/sas_web/meingoethopia/admin.py | 19 +++++ web_dev/sas_web/meingoethopia/models.py | 44 ++++++++++++ .../templates/meingoethopia/betrieb_new.html | 14 ++++ .../templates/meingoethopia/index.html | 4 ++ .../templates/meingoethopia/partei_new.html | 14 ++++ .../templates/meingoethopia/president.html | 14 ++++ web_dev/sas_web/meingoethopia/urls.py | 5 +- web_dev/sas_web/meingoethopia/views.py | 72 +++++++++++++++++++ web_dev/sas_web/sas_web/urls.py | 10 +-- 9 files changed, 190 insertions(+), 6 deletions(-) create mode 100644 web_dev/sas_web/meingoethopia/templates/meingoethopia/betrieb_new.html create mode 100644 web_dev/sas_web/meingoethopia/templates/meingoethopia/partei_new.html create mode 100644 web_dev/sas_web/meingoethopia/templates/meingoethopia/president.html diff --git a/web_dev/sas_web/meingoethopia/admin.py b/web_dev/sas_web/meingoethopia/admin.py index 8c38f3f..f25558d 100644 --- a/web_dev/sas_web/meingoethopia/admin.py +++ b/web_dev/sas_web/meingoethopia/admin.py @@ -1,3 +1,22 @@ from django.contrib import admin +from .models import Betrieb, Partei, PresidentCandidate + # Register your models here. +class BetriebAdmin(admin.ModelAdmin): + list_display = ('name', 'manager', 'confirmed') + list_filter = ('confirmed',) + + +class ParteiAdmin(admin.ModelAdmin): + list_display = ('name', 'abbreviation', 'chef', 'description', 'confirmed') + list_filter = ('confirmed',) + + +class PresidentAdmin(admin.ModelAdmin): + list_display = ('name', 'confirmed') + list_filter = ('confirmed',) + +admin.site.register(Betrieb, BetriebAdmin) +admin.site.register(Partei, ParteiAdmin) +admin.site.register(PresidentCandidate, PresidentAdmin) diff --git a/web_dev/sas_web/meingoethopia/models.py b/web_dev/sas_web/meingoethopia/models.py index 71a8362..0ad68cd 100644 --- a/web_dev/sas_web/meingoethopia/models.py +++ b/web_dev/sas_web/meingoethopia/models.py @@ -1,3 +1,47 @@ from django.db import models + # Create your models here. +class Betrieb(models.Model): + name = models.CharField('Name', max_length=100) + manager = models.CharField('Betriebsleiter', max_length=200) + email = models.EmailField('Kontakt Email') + business_idea = models.TextField('Idee') + confirmed = models.BooleanField('Bestätigt', default=False) + + def __str__(self): + return str(self.name) + + class Meta: + verbose_name = 'Betrieb' + verbose_name_plural = 'Betriebe' + + +class Partei(models.Model): + name = models.CharField('Name', max_length=100) + abbreviation = models.CharField('Abkürzung', max_length=5) + chef = models.CharField('Parteivorsitzende', max_length=200) + email = models.EmailField('Kontakt Email') + description = models.TextField('Beschreibung (Ziele etc.)') + confirmed = models.BooleanField('Bestätigt', default=False) + + def __str__(self): + return str(self.name) + + class Meta: + verbose_name = 'Partei' + verbose_name_plural = 'Parteien' + + +class PresidentCandidate(models.Model): + name = models.CharField('Name', max_length=100) + email = models.EmailField('Kontakt Email') + motivation = models.TextField('Motivation') + confirmed = models.BooleanField('Bestätigt', default=False) + + def __str__(self): + return str(self.name) + + class Meta: + verbose_name = 'Präsidentschaftskandidat' + verbose_name_plural = 'Präsidentschaftskandidaten' diff --git a/web_dev/sas_web/meingoethopia/templates/meingoethopia/betrieb_new.html b/web_dev/sas_web/meingoethopia/templates/meingoethopia/betrieb_new.html new file mode 100644 index 0000000..85942d8 --- /dev/null +++ b/web_dev/sas_web/meingoethopia/templates/meingoethopia/betrieb_new.html @@ -0,0 +1,14 @@ +{% extends "public/default.html" %} + +{% block content %} +

Hier kannst Du einen Betrieb anmelden!

+ +
+ {% csrf_token %} + + {{ form.as_table }} +
+ +
+ +{% endblock %} diff --git a/web_dev/sas_web/meingoethopia/templates/meingoethopia/index.html b/web_dev/sas_web/meingoethopia/templates/meingoethopia/index.html index 9074bd2..7f022e8 100644 --- a/web_dev/sas_web/meingoethopia/templates/meingoethopia/index.html +++ b/web_dev/sas_web/meingoethopia/templates/meingoethopia/index.html @@ -2,4 +2,8 @@ {% block content %}

Mein Goethopia!

+ +

Betrieb anmelden

+

Partei gründen

+

Als Präsidentin aufstellen lassen

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

Hier kannst Du eine Partei anmelden!

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

Hier kannst Du dich als Präsident aufstellen lassen!

+ +
+ {% 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 9cb3403..c1e9e4a 100644 --- a/web_dev/sas_web/meingoethopia/urls.py +++ b/web_dev/sas_web/meingoethopia/urls.py @@ -3,5 +3,8 @@ from django.conf.urls import url from . import views urlpatterns = [ - url(r'^$', views.index, name='index') + url(r'^$', views.index, name='index'), + 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') ] diff --git a/web_dev/sas_web/meingoethopia/views.py b/web_dev/sas_web/meingoethopia/views.py index f7c0493..63a1a3b 100644 --- a/web_dev/sas_web/meingoethopia/views.py +++ b/web_dev/sas_web/meingoethopia/views.py @@ -1,6 +1,78 @@ from django.shortcuts import render +from django.http import HttpResponseRedirect +from django import forms +from .models import Betrieb, Partei, PresidentCandidate + + +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') + + +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') + + +class PresidentForm(forms.Form): + name = forms.CharField(label='Name', max_length=100) + email = forms.EmailField(label='Kontakt Email') + motivation = forms.CharField(label='Motivation') # 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'), + confirmed=False) + betrieb.save() + return HttpResponseRedirect('/') + 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'), + confirmed=False) + partei.save() + return HttpResponseRedirect('/') + 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'), + confirmed=False) + president.save() + return HttpResponseRedirect('/') + else: + form = PresidentForm() + return render(request, "meingoethopia/president.html", {'form': form}) diff --git a/web_dev/sas_web/sas_web/urls.py b/web_dev/sas_web/sas_web/urls.py index f624ed6..f5a8e79 100644 --- a/web_dev/sas_web/sas_web/urls.py +++ b/web_dev/sas_web/sas_web/urls.py @@ -22,10 +22,10 @@ urlpatterns = static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) urlpatterns += [ url(r'^$', include('startpage.urls', namespace='startpage', app_name='startpage')), - url(r'^meingoethopia', include('meingoethopia.urls', - namespace='meingoethopia', - app_name='meingoethopia')), - url(r'^datenbank', include('datenbank.urls', app_name='datenbank', - namespace='datenbank')), + url(r'^meingoethopia/', include('meingoethopia.urls', + namespace='meingoethopia', + app_name='meingoethopia')), + url(r'^datenbank/', include('datenbank.urls', app_name='datenbank', + namespace='datenbank')), url(r'^admin/', include(admin.site.urls)), ]