extend wahlwerbung

This commit is contained in:
erichhasl
2018-01-08 19:25:47 +01:00
parent d9a74f45ef
commit c228dae963
8 changed files with 183 additions and 22 deletions
+14 -2
View File
@@ -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)
+32 -1
View File
@@ -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'
@@ -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%;
}
+44 -6
View File
@@ -13,13 +13,10 @@
</tr>
<tr class="trnews">
<td class="tdnews" colspan="3">
<p id="description">
Bald wird gewählt in Goethopia! Hier erfährst du welche Parteien zur Wahl stehen
und wer als Präsidentin kandidiert!
</p>
<h3>Parteien</h3>
</td>
</tr>
{% if rows|length == 0 %}
{% if parteien|length == 0 %}
<tr>
<td class="tdnews" colspan="3">
<p id="description">
@@ -28,7 +25,7 @@
</td>
</tr>
{% endif %}
{% for row in rows %}
{% for row in parteien %}
<tr class="trnews">
{% for entry in row %}
<td class="tdnews" align="{% cycle "left" "center" "right" %}">
@@ -46,4 +43,45 @@
{% endfor %}
</table>
</div>
<!-- PRÄSIDENT -->
<div id="news_html">
<table class="tablenews">
<tr>
<th style="width:33%"/>
<th style="width:33%"/>
<th style="width:33%"/>
</tr>
<tr class="trnews">
<td class="tdnews" colspan="3">
<h3>Präsidentschaftskandidaten</h3>
</td>
</tr>
{% if praesidenten|length == 0 %}
<tr>
<td class="tdnews" colspan="3">
<p id="description">
<b>Keine Präsidenten gefunden</b>
</p>
</td>
</tr>
{% endif %}
{% for row in praesidenten %}
<tr class="trnews">
{% for entry in row %}
<td class="tdnews" align="{% cycle "left" "center" "right" %}">
<div class="polaroid">
<a class="thumbnail" href="{{ entry.url }}">
<img src="{{ entry.image.url }}" alt="Verfassung">
</a>
<div class="container">
<p>{{ entry.praesident.name }}</p>
</div>
</div>
</td>
{% endfor %}
</tr>
{% endfor %}
</table>
</div>
{% endblock %}
@@ -5,33 +5,53 @@
<link rel="stylesheet" type="text/css" href="{% static "news/css/partei.css"%}">
<img src="{{ entry.image.url }}" id="partei_bild">
<p><a href="{% url "news:index" %}">Zurück zur Übersicht</a></p>
<table>
<div style="width:100%;">
<img src="{{ entry.image.url }}" id="partei_bild">
</div>
<table class="tablepartei">
<tr>
<th style="width:20%"/>
<th style="width:80%"/>
</tr>
<tr class="trpartei">
<td>
<p>Name</p>
<p><b>Name</b></p>
</td>
<td>
<p>{{ entry.partei.name }} ({{ entry.partei.abbreviation }})</p>
</td>
</tr>
<tr>
<tr class="trpartei">
<td>
<p>Vorsitzende(r)</p>
<p><b>Vorsitzende(r)</b></p>
</td>
<td>
<p>{{ entry.partei.chef }}</p>
</td>
</tr>
<tr>
<tr class="trpartei">
<td>
<p>Wahlprogramm</p>
<p><b>Wahlprogramm</b></p>
</td>
<td>
<p>{{ entry.wahlprogramm }}</p>
</td>
</tr>
<tr class="trpartei">
<td>
<p><b>Weitere Informationen</b></p>
</td>
<td>
{% for attachment in entry.parteianhang_set.all %}
<a href="{{ attachment.data.url }}">{{ attachment.name }}</a><br>
{% endfor %}
</td>
</tr>
</table>
<p><a href="{% url "news:index" %}">Zurück zur Übersicht</a></p>
{% endblock %}
@@ -0,0 +1,47 @@
{% extends "public/default.html" %}
{% load static %}
{% block content %}
<link rel="stylesheet" type="text/css" href="{% static "news/css/partei.css"%}">
<div style="width:100%;">
<img src="{{ entry.image.url }}" id="partei_bild">
</div>
<table class="tablepartei">
<tr>
<th style="width:20%"/>
<th style="width:80%"/>
</tr>
<tr class="trpartei">
<td>
<p><b>Name</b></p>
</td>
<td>
<p>{{ entry.praesident.name }}</p>
</td>
</tr>
<tr class="trpartei">
<td>
<p><b>Wahlprogramm</b></p>
</td>
<td>
<p>{{ entry.wahlprogramm }}</p>
</td>
</tr>
<tr class="trpartei">
<td>
<p><b>Weitere Informationen</b></p>
</td>
<td>
{% for attachment in entry.praesidentanhang_set.all %}
<a href="{{ attachment.data.url }}">{{ attachment.name }}</a><br>
{% endfor %}
</td>
</tr>
</table>
<p><a href="{% url "news:index" %}">Zurück zur Übersicht</a></p>
{% endblock %}
+1 -1
View File
@@ -5,5 +5,5 @@ from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^partei/(?P<partei_id>[0-9]+)', views.partei, name='partei'),
url(r'^partei/(?P<praesident_id>[0-9]+)', views.praesident, name='praesident')
url(r'^praesident/(?P<praesident_id>[0-9]+)', views.praesident, name='praesident')
]
+7 -4
View File
@@ -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):