소스 검색

add aufsicht calc

master
erichhasl 7 년 전
부모
커밋
0afd8cb3f9
2개의 변경된 파일53개의 추가작업 그리고 4개의 파일을 삭제
  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 파일 보기

@@ -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 파일 보기

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


불러오는 중...
취소
저장