def sync_ergebnisse(request): if request.method in ('HEAD', 'GET'): data = {'semester': Semester.objects.all()} return render(request, 'intern/sync_ergebnisse.html', data) try: semester = Semester.objects.get(semester=request.POST['semester']) except (Semester.DoesNotExist, KeyError): return HttpResponseRedirect(reverse('sync_ergebnisse')) fragebogen = get_model('Fragebogen', semester) ergebnis = get_model('Ergebnis', semester) ergebnis.objects.filter(veranstaltung__semester=semester).delete() found_something = False if semester.fragebogen == '2016': for v in Veranstaltung.objects.filter(semester=semester): fbs = fragebogen.objects.filter(veranstaltung=v) erg = FragebogenUE2016.objects.filter(veranstaltung=v) if len(fbs): found_something = True data = {'veranstaltung': v, 'anzahl': len(fbs)} for part in ergebnis.parts + ergebnis.hidden_parts: result, count = tools.get_average(ergebnis, fbs, part[0]) data[part[0]] = result data[part[0]+'_count'] = count for part in ergebnis.parts_ue: result, count = tools.get_average(ergebnis, erg, part[0]) data[part[0]] = result data[part[0]+'_count'] = count ergebnis.objects.create(**data) else: for v in Veranstaltung.objects.filter(semester=semester): fbs = fragebogen.objects.filter(veranstaltung=v) if len(fbs): found_something = True data = {'veranstaltung': v, 'anzahl': len(fbs)} for part in ergebnis.parts + ergebnis.hidden_parts: result, count = tools.get_average(ergebnis, fbs, part[0]) data[part[0]] = result data[part[0]+'_count'] = count ergebnis.objects.create(**data) if not found_something: messages.warning(request, 'Für das %s liegen keine Ergebnisse vor.' % semester) else: messages.success(request, 'Das Ranking für das %s wurde erfolgreich berechnet.' % semester) return HttpResponseRedirect(reverse('sync_ergebnisse'))
def sync_ergebnisse(request): if request.method in ("HEAD", "GET"): data = {"semester": Semester.objects.all()} return render(request, "intern/sync_ergebnisse.html", data) try: semester = Semester.objects.get(semester=request.POST["semester"]) except (Semester.DoesNotExist, KeyError): return HttpResponseRedirect(reverse("sync_ergebnisse")) Fragebogen = get_model("Fragebogen", semester) Ergebnis = get_model("Ergebnis", semester) Ergebnis.objects.filter(veranstaltung__semester=semester).delete() found_something = False for v in Veranstaltung.objects.filter(semester=semester): fbs = Fragebogen.objects.filter(veranstaltung=v) if len(fbs): found_something = True data = {"veranstaltung": v, "anzahl": len(fbs)} for part in Ergebnis.parts + Ergebnis.hidden_parts: result, count = tools.get_average(Ergebnis, fbs, part[0]) data[part[0]] = result data[part[0] + "_count"] = count Ergebnis.objects.create(**data) if not found_something: messages.warning(request, u"Für das %s liegen keine Ergebnisse vor." % semester) else: messages.success(request, u"Das Ranking für das %s wurde erfolgreich berechnet." % semester) return HttpResponseRedirect(reverse("sync_ergebnisse"))
def test_empty_sheets(self): self.assertSequenceEqual(get_average(Ergebnis2009, [], 'v_feedbackpreis'), [None, 0]) self.assertSequenceEqual(get_average(Ergebnis2009, self.f[:2], 'v_feedbackpreis'), [None, 0])
def test_weighted_parts(self): self.assertSequenceEqual(get_average(Ergebnis2009, self.f, 'ue_feedbackpreis'), [2.25, 2])
def test_multiple_parts(self): self.assertSequenceEqual(get_average(Ergebnis2009, self.f, 'ue_betreuung'), [3, 2]) self.assertSequenceEqual(get_average(Ergebnis2012, self.f2012, 'ue_betreuung'), [2, 5])
def test_single_part(self): self.assertSequenceEqual(get_average(Ergebnis2009, self.f, 'ue_gesamt'), [1.5, 2])
def test_empty_sheets(self): self.assertSequenceEqual( get_average(Ergebnis2009, [], 'v_feedbackpreis'), [None, 0]) self.assertSequenceEqual( get_average(Ergebnis2009, self.f[:2], 'v_feedbackpreis'), [None, 0])
def test_weighted_parts(self): self.assertSequenceEqual( get_average(Ergebnis2009, self.f, 'ue_feedbackpreis'), [2.25, 2])
def test_multiple_parts(self): self.assertSequenceEqual( get_average(Ergebnis2009, self.f, 'ue_betreuung'), [3, 2]) self.assertSequenceEqual( get_average(Ergebnis2012, self.f2012, 'ue_betreuung'), [2, 5])
def test_single_part(self): self.assertSequenceEqual( get_average(Ergebnis2009, self.f, 'ue_gesamt'), [1.5, 2])