From c228dae96325d5998175c68b15bbcf3b501bd87d Mon Sep 17 00:00:00 2001 From: erichhasl Date: Mon, 8 Jan 2018 19:25:47 +0100 Subject: [PATCH] extend wahlwerbung --- web_dev/sas_web/news/admin.py | 16 +++++- web_dev/sas_web/news/models.py | 33 +++++++++++- .../sas_web/news/static/news/css/partei.css | 12 ++++- .../sas_web/news/templates/news/index.html | 50 ++++++++++++++++--- .../sas_web/news/templates/news/partei.html | 34 ++++++++++--- .../news/templates/news/praesident.html | 47 +++++++++++++++++ web_dev/sas_web/news/urls.py | 2 +- web_dev/sas_web/news/views.py | 11 ++-- 8 files changed, 183 insertions(+), 22 deletions(-) create mode 100644 web_dev/sas_web/news/templates/news/praesident.html diff --git a/web_dev/sas_web/news/admin.py b/web_dev/sas_web/news/admin.py index dbb32d2..d0decc0 100644 --- a/web_dev/sas_web/news/admin.py +++ b/web_dev/sas_web/news/admin.py @@ -1,14 +1,26 @@ from django.contrib import admin -from .models import ParteiWerbung, PraesidentWerbung +from .models import ParteiWerbung, PraesidentWerbung, ParteiAnhang, \ + PraesidentAnhang + + +class ParteiAnhangInline(admin.TabularInline): + model = ParteiAnhang + extra = 0 + + +class PraesidentAnhangInline(admin.TabularInline): + model = PraesidentAnhang + extra = 0 -# Register your models here. class ParteiWerbungAdmin(admin.ModelAdmin): list_display = ('partei',) + inlines = [ParteiAnhangInline] class PraesidentWerbungAdmin(admin.ModelAdmin): list_display = ('praesident',) + inlines = [PraesidentAnhangInline] admin.site.register(ParteiWerbung, ParteiWerbungAdmin) admin.site.register(PraesidentWerbung, PraesidentWerbungAdmin) diff --git a/web_dev/sas_web/news/models.py b/web_dev/sas_web/news/models.py index 3b3b462..e3b7c74 100644 --- a/web_dev/sas_web/news/models.py +++ b/web_dev/sas_web/news/models.py @@ -19,13 +19,44 @@ class ParteiWerbung(models.Model): verbose_name_plural = 'Parteienwerbung' +class ParteiAnhang(models.Model): + name = models.CharField('Name', max_length=100) + data = models.FileField('Datei') + partei = models.ForeignKey(ParteiWerbung) + + def __str__(self): + return self.name + + class Meta: + verbose_name = 'Anhang' + verbose_name_plural = 'Anhänge' + + class PraesidentWerbung(models.Model): praesident = models.ForeignKey('meingoethopia.PresidentCandidate') image = models.ImageField('Bild', upload_to='praesident_bilder') + wahlprogramm = models.TextField('Wahlprogramm') + + @property + def url(self): + return "/wahl/praesident/{}".format(self.pk) def __str__(self): - return str(self.partei) + return str(self.praesident) class Meta: verbose_name = 'Präsidentwerbung' verbose_name_plural = 'Präsidentenwerbung' + + +class PraesidentAnhang(models.Model): + name = models.CharField('Name', max_length=100) + data = models.FileField('Datei') + praesident = models.ForeignKey(PraesidentWerbung) + + def __str__(self): + return self.name + + class Meta: + verbose_name = 'Anhang' + verbose_name_plural = 'Anhänge' diff --git a/web_dev/sas_web/news/static/news/css/partei.css b/web_dev/sas_web/news/static/news/css/partei.css index a4735bf..5a14c8f 100644 --- a/web_dev/sas_web/news/static/news/css/partei.css +++ b/web_dev/sas_web/news/static/news/css/partei.css @@ -1,3 +1,13 @@ #partei_bild { - max-width: 20% + max-width: 50%; + margin-top: 20px; + margin-bottom: 50px; +} + +.trpartei { + line-height: 25px; +} + +.tablepartei { + width: 100%; } diff --git a/web_dev/sas_web/news/templates/news/index.html b/web_dev/sas_web/news/templates/news/index.html index 0f2f538..668d1a1 100644 --- a/web_dev/sas_web/news/templates/news/index.html +++ b/web_dev/sas_web/news/templates/news/index.html @@ -13,13 +13,10 @@ -

