Quellcode durchsuchen

add aufsicht calc

master
erichhasl vor 7 Jahren
Ursprung
Commit
0afd8cb3f9
2 geänderte Dateien mit 53 neuen und 4 gelöschten Zeilen
  1. +15
    -2
      web_dev/sas_web/meingoethopia/admin.py
  2. +38
    -2
      web_dev/sas_web/meingoethopia/models.py

+ 15
- 2
web_dev/sas_web/meingoethopia/admin.py Datei anzeigen

@@ -1,5 +1,6 @@
from django.contrib import admin
from .models import Betrieb, Partei, PresidentCandidate, Question, Angestellter
from .models import Betrieb, Partei, PresidentCandidate, Question, Angestellter,\
Aufsicht, Betriebsaufsicht
from startpage.models import Banned
from django.contrib.admin import helpers
from django.shortcuts import render
@@ -84,11 +85,16 @@ def create_overview(modeladmin, request, queryset):
create_overview.short_description = "Übersicht erstellen"


class AufsichtInline(admin.TabularInline):
model = Betriebsaufsicht
extra = 0


# Register your models here.
class BetriebAdmin(admin.ModelAdmin):
list_display = ('name', 'manager', 'aufsicht', 'raum',
'arbeiter_effektiv', 'punkt',
'approved')
'approved', 'beaufsichtigt')
list_filter = ('confirmed', 'approved', 'raum')
search_fields = ('name', 'manager', 'raum', 'aufsicht')
formfield_overrides = {
@@ -96,6 +102,7 @@ class BetriebAdmin(admin.ModelAdmin):
}
actions = [ban_ip, create_overview]
filter_horizontal = ('angestellte',)
inlines = [AufsichtInline]


class ParteiAdmin(admin.ModelAdmin):
@@ -122,8 +129,14 @@ class AngestellterAdmin(admin.ModelAdmin):
list_filter = (ZugeteiltFilter,)
search_fields = ('name', 'klasse')


class AufsichtAdmin(admin.ModelAdmin):
list_display = ('name', 'show_stunden')
search_fields = ('name',)

admin.site.register(Betrieb, BetriebAdmin)
admin.site.register(Partei, ParteiAdmin)
admin.site.register(PresidentCandidate, PresidentAdmin)
admin.site.register(Question, QuestionAdmin)
admin.site.register(Angestellter, AngestellterAdmin)
admin.site.register(Aufsicht, AufsichtAdmin)

+ 38
- 2
web_dev/sas_web/meingoethopia/models.py Datei anzeigen

@@ -26,14 +26,33 @@ class Angestellter(models.Model):
verbose_name_plural = 'Angestellte'


class Aufsicht(models.Model):
name = models.CharField('Name', max_length=100)
stunden = models.IntegerField('Deputatsstunden', default=25,
help_text='Verfügbare Deputatsstunde (Dreiviertel Stunden) von Dienstag bis Freitag')

def __str__(self):
return self.name

def stunden_geleistet(self):
return sum([n.teilstunden for n in self.betriebsaufsicht_set.all()])

def show_stunden(self):
return "{}/{}".format(self.stunden_geleistet(), self.stunden)
show_stunden.short_description = "Deputatsstunden"

class Meta:
verbose_name = 'Aufsicht'
verbose_name_plural = 'Aufsichten'


# Create your models here.
class Betrieb(models.Model):
name = models.CharField('Name', max_length=100)
manager = models.CharField('Betriebsleiter', max_length=200)
email = models.EmailField('Kontakt Email', blank=True)
arbeitnehmerzahl = models.IntegerField('Anzahl Arbeitnehmer',
default=0,
help_text='Gesamtzahl aller angestellten '
default=0, help_text='Gesamtzahl aller angestellten '
'Arbeitnehmer/-innen inklusive Betriebsleiter/-innen')
arbeitnehmerzahl.short_description = 'Stellen'
raumforderung = models.FloatField('Raumanforderung', default=0,
@@ -71,6 +90,14 @@ class Betrieb(models.Model):
self.arbeitnehmerzahl)
arbeiter_effektiv.short_description = 'Stellen'

def beaufsichtigt(self):
betriebe = Betrieb.objects.filter(raum=self.raum)
stunden = sum([sum([n.teilstunden for n in
b.betriebsaufsicht_set.all()]) for b in betriebe])
return stunden >= 32 * self.punkt()
beaufsichtigt.boolean = True
beaufsichtigt.short_description = 'Beaufsichtigt'

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

@@ -79,6 +106,15 @@ class Betrieb(models.Model):
verbose_name_plural = 'Betriebe'


class Betriebsaufsicht(models.Model):
aufsicht = models.ForeignKey(Aufsicht)
betrieb = models.ForeignKey(Betrieb)
teilstunden = models.IntegerField('Geleistete Deputatsstunden', default=16)

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


class Partei(models.Model):
name = models.CharField('Name', max_length=100)
abbreviation = models.CharField('Abkürzung', max_length=5)


Laden…
Abbrechen
Speichern