Open
Description
Der folgende Code berechnet die Aufteilung in der Konsole. Es mangelt noch an einer GUI
from feedback.models import Veranstaltung, Semester
from django.db.models import Q, Sum
num_buckets = 9
return_factor = 0.6
s = Semester.objects.filter(semester=20160)
vl = Veranstaltung.objects.filter(semester=s,anzahl__gt=0)
# alles auser reine vorlesung
#vl = vl.filter(~Q(typ='v'))
# alle vorlesung
vl = vl.filter(Q(typ='v') | Q(typ='vu'))
vl = vl.order_by('name')
num_sheets = 0
# ist Aggregate besser?
for v in vl:
num_sheets += v.anzahl
expected_return = num_sheets * return_factor
average_num_per_bucket = expected_return / num_buckets
print('expected Sheets per bucket: %d' % (average_num_per_bucket))
in_c_bucket = 0
bucket = 1
print ('\n Bucket No: %d\n' % (bucket) )
for v in vl:
if ((in_c_bucket + ((v.anzahl * return_factor) / 2)) > average_num_per_bucket):
print ('Anzahl in Bucket: %d' %(in_c_bucket))
bucket+=1
in_c_bucket = 0
print ('\n Bucket No: %d\n' % (bucket))
in_c_bucket += v.anzahl * return_factor
print ('%s erwartete Anzahl: %d' % (v, v.anzahl * return_factor))
print ('Anzahl in Bucket: %d' %(in_c_bucket))
Gitlab: 22
Activity