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