Selaa lähdekoodia

add fields to the betrieb model and add an overview action

master
erichhasl 8 vuotta sitten
vanhempi
commit
a6b467a93f
5 muutettua tiedostoa jossa 93 lisäystä ja 19 poistoa
  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 Näytä tiedosto

@@ -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_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): class ParteiAdmin(admin.ModelAdmin):


+ 15
- 0
web_dev/sas_web/meingoethopia/models.py Näytä tiedosto

@@ -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)




+ 36
- 0
web_dev/sas_web/meingoethopia/templates/meingoethopia/betriebe_overview.html Näytä tiedosto

@@ -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 Näytä tiedosto

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


+ 2
- 16
web_dev/sas_web/startpage/templates/startpage/index.html Näytä tiedosto

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


Loading…
Peruuta
Tallenna