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)


Завантаження…
Відмінити
Зберегти