add fields to the betrieb model and add an overview action
This commit is contained in:
@@ -1,6 +1,14 @@
|
|||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from .models import Betrieb, Partei, PresidentCandidate, Question
|
from .models import Betrieb, Partei, PresidentCandidate, Question
|
||||||
from startpage.models import Banned
|
from startpage.models import Banned
|
||||||
|
from django.contrib.admin import helpers
|
||||||
|
from django.shortcuts import render
|
||||||
|
from django.template.defaulttags import register
|
||||||
|
|
||||||
|
|
||||||
|
@register.filter
|
||||||
|
def get_item(dictionary, key):
|
||||||
|
return dictionary.get(key)
|
||||||
|
|
||||||
|
|
||||||
def ban_ip(modeladmin, request, queryset):
|
def ban_ip(modeladmin, request, queryset):
|
||||||
@@ -12,11 +20,36 @@ def ban_ip(modeladmin, request, queryset):
|
|||||||
ban_ip.short_description = "Urheber ausgewählter Eintrage verbannen"
|
ban_ip.short_description = "Urheber ausgewählter Eintrage verbannen"
|
||||||
|
|
||||||
|
|
||||||
|
def create_overview(modeladmin, request, queryset):
|
||||||
|
if request.POST.get('back'):
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
raummap = {}
|
||||||
|
for b in queryset:
|
||||||
|
if b.raum in raummap:
|
||||||
|
raummap[b.raum]["anzahl"] += 1
|
||||||
|
raummap[b.raum]["belegung"] += b.raumforderung
|
||||||
|
else:
|
||||||
|
raummap[b.raum] = {"anzahl": 1, "belegung": b.raumforderung}
|
||||||
|
context = {'action_checkbox_name': helpers.ACTION_CHECKBOX_NAME,
|
||||||
|
'betriebe': queryset,
|
||||||
|
'arbeitnehmer_gesamt': sum([b.arbeitnehmerzahl for b in
|
||||||
|
queryset]),
|
||||||
|
'raummap': raummap,
|
||||||
|
'title': "Betriebsübersicht"}
|
||||||
|
return render(request, 'meingoethopia/betriebe_overview.html', context)
|
||||||
|
|
||||||
|
create_overview.short_description = "Übersicht erstellen"
|
||||||
|
|
||||||
|
|
||||||
# Register your models here.
|
# Register your models here.
|
||||||
class BetriebAdmin(admin.ModelAdmin):
|
class BetriebAdmin(admin.ModelAdmin):
|
||||||
list_display = ('name', 'manager', 'confirmed', 'approved')
|
list_display = ('name', 'manager', 'aufsicht', 'raum',
|
||||||
list_filter = ('confirmed', 'approved')
|
'arbeitnehmerzahl_kurz', 'confirmed',
|
||||||
actions = [ban_ip]
|
'approved')
|
||||||
|
list_filter = ('confirmed', 'approved', 'raum')
|
||||||
|
search_fields = ('name', 'manager', 'raum', 'aufsicht')
|
||||||
|
actions = [ban_ip, create_overview]
|
||||||
|
|
||||||
|
|
||||||
class ParteiAdmin(admin.ModelAdmin):
|
class ParteiAdmin(admin.ModelAdmin):
|
||||||
|
|||||||
@@ -6,11 +6,26 @@ class Betrieb(models.Model):
|
|||||||
name = models.CharField('Name', max_length=100)
|
name = models.CharField('Name', max_length=100)
|
||||||
manager = models.CharField('Betriebsleiter', max_length=200)
|
manager = models.CharField('Betriebsleiter', max_length=200)
|
||||||
email = models.EmailField('Kontakt Email')
|
email = models.EmailField('Kontakt Email')
|
||||||
|
arbeitnehmerzahl = models.IntegerField('Anzahl Arbeitnehmer',
|
||||||
|
default=0,
|
||||||
|
help_text='Gesamtzahl aller angestellten '
|
||||||
|
'Arbeitnehmer/-innen inklusive Betriebsleiter/-innen')
|
||||||
|
arbeitnehmerzahl.short_description = 'Stellen'
|
||||||
|
raumforderung = models.FloatField('Raumanforderung', default=0,
|
||||||
|
help_text='In Zahlen ausgedrückter '
|
||||||
|
'Raumwunsch (halber Raum = 0,5)')
|
||||||
|
raum = models.IntegerField('Raum', default=102)
|
||||||
|
aufsicht = models.CharField('Aufsicht', max_length=100, default='keine')
|
||||||
|
kredit = models.IntegerField('Kreditwunsch', default=0)
|
||||||
business_idea = models.TextField('Idee')
|
business_idea = models.TextField('Idee')
|
||||||
ip_address = models.CharField('IP Adresse', max_length=50, blank=True)
|
ip_address = models.CharField('IP Adresse', max_length=50, blank=True)
|
||||||
confirmed = models.BooleanField('Bestätigt', default=False)
|
confirmed = models.BooleanField('Bestätigt', default=False)
|
||||||
approved = models.BooleanField('Zugelassen', default=False)
|
approved = models.BooleanField('Zugelassen', default=False)
|
||||||
|
|
||||||
|
def arbeitnehmerzahl_kurz(self):
|
||||||
|
return self.arbeitnehmerzahl
|
||||||
|
arbeitnehmerzahl_kurz.short_description = 'Stellen'
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.name)
|
return str(self.name)
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
{% extends "admin/base_site.html" %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
<h2>Arbeitnehmer</h2>
|
||||||
|
|
||||||
|
<p>Insgesamt sind {{ arbeitnehmer_gesamt }} Schüler durch {{ betriebe.count }} Betriebe versorgt.</p>
|
||||||
|
|
||||||
|
<h2>Räume</h2>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>Raumnummer</th>
|
||||||
|
<th>Anzahl an Betrieben</th>
|
||||||
|
<th>Theoretische Belegung</th>
|
||||||
|
</tr>
|
||||||
|
{% for raum, data in raummap.items %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ raum }}</td>
|
||||||
|
<td>{{ data|get_item:"anzahl" }}</td>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
<font {% if data|get_item:"belegung" > 1 %} color="red"{% endif %}>
|
||||||
|
{{ data|get_item:"belegung" }}
|
||||||
|
</font>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<form action="" method="post">
|
||||||
|
{% csrf_token %}
|
||||||
|
<input type="submit" value="Zurück">
|
||||||
|
</form>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
@@ -19,6 +19,10 @@ from django.conf import settings
|
|||||||
|
|
||||||
from .views import error_400, error_403, error_404, error_500
|
from .views import error_400, error_403, error_404, error_500
|
||||||
|
|
||||||
|
admin.site.site_header = "Goethopia"
|
||||||
|
admin.site.site_title = "Goethopia"
|
||||||
|
admin.site.index_title = "Verwaltung"
|
||||||
|
|
||||||
urlpatterns = static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
urlpatterns = static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||||
|
|
||||||
urlpatterns += [
|
urlpatterns += [
|
||||||
|
|||||||
@@ -9,22 +9,8 @@
|
|||||||
<!--<ul class="dates_ul">-->
|
<!--<ul class="dates_ul">-->
|
||||||
<!--</ul>-->
|
<!--</ul>-->
|
||||||
<h1 class="red" id="termine">Wichtiges</h1>
|
<h1 class="red" id="termine">Wichtiges</h1>
|
||||||
<p>
|
<p>Nach den Pfingstferien könnt ihr euch in die Listen der Betriebe eintragen, um
|
||||||
<b>Bitte gründet noch Betriebe: Formulare hängen im SMV-Schaukasten unter dem
|
euch dort als Arbeitnehmer/-innen zu bewerben.</p>
|
||||||
Vertretungsplan. Ihr könnt auch schon
|
|
||||||
<a href="{% url "meingoethopia:index" %}">hier</a> euren Betrieb anmelden.</b>
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
Momentan beschließen die Ausschüsse über die Personalfrage, ihr werdet persönlich benachrichtigt werden, falls ihr einen Beamtenposten erhalten haben solltet.
|
|
||||||
|
|
||||||
|
|
||||||
</p>
|
|
||||||
<h1 class="red" id="ziele">Ziele</h1>
|
|
||||||
<ul>
|
|
||||||
<li>Raumplanung entwerfen</li>
|
|
||||||
<li>Elektronik Umgang damit Organisieren: Ort / Zeit</li>
|
|
||||||
<li>Liste der Polizisten und Beamten aushängen</li>
|
|
||||||
</ul>
|
|
||||||
<h1 class="red" id="wahlergebnis">Das Wahlergebnis</h1>
|
<h1 class="red" id="wahlergebnis">Das Wahlergebnis</h1>
|
||||||
Die Bürger Goethopias haben gewählt. <b>David Schwarz</b> ist der neue Präsident und die <b>Liberalen Sozialdemokraten</b> werden die stärkste Partei im Parlament:
|
Die Bürger Goethopias haben gewählt. <b>David Schwarz</b> ist der neue Präsident und die <b>Liberalen Sozialdemokraten</b> werden die stärkste Partei im Parlament:
|
||||||
<br>
|
<br>
|
||||||
|
|||||||
Reference in New Issue
Block a user