Example #1
0
def validate_email_and_national_id(email, national_id):
    applicant = Applicant.get_applicant_by_national_id(national_id)
    if applicant!=None:
        return (False, 'national_id', applicant)
    else:
        applicant = Applicant.get_applicant_by_email(email)
        if applicant!=None:
            return (False, 'email', applicant)
        else:
            return (True, None, None)
Example #2
0
def validate_email_and_national_id(email, national_id):
    applicant = Applicant.get_applicant_by_national_id(national_id)
    if applicant != None:
        return (False, 'national_id', applicant)
    else:
        applicant = Applicant.get_applicant_by_email(email)
        if applicant != None:
            return (False, 'email', applicant)
        else:
            return (True, None, None)
Example #3
0
    def create_applicant(self):
        applicant = Applicant(title=self.regis_data['title'],
                              first_name=self.regis_data['first_name'],
                              last_name=self.regis_data['last_name'],
                              email=self.regis_data['email'])
        password = applicant.random_password()
        applicant.save()
        registration = Registration(applicant=applicant,
                                    first_name=applicant.first_name,
                                    last_name=applicant.last_name)
        registration.random_and_save()

        return applicant, password
Example #4
0
    def create_applicant(self):
        applicant = Applicant(
            title=self.regis_data['title'],
            first_name=self.regis_data['first_name'],
            last_name=self.regis_data['last_name'],
            email=self.regis_data['email']
            )
        password = applicant.random_password()
        applicant.save()
        registration = Registration(
            applicant=applicant,
            first_name=applicant.first_name,
            last_name=applicant.last_name
            )
        registration.random_and_save()

        return applicant, password
Example #5
0
def index(request):
    notice = get_notice_message_and_clear(request)

    active_applicants = Applicant.get_active_offline_applicants()

    new_app_form = NewAppForm()

    return render_to_response("manual/index.html",
                              { 'notice': notice,
                                'active_applicants': active_applicants,
                                'form': new_app_form })
Example #6
0
def main():
    f = codecs.open(result_filename, encoding='utf8')
    lines = f.readlines()
    c = 0
    c1 = 0
    for l in lines:
        items = l.strip().split(',')
        if len(items) == 7:
            nat_id, title, first_name, last_name, email, password, major = items
            try:
                a = Applicant.objects.get(national_id=nat_id)
            except:
                a = Applicant(national_id=nat_id,
                              title=title,
                              first_name=first_name,
                              last_name=last_name,
                              email=email)
                a.random_password()
                print 'created applicant for', nat_id
                c1 += 1

            a.has_additional_result = True
            if len(password) > 10:
                a.additional_hashed_password = password
            else:
                a.set_password(password)
            a.save()

            old_results = AdditionalResult.objects.filter(
                applicant=a, round_number=round_number).all()
            if len(old_results) == 0:
                additional_result = AdditionalResult(applicant=a)
            else:
                additional_result = old_results[0]

            additional_result.name = major
            additional_result.round_number = round_number
            additional_result.save()
            c += 1

    print "Imported %d applicants (%d created)" % (c, c1)
Example #7
0
def main():
    f = codecs.open(result_filename,encoding='utf8')
    lines = f.readlines()
    c = 0
    c1 = 0
    for l in lines:
        items = l.strip().split(',')
        if len(items)==7:
            nat_id, title, first_name, last_name, email, password, major = items
            try:
                a = Applicant.objects.get(national_id=nat_id)
            except:
                a = Applicant(national_id=nat_id,
                              title=title,
                              first_name=first_name,
                              last_name=last_name,
                              email=email)
                a.random_password()
                print 'created applicant for', nat_id
                c1 += 1


            a.has_additional_result = True
            if len(password)>10:
                a.additional_hashed_password = password
            else:
                a.set_password(password)
            a.save()

            old_results = AdditionalResult.objects.filter(applicant=a,
                                                          round_number=round_number).all()
            if len(old_results)==0:
                additional_result = AdditionalResult(applicant=a)
            else:
                additional_result = old_results[0]

            additional_result.name = major
            additional_result.round_number = round_number
            additional_result.save()
            c += 1

    print "Imported %d applicants (%d created)" % (c,c1)
