Преглед изворни кода

add fields to the betrieb model and add an overview action

master
erichhasl пре 7 година
родитељ
комит
a6b467a93f
5 измењених фајлова са 93 додато и 19 уклоњено
  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 Прегледај датотеку

@@ -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 Прегледај датотеку

@@ -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 Прегледај датотеку

@@ -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 Прегледај датотеку

@@ -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 Прегледај датотеку

@@ -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…
Откажи
Сачувај