def add_teacher_info(request, uuid): """ Shows form for teacher. """ base_info = shortcuts.get_object_or_404(models.BaseInfo, uuid=uuid) try: base_info.teacherinfo_set.get() except models.TeacherInfo.DoesNotExist: pass else: return shortcuts.render( request, 'nmadb-entrance/teacher-form-filled.html', { 'base_info': base_info, 'info': info, } ) form_errors = False if request.method == 'POST': form = forms.TeacherInfoForm(request.POST) if form.is_valid(): teacher_info = form.save(commit=False) teacher_info.base = base_info teacher_info.save() pdf.generate_teacher_filled_form(base_info, teacher_info) notify.send_filled_teacher_form(base_info, teacher_info) notify.send_if_all(base_info) return shortcuts.redirect( 'nmadb-entrance-add-teacher-info', uuid) else: form_errors = True else: form = forms.TeacherInfoForm() return { 'info': info, 'form': form, 'form_errors': form_errors, 'base_info': base_info, }
def add_pupil_info(request, uuid): """ Shows form for pupil. """ base_info = shortcuts.get_object_or_404(models.BaseInfo, uuid=uuid) try: base_info.pupilinfo_set.get() except models.PupilInfo.DoesNotExist: pass else: return shortcuts.render( request, 'nmadb-entrance/pupil-form-filled.html', { 'base_info': base_info, 'info': info, }, ) form_errors = False pupil_form = None address_form = None if base_info.generated_address: if request.method == 'POST': pupil_form = forms.PupilInfoForm(request.POST) if pupil_form.is_valid(): pupil_info = pupil_form.save(commit=False) pupil_info.base = base_info pupil_info.save() pdf.generate_pupil_filled_form(base_info, pupil_info) notify.send_filled_pupil_form(base_info, pupil_info) notify.send_if_all(base_info) return shortcuts.redirect( 'nmadb-entrance-add-pupil-info', uuid) else: form_errors = True else: pupil_form = forms.PupilInfoForm() else: if request.method == 'POST': pupil_form = forms.PupilInfoForm(request.POST) address_form = registration_forms.AddressForm(request.POST) if pupil_form.is_valid() and address_form.is_valid(): address = address_form.save() pupil_info = pupil_form.save(commit=False) pupil_info.home_address = address pupil_info.base = base_info pupil_info.save() base_info.generated_address = unicode(address) base_info.save() pdf.generate_pupil_filled_form(base_info, pupil_info) notify.send_filled_pupil_form(base_info, pupil_info) notify.send_if_all(base_info) return shortcuts.redirect( 'nmadb-entrance-add-pupil-info', uuid) else: form_errors = True else: pupil_form = forms.PupilInfoForm() address_form = registration_forms.AddressForm() return { 'info': info, 'pupil_form': pupil_form, 'address_form': address_form, 'form_errors': form_errors, 'base_info': base_info, 'achievements_from_year': info.year - 2, }