extend wahlwerbung
This commit is contained in:
@@ -1,14 +1,26 @@
|
|||||||
from django.contrib import admin
|
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):
|
class ParteiWerbungAdmin(admin.ModelAdmin):
|
||||||
list_display = ('partei',)
|
list_display = ('partei',)
|
||||||
|
inlines = [ParteiAnhangInline]
|
||||||
|
|
||||||
|
|
||||||
class PraesidentWerbungAdmin(admin.ModelAdmin):
|
class PraesidentWerbungAdmin(admin.ModelAdmin):
|
||||||
list_display = ('praesident',)
|
list_display = ('praesident',)
|
||||||
|
inlines = [PraesidentAnhangInline]
|
||||||
|
|
||||||
admin.site.register(ParteiWerbung, ParteiWerbungAdmin)
|
admin.site.register(ParteiWerbung, ParteiWerbungAdmin)
|
||||||
admin.site.register(PraesidentWerbung, PraesidentWerbungAdmin)
|
admin.site.register(PraesidentWerbung, PraesidentWerbungAdmin)
|
||||||
|
|||||||
@@ -19,13 +19,44 @@ class ParteiWerbung(models.Model):
|
|||||||
verbose_name_plural = 'Parteienwerbung'
|
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):
|
class PraesidentWerbung(models.Model):
|
||||||
praesident = models.ForeignKey('meingoethopia.PresidentCandidate')
|
praesident = models.ForeignKey('meingoethopia.PresidentCandidate')
|
||||||
image = models.ImageField('Bild', upload_to='praesident_bilder')
|
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):
|
def __str__(self):
|
||||||
return str(self.partei)
|
return str(self.praesident)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = 'Präsidentwerbung'
|
verbose_name = 'Präsidentwerbung'
|
||||||
verbose_name_plural = 'Präsidentenwerbung'
|
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 {
|
#partei_bild {
|
||||||
max-width: 20%
|
max-width: 50%;
|
||||||
|
margin-top: 20px;
|
||||||
|
margin-bottom: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.trpartei {
|
||||||
|
line-height: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tablepartei {
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,13 +13,10 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr class="trnews">
|
<tr class="trnews">
|
||||||
<td class="tdnews" colspan="3">
|
<td class="tdnews" colspan="3">
|
||||||
<p id="description">
|
<h3>Parteien</h3>
|
||||||
Bald wird gewählt in Goethopia! Hier erfährst du welche Parteien zur Wahl stehen
|
|
||||||
und wer als Präsidentin kandidiert!
|
|
||||||
</p>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% if rows|length == 0 %}
|
{% if parteien|length == 0 %}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="tdnews" colspan="3">
|
<td class="tdnews" colspan="3">
|
||||||
<p id="description">
|
<p id="description">
|
||||||
@@ -28,7 +25,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% for row in rows %}
|
{% for row in parteien %}
|
||||||
<tr class="trnews">
|
<tr class="trnews">
|
||||||
{% for entry in row %}
|
{% for entry in row %}
|
||||||
<td class="tdnews" align="{% cycle "left" "center" "right" %}">
|
<td class="tdnews" align="{% cycle "left" "center" "right" %}">
|
||||||
@@ -46,4 +43,45 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</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 %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -5,33 +5,53 @@
|
|||||||
|
|
||||||
<link rel="stylesheet" type="text/css" href="{% static "news/css/partei.css"%}">
|
<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>
|
<tr>
|
||||||
|
<th style="width:20%"/>
|
||||||
|
<th style="width:80%"/>
|
||||||
|
</tr>
|
||||||
|
<tr class="trpartei">
|
||||||
<td>
|
<td>
|
||||||
<p>Name</p>
|
<p><b>Name</b></p>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<p>{{ entry.partei.name }} ({{ entry.partei.abbreviation }})</p>
|
<p>{{ entry.partei.name }} ({{ entry.partei.abbreviation }})</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr class="trpartei">
|
||||||
<td>
|
<td>
|
||||||
<p>Vorsitzende(r)</p>
|
<p><b>Vorsitzende(r)</b></p>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<p>{{ entry.partei.chef }}</p>
|
<p>{{ entry.partei.chef }}</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr class="trpartei">
|
||||||
<td>
|
<td>
|
||||||
<p>Wahlprogramm</p>
|
<p><b>Wahlprogramm</b></p>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<p>{{ entry.wahlprogramm }}</p>
|
<p>{{ entry.wahlprogramm }}</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</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>
|
</table>
|
||||||
|
|
||||||
|
<p><a href="{% url "news:index" %}">Zurück zur Übersicht</a></p>
|
||||||
|
|
||||||
{% endblock %}
|
{% 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 %}
|
||||||
@@ -5,5 +5,5 @@ from . import views
|
|||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
url(r'^$', views.index, name='index'),
|
url(r'^$', views.index, name='index'),
|
||||||
url(r'^partei/(?P<partei_id>[0-9]+)', views.partei, name='partei'),
|
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')
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -6,10 +6,13 @@ from .models import ParteiWerbung, PraesidentWerbung
|
|||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
def index(request):
|
def index(request):
|
||||||
objects = ParteiWerbung.objects.all()
|
partei_objs = ParteiWerbung.objects.all()
|
||||||
rows = group(objects, 3)
|
parteien = group(partei_objs, 3)
|
||||||
return render(request, "news/index.html", {'rows': rows,
|
|
||||||
})
|
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):
|
def partei(request, partei_id):
|
||||||
|
|||||||
Reference in New Issue
Block a user