Pārlūkot izejas kodu

add aufsicht calc

master
erichhasl pirms 7 gadiem
vecāks
revīzija
0afd8cb3f9
2 mainītis faili ar 53 papildinājumiem un 4 dzēšanām
  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 Parādīt failu

@@ -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 Parādīt failu

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


Notiek ielāde…
Atcelt
Saglabāt