- Bald wird gewählt in Goethopia! Hier erfährst du welche Parteien zur Wahl stehen - und wer als Präsidentin kandidiert! -

+

Parteien

- {% if rows|length == 0 %} + {% if parteien|length == 0 %}

@@ -28,7 +25,7 @@ {% endif %} - {% for row in rows %} + {% for row in parteien %} {% for entry in row %} @@ -46,4 +43,45 @@ {% endfor %} + + +

+ + + + + + + {% if praesidenten|length == 0 %} + + + + {% endif %} + {% for row in praesidenten %} + + {% for entry in row %} + + {% endfor %} + + {% endfor %} +
+ + +
+

Präsidentschaftskandidaten

+
+

+ Keine Präsidenten gefunden +

+
+
+ + Verfassung + +
+

{{ entry.praesident.name }}

+
+
+
+
{% endblock %} diff --git a/web_dev/sas_web/news/templates/news/partei.html b/web_dev/sas_web/news/templates/news/partei.html index 6cf5293..2d9f91a 100644 --- a/web_dev/sas_web/news/templates/news/partei.html +++ b/web_dev/sas_web/news/templates/news/partei.html @@ -5,33 +5,53 @@ - +

Zurück zur Übersicht

- +
+ +
+ +
+ + - + - + + + + +
+ +
-

Name

+

Name

{{ entry.partei.name }} ({{ entry.partei.abbreviation }})

-

Vorsitzende(r)

+

Vorsitzende(r)

{{ entry.partei.chef }}

-

Wahlprogramm

+

Wahlprogramm

{{ entry.wahlprogramm }}

+

Weitere Informationen

+
+ {% for attachment in entry.parteianhang_set.all %} + {{ attachment.name }}
+ {% endfor %} +
+

Zurück zur Übersicht

+ {% endblock %} diff --git a/web_dev/sas_web/news/templates/news/praesident.html b/web_dev/sas_web/news/templates/news/praesident.html new file mode 100644 index 0000000..ab23b6b --- /dev/null +++ b/web_dev/sas_web/news/templates/news/praesident.html @@ -0,0 +1,47 @@ +{% extends "public/default.html" %} +{% load static %} + +{% block content %} + + + +
+ +
+ + + + + + + + + + + + + + + + +
+ +
+

Name

+
+

{{ entry.praesident.name }}

+
+

Wahlprogramm

+
+

{{ entry.wahlprogramm }}

+
+

Weitere Informationen

+
+ {% for attachment in entry.praesidentanhang_set.all %} + {{ attachment.name }}
+ {% endfor %} +
+ +

Zurück zur Übersicht

+ +{% endblock %} diff --git a/web_dev/sas_web/news/urls.py b/web_dev/sas_web/news/urls.py index 2f29178..db76316 100644 --- a/web_dev/sas_web/news/urls.py +++ b/web_dev/sas_web/news/urls.py @@ -5,5 +5,5 @@ from . import views urlpatterns = [ url(r'^$', views.index, name='index'), url(r'^partei/(?P[0-9]+)', views.partei, name='partei'), - url(r'^partei/(?P[0-9]+)', views.praesident, name='praesident') + url(r'^praesident/(?P[0-9]+)', views.praesident, name='praesident') ] diff --git a/web_dev/sas_web/news/views.py b/web_dev/sas_web/news/views.py index 366dc83..c3e115f 100644 --- a/web_dev/sas_web/news/views.py +++ b/web_dev/sas_web/news/views.py @@ -6,10 +6,13 @@ from .models import ParteiWerbung, PraesidentWerbung # Create your views here. def index(request): - objects = ParteiWerbung.objects.all() - rows = group(objects, 3) - return render(request, "news/index.html", {'rows': rows, - }) + partei_objs = ParteiWerbung.objects.all() + parteien = group(partei_objs, 3) + + praesident_objs = PraesidentWerbung.objects.all() + praesidenten = group(praesident_objs, 3) + return render(request, "news/index.html", + {'parteien': parteien, 'praesidenten': praesidenten}) def partei(request, partei_id):