extend wahlwerbung
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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%;
|
||||
}
|
||||
|
||||
@@ -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 %}
|
||||
@@ -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')
|
||||
]
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user