Example #8
0
File: views.py Project: jittat/adm2
def find_basic_statistics():
    total_submitted_app_count = SubmissionInfo.objects.count()
    paid_app_count = SubmissionInfo.objects.filter(is_paid=True).count()
    imported_app_count = NIETSScores.objects.filter(is_request_successful=True).count()
    imported_problem_app_count = NIETSScores.objects.filter(is_request_successful=False).count()
    ready_app_count = Applicant.get_ready_applicants().count()
    stat = {
        'online_app_registered': Applicant.objects.count(),
        'app_ready': ready_app_count,
        'app_submitted': total_submitted_app_count,
        'app_paid':  paid_app_count,
        'app_imported': imported_app_count,
        'app_imported_problem': imported_problem_app_count,
        }
    return stat
Example #9
0
    def test_app_can_see_link_edu_info_change_before_grace_period(self):
        old_grace_period_end = settings.SUBMISSION_CHANGE_GRACE_PERIOD_END
        settings.SUBMISSION_CHANGE_GRACE_PERIOD_END = (datetime.now() +
                                                       timedelta(1))

        applicant = Applicant.get_applicant_by_email(SOMCHAI_EMAIL)
        applicant.submission_info.submitted_at = (
            settings.SUBMISSION_CHANGE_GRACE_PERIOD_END - timedelta(1))
        applicant.submission_info.save()

        self._login_required(SOMCHAI_EMAIL, SOMCHAI_PASSWORD)

        response = self.client.get('/apply/status/')
        self.assertContains(response, "id_edu-update-button")
        self.assertContains(response, "id_majors-update-button")

        settings.SUBMISSION_CHANGE_GRACE_PERIOD_END = old_grace_period_end
Example #10
0
def find_basic_statistics():
    total_submitted_app_count = SubmissionInfo.objects.count()
    paid_app_count = SubmissionInfo.objects.filter(is_paid=True).count()
    imported_app_count = NIETSScores.objects.filter(
        is_request_successful=True).count()
    imported_problem_app_count = NIETSScores.objects.filter(
        is_request_successful=False).count()
    ready_app_count = Applicant.get_ready_applicants().count()
    stat = {
        'online_app_registered': Applicant.objects.count(),
        'app_ready': ready_app_count,
        'app_submitted': total_submitted_app_count,
        'app_paid': paid_app_count,
        'app_imported': imported_app_count,
        'app_imported_problem': imported_problem_app_count,
    }
    return stat
Example #11
0
    def test_app_can_see_link_edu_info_change_before_grace_period(self):
        old_grace_period_end = settings.SUBMISSION_CHANGE_GRACE_PERIOD_END
        settings.SUBMISSION_CHANGE_GRACE_PERIOD_END = (
            datetime.now() + timedelta(1))

        applicant = Applicant.get_applicant_by_email(SOMCHAI_EMAIL)
        applicant.submission_info.submitted_at = (
            settings.SUBMISSION_CHANGE_GRACE_PERIOD_END
            - timedelta(1)
            )
        applicant.submission_info.save()

        self._login_required(SOMCHAI_EMAIL,SOMCHAI_PASSWORD)

        response = self.client.get('/apply/status/')
        self.assertContains(response, "id_edu-update-button")
        self.assertContains(response, "id_majors-update-button")

        settings.SUBMISSION_CHANGE_GRACE_PERIOD_END = old_grace_period_end
Example #12
0
    def test_activation_key_verification(self):
        applicant = Applicant(first_name='สมชาย',
                              last_name='ใจดี',
                              email='*****@*****.**')
        applicant.save()
        keys = []
        # try with 3 registrations
        for i in range(3):
            registration = Registration(applicant=applicant,
                                        first_name='s',
                                        last_name='c')
            registration.random_and_save()
            keys.append(registration.activation_key)

        for k in keys:
            self.assertTrue(applicant.verify_activation_key(k))
        self.assertFalse(applicant.verify_activation_key('1234567'))
        for k in keys:
            self.assertFalse(applicant.verify_activation_key('1'+k))
Example #13
0
def run():
    app = create_app()
    app.app_context().push()

    for applicant_dict in applicants:
        applicant = Applicant(**applicant_dict)
        db.session.add(applicant)

    db.session.commit()

    for group_dict in groups:
        group = Group(**group_dict)
        db.session.add(group)

    db.session.commit()

    user_adm = User(name='admin',
                    email='*****@*****.**',
                    password='******')
    user = User(name='user', email='*****@*****.**', password='******')

    db.session.add_all([user_adm, user])
    db.session.commit()