diff --git a/web_dev/sas_web/news/admin.py b/web_dev/sas_web/news/admin.py index 8c8896d..dbb32d2 100644 --- a/web_dev/sas_web/news/admin.py +++ b/web_dev/sas_web/news/admin.py @@ -1,9 +1,14 @@ from django.contrib import admin -from .models import ParteiWerbung +from .models import ParteiWerbung, PraesidentWerbung # Register your models here. class ParteiWerbungAdmin(admin.ModelAdmin): list_display = ('partei',) + +class PraesidentWerbungAdmin(admin.ModelAdmin): + list_display = ('praesident',) + 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 7d6a25f..3b3b462 100644 --- a/web_dev/sas_web/news/models.py +++ b/web_dev/sas_web/news/models.py @@ -4,6 +4,12 @@ from django.db import models # Create your models here. class ParteiWerbung(models.Model): partei = models.ForeignKey('meingoethopia.Partei') + image = models.ImageField('Bild', upload_to='partei_bilder') + wahlprogramm = models.TextField('Wahlprogramm') + + @property + def url(self): + return "/wahl/partei/{}".format(self.pk) def __str__(self): return str(self.partei) @@ -14,7 +20,8 @@ class ParteiWerbung(models.Model): class PraesidentWerbung(models.Model): - partei = models.ForeignKey('meingoethopia.PresidentCandidate') + praesident = models.ForeignKey('meingoethopia.PresidentCandidate') + image = models.ImageField('Bild', upload_to='praesident_bilder') def __str__(self): return str(self.partei) diff --git a/web_dev/sas_web/news/static/news/css/index.css b/web_dev/sas_web/news/static/news/css/index.css new file mode 100644 index 0000000..277079c --- /dev/null +++ b/web_dev/sas_web/news/static/news/css/index.css @@ -0,0 +1,45 @@ +#news_html { + margin-left: 2%; + width: 96%; +} +.tablenews { + width: 100%; +} +.trnews { + padding-top: 50px; + padding-bottom: 50px; +} +.tdnews { + padding-left: 10px; + padding-right: 10px; + padding-bottom: 10px; + padding-top: 10px; +} +.thumbnail { + display: block; + margin: 0 auto; + width: 80%; +} + +img { + max-width: 100%; + height: auto; +} + +div.polaroid { + border: 2px solid #e7e7e7; + width: 80%; + background-color: white; + box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); + margin-bottom: 25px; +} + +div.container { + text-align: center; + padding: 10px 20px; + font-family: Helvetica, serif; + font-size: 12px; +} +#description { + text-align: center; +} diff --git a/web_dev/sas_web/news/static/news/css/partei.css b/web_dev/sas_web/news/static/news/css/partei.css new file mode 100644 index 0000000..a4735bf --- /dev/null +++ b/web_dev/sas_web/news/static/news/css/partei.css @@ -0,0 +1,3 @@ +#partei_bild { + max-width: 20% +} diff --git a/web_dev/sas_web/news/templates/news/index.html b/web_dev/sas_web/news/templates/news/index.html index 0ac46c9..0f2f538 100644 --- a/web_dev/sas_web/news/templates/news/index.html +++ b/web_dev/sas_web/news/templates/news/index.html @@ -3,16 +3,16 @@ {% block content %}

- -
- + +
+
- - + {% if rows|length == 0 %} - {% endif %} {% for row in rows %} - + {% for entry in row %} -
+

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

+

Keine Parteien gefunden

@@ -29,13 +29,13 @@
+
- - - + + Verfassung +

{{ entry.partei.name }}

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

Name

+
+

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

+
+

Vorsitzende(r)

+
+

{{ entry.partei.chef }}

+
+

Wahlprogramm

+
+

{{ entry.wahlprogramm }}

+
+ +{% endblock %} diff --git a/web_dev/sas_web/news/urls.py b/web_dev/sas_web/news/urls.py index 9cb3403..2f29178 100644 --- a/web_dev/sas_web/news/urls.py +++ b/web_dev/sas_web/news/urls.py @@ -3,5 +3,7 @@ from django.conf.urls import url from . import views urlpatterns = [ - url(r'^$', views.index, name='index') + 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') ] diff --git a/web_dev/sas_web/news/views.py b/web_dev/sas_web/news/views.py index 0794aa7..366dc83 100644 --- a/web_dev/sas_web/news/views.py +++ b/web_dev/sas_web/news/views.py @@ -1,7 +1,7 @@ from django.shortcuts import render import math -from .models import ParteiWerbung +from .models import ParteiWerbung, PraesidentWerbung # Create your views here. @@ -12,5 +12,15 @@ def index(request): }) +def partei(request, partei_id): + return render(request, "news/partei.html", + {'entry': ParteiWerbung.objects.get(pk=partei_id)}) + + +def praesident(request, praesident_id): + return render(request, "news/praesident.html", + {'entry': PraesidentWerbung.objects.get(pk=praesident_id)}) + + def group(l, n): return [l[k*n:k*n+n] for k in range(math.ceil(len(l) / n))] diff --git a/web_dev/sas_web/sas_web/urls.py b/web_dev/sas_web/sas_web/urls.py index 3be8a61..253a048 100644 --- a/web_dev/sas_web/sas_web/urls.py +++ b/web_dev/sas_web/sas_web/urls.py @@ -23,8 +23,8 @@ from .views import error_400, error_403, error_404, error_500 urlpatterns = static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) urlpatterns += [ - url(r'^news/', include('news.urls', - namespace='news', + url(r'^wahl/', include('news.urls', + namespace='wahl', app_name='news')), url(r'^meingoethopia/', include('meingoethopia.urls', namespace='meingoethopia',