def register(request, uuid): """ Student registration view for session. """ invitation = shortcuts.get_object_or_404(models.Invitation, uuid=uuid) base_info = invitation.base try: student_info = invitation.student_info except models.StudentInfo.DoesNotExist: pass else: if check_condition(u'send-confirmation-mail'): assert False registration_info = student_info.registrationinfo template = automation_models.Email.objects.get(id=3) assert u'pasirinkimai' in template.subject mail.send_template_mail( template, (student_info.email,), u'FIXME', { 'base_info': base_info, 'student_info': student_info, 'registration_info': registration_info, 'info': info, }) return shortcuts.render( request, 'nmadb-session-reg/registration-finished.html', { 'base_info': base_info, 'student_info': student_info, 'info': info, }, ) if check_condition(u'registration-closed'): return shortcuts.render( request, 'nmadb-session-reg/closed.html', {'info': info}, ) if request.method == 'POST': form = forms.RegistrationFormSet( base_info, invitation, request.POST) if form.is_valid(): form.save() return shortcuts.redirect( 'nmadb-session-reg-registration', uuid) else: form = forms.RegistrationFormSet(base_info, invitation) return { 'info': info, 'form': form, }
def index(request): """ Shows index page. """ if check_condition(u'registration-ended'): return shortcuts.render( request, 'nmadb-entrance/ended.html', { 'info': info, }, ) form_errors = False if request.method == 'POST': form = forms.BaseInfoForm(request.POST) if form.is_valid(): base_info = form.save(commit=False) today = datetime.date.today() base_info.school_year = today.year + int(today.month >= 9) base_info.generated_address = None base_info.save() pdf.generate_teacher_hand_form(base_info) if check_condition('vip', base_info=base_info): # TODO #notify.delay_registration(base_info) raise Exception("Not implemented.") return shortcuts.redirect( 'nmadb-entrance-delay-registration') else: notify.confirm_base_registration(base_info) return shortcuts.redirect('nmadb-entrance-started') else: form_errors = True else: form = forms.BaseInfoForm() return { 'info': info, 'form': form, 'form_errors': form_errors, }
def clean(self): """ Forbids registration. """ super(BaseInfoForm, self).clean() cleaned_data = self.cleaned_data if check_condition( u'registration-ended-custom', base_info_cd=cleaned_data): raise forms.ValidationError( _(u'Registration ended.')) return cleaned_data
def send_if_all(base_info): """ Sends information about finished registration if all forms are filled. """ try: pupil_info = base_info.pupilinfo_set.get() teacher_info = base_info.teacherinfo_set.get() except (models.PupilInfo.DoesNotExist, models.TeacherInfo.DoesNotExist): return if check_condition(u'pupil-notify-done'): email = mail.EmailMessage(( u'[{0} metų NMA atranka] ' u'{1.first_name} {1.last_name} baigta registracija').format( info.year, base_info)) email.body = get_template( 'nmadb-entrance/mail/registration_finished_pupil.txt' ).render( Context({ 'base_info': base_info, 'info': info, 'current_site': Site.objects.get_current(), })) email.from_email = info.admin_email email.to = [base_info.email] attach_file(email, base_info, u'TC') attach_file(email, base_info, u'PC') email.send() if check_condition(u'admin-notify-done'): email = mail.EmailMessage(( u'[{0} metų NMA atranka] ' u'{1.first_name} {1.last_name} baigta registracija').format( info.year, base_info)) email.body = get_template( 'nmadb-entrance/mail/registration_finished_admin.txt' ).render( Context({ 'base_info': base_info, 'info': info, 'current_site': Site.objects.get_current(), })) email.from_email = info.admin_email email.to = [info.manager_email] attach_file(email, base_info, u'TC') attach_file(email, base_info, u'PC') email.send()