Beispiel #1
0
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,
            }
Beispiel #2
0
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,
            }
Beispiel #3
0
    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
Beispiel #4
0
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()