| @@ -1,3 +1,22 @@ | |||||
| from django.contrib import admin | from django.contrib import admin | ||||
| from .models import Betrieb, Partei, PresidentCandidate | |||||
| # Register your models here. | # 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) | |||||
| @@ -1,3 +1,47 @@ | |||||
| from django.db import models | from django.db import models | ||||
| # Create your models here. | # 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' | |||||
| @@ -0,0 +1,14 @@ | |||||
| {% extends "public/default.html" %} | |||||
| {% block content %} | |||||
| <p>Hier kannst Du einen Betrieb anmelden!</p> | |||||
| <form action="" method="post"> | |||||
| {% csrf_token %} | |||||
| <table> | |||||
| {{ form.as_table }} | |||||
| </table> | |||||
| <input type="submit" value="Verbindlich anmelden" /> | |||||
| </form> | |||||
| {% endblock %} | |||||
| @@ -2,4 +2,8 @@ | |||||
| {% block content %} | {% block content %} | ||||
| <p>Mein Goethopia!</p> | <p>Mein Goethopia!</p> | ||||
| <p><a href="{% url "meingoethopia:betrieb_new" %}">Betrieb anmelden</a></p> | |||||
| <p><a href="{% url "meingoethopia:partei_new" %}">Partei gründen</a></p> | |||||
| <p><a href="{% url "meingoethopia:praesident_werden" %}">Als Präsidentin aufstellen lassen</a></p> | |||||
| {% endblock %} | {% endblock %} | ||||
| @@ -0,0 +1,14 @@ | |||||
| {% extends "public/default.html" %} | |||||
| {% block content %} | |||||
| <p>Hier kannst Du eine Partei anmelden!</p> | |||||
| <form action="" method="post"> | |||||
| {% csrf_token %} | |||||
| <table> | |||||
| {{ form.as_table }} | |||||
| </table> | |||||
| <input type="submit" value="Verbindlich anmelden" /> | |||||
| </form> | |||||
| {% endblock %} | |||||
| @@ -0,0 +1,14 @@ | |||||
| {% extends "public/default.html" %} | |||||
| {% block content %} | |||||
| <p>Hier kannst Du dich als Präsident aufstellen lassen!</p> | |||||
| <form action="" method="post"> | |||||
| {% csrf_token %} | |||||
| <table> | |||||
| {{ form.as_table }} | |||||
| </table> | |||||
| <input type="submit" value="Verbindlich aufstellen lassen" /> | |||||
| </form> | |||||
| {% endblock %} | |||||
| @@ -3,5 +3,8 @@ from django.conf.urls import url | |||||
| from . import views | from . import views | ||||
| urlpatterns = [ | 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') | |||||
| ] | ] | ||||
| @@ -1,6 +1,78 @@ | |||||
| from django.shortcuts import render | 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. | # Create your views here. | ||||
| def index(request): | def index(request): | ||||
| return render(request, "meingoethopia/index.html") | 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}) | |||||
| @@ -22,10 +22,10 @@ urlpatterns = static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) | |||||
| urlpatterns += [ | urlpatterns += [ | ||||
| url(r'^$', include('startpage.urls', namespace='startpage', app_name='startpage')), | 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)), | url(r'^admin/', include(admin.site.urls)), | ||||
| ] | ] | ||||