Explorar el Código

add fields to the betrieb model and add an overview action

master
erichhasl hace 7 años
padre
commit
a6b467a93f
Se han modificado 5 ficheros con 93 adiciones y 19 borrados
  1. +36
    -3
      web_dev/sas_web/meingoethopia/admin.py
  2. +15
    -0
      web_dev/sas_web/meingoethopia/models.py
  3. +36
    -0
      web_dev/sas_web/meingoethopia/templates/meingoethopia/betriebe_overview.html
  4. +4
    -0
      web_dev/sas_web/sas_web/urls.py
  5. +2
    -16
      web_dev/sas_web/startpage/templates/startpage/index.html

+ 36
- 3
web_dev/sas_web/meingoethopia/admin.py Ver fichero

@@ -1,6 +1,14 @@
from django.contrib import admin
from .models import Betrieb, Partei, PresidentCandidate, Question
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):
@@ -12,11 +20,36 @@ def ban_ip(modeladmin, request, queryset):
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.
class BetriebAdmin(admin.ModelAdmin):
list_display = ('name', 'manager', 'confirmed', 'approved')
list_filter = ('confirmed', 'approved')
actions = [ban_ip]
list_display = ('name', 'manager', 'aufsicht', 'raum',
'arbeitnehmerzahl_kurz', 'confirmed',
'approved')
list_filter = ('confirmed', 'approved', 'raum')
search_fields = ('name', 'manager', 'raum', 'aufsicht')
actions = [ban_ip, create_overview]


class ParteiAdmin(admin.ModelAdmin):


+ 15
- 0
web_dev/sas_web/meingoethopia/models.py Ver fichero

@@ -6,11 +6,26 @@ class Betrieb(models.Model):
name = models.CharField('Name', max_length=100)
manager = models.CharField('Betriebsleiter', max_length=200)
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')
ip_address = models.CharField('IP Adresse', max_length=50, blank=True)
confirmed = models.BooleanField('Bestätigt', default=False)
approved = models.BooleanField('Zugelassen', default=False)

def arbeitnehmerzahl_kurz(self):
return self.arbeitnehmerzahl
arbeitnehmerzahl_kurz.short_description = 'Stellen'

def __str__(self):
return str(self.name)



+ 36
- 0
web_dev/sas_web/meingoethopia/templates/meingoethopia/betriebe_overview.html Ver fichero

@@ -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 %}

+ 4
- 0
web_dev/sas_web/sas_web/urls.py Ver fichero

@@ -19,6 +19,10 @@ from django.conf import settings

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 += [


+ 2
- 16
web_dev/sas_web/startpage/templates/startpage/index.html Ver fichero

@@ -9,22 +9,8 @@
<!--<ul class="dates_ul">-->
<!--</ul>-->
<h1 class="red" id="termine">Wichtiges</h1>
<p>
<b>Bitte gründet noch Betriebe: Formulare hängen im SMV-Schaukasten unter dem
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>
<p>Nach den Pfingstferien könnt ihr euch in die Listen der Betriebe eintragen, um
euch dort als Arbeitnehmer/-innen zu bewerben.</p>
<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:
<br>


Cargando…
Cancelar
Guardar