def pupil_ta_info(request, pupil_id, subject_id, grade_id): pupil = get_object_or_404(Pupil, id=pupil_id) ta = get_object_or_404(TeachingAssignment, subject__id=subject_id, grade__id=grade_id, teacher=request.teacher) try: info = PupilTAInfo.objects.get(pupil=pupil, teaching_assignment=ta) except ObjectDoesNotExist: info = PupilTAInfo(pupil=pupil, teaching_assignment=ta) info.save() formclass = modelform_factory(PupilTAInfo, fields=('info', 'written_exam_rating')) if request.method == 'POST': form = formclass(request.POST, instance=info) if form.is_valid(): info = form.save(commit=False) info.pupil = pupil info.teaching_assignment = ta info.save() messages.success(request, 'Notiz wurde gespeichert') return HttpResponseRedirect( reverse('pupil-ta_info', kwargs=dict(pupil_id=pupil_id, subject_id=subject_id, grade_id=grade_id))) else: form = formclass(instance=info) return render( request, 'gsaudit/pupil/profile.html', { 'info': info, 'form': form, 'grade': ta.grade, 'subject': ta.subject, 'pupil': pupil, 'pupil_info_view': True })
def subject_statistics(request, grade_id=0, subject_id=0): ''' Renders the view for the given pupil ''' user = request.user if user is None: return render(request, 'login/error.html') grade = get_object_or_404(Grade, id=grade_id) subject = get_object_or_404(Subject, id=subject_id) assignment = TeachingAssignment.objects.get(grade=grade, subject=subject, teacher=user) grade_participants = GradeParticipant.objects.filter( grade=assignment.grade) subject_stats = [] for grade_participant in grade_participants: eval_helper = EvaluationHelper(assignment=assignment, pupil=grade_participant.pupil) try: info = PupilTAInfo.objects.get(pupil=grade_participant.pupil, teaching_assignment=assignment) except ObjectDoesNotExist: info = PupilTAInfo(pupil=grade_participant.pupil, teaching_assignment=assignment) info.save() subject_stats.append({'evaluation': eval_helper, 'info': info}) return render( request, 'gsaudit/course/subject_statistic.html', { 'user': user, 'grade': grade, 'subject': subject, 'categories': eval_helper.categories, 'written_exams': eval_helper.written_exams, 'subject_stats': subject_stats, 'subject_statistic_view': True, })
def pupil_eval_info(request, pupil_id, subject_id, grade_id): pupil = get_object_or_404(Pupil, id=pupil_id) ta = get_object_or_404(TeachingAssignment, subject__id=subject_id, grade__id=grade_id, teacher=request.teacher) eval_helper = EvaluationHelper(assignment=ta, pupil=pupil) try: info = PupilTAInfo.objects.get(pupil=pupil, teaching_assignment=ta) except ObjectDoesNotExist: info = PupilTAInfo(pupil=pupil, teaching_assignment=ta) info.save() return render( request, 'gsaudit/pupil/eval.html', { 'info': info, 'evaluation': eval_helper, 'grade': ta.grade, 'subject': ta.subject, 'pupil': pupil, 'pupil_eval_info_view': True, })