コード例 #1
0
def build_row(applicant, registration, personal_info, major_number):
    if registration == None:
        registration = StudentRegistration()

    if applicant.title == u'นาย':
        gender = 'M'
        eng_title = 'Mr.'
    else:
        gender = 'F'
        eng_title = 'Miss'

    bd_year = personal_info.birth_date.year + 543
    birth_date_str = personal_info.birth_date.strftime("%d/%m") + "/" + str(
        bd_year)
    try:
        address = applicant.address.home_address
    except:
        address = Address()

    try:
        education = applicant.education
    except:
        education = Education()

    major_number_str = '0' * (3 - len(str(major_number))) + str(major_number)
    try:
        major = Major.objects.get(number=major_number_str)
    except:
        major = Major.objects.get(number='001')

    if major_number < 100:
        status = u'ปกติ'
    elif major_number < 200:
        status = u'พิเศษ'
    else:
        status = u'นานาชาติ'

    try:
        submission_info = applicant.submission_info
    except:
        applicant.submission_info = SubmissionInfo()
        applicant.submission_info.submitted_at = datetime.datetime.now()

    vnum = ''
    if address.village_number != 0 and address.village_number != None:
        vnum = address.village_number

    ticket_number = ''
    try:
        ticket_number = unicode(applicant.ticket_number())
    except:
        pass

    return u','.join([
        u'"%s"' % s for s in [
            ticket_number,
            applicant.national_id,
            registration.passport_number,
            gender,
            applicant.title,
            applicant.first_name,
            applicant.last_name,
            eng_title,
            registration.english_first_name,
            registration.english_last_name.capitalize(),
            personal_info.nationality,
            personal_info.ethnicity,
            registration.religion,
            registration.birth_place,
            birth_date_str,
            address.number,
            vnum,
            registration.address_avenue,
            address.road,
            address.district,
            address.city,
            address.province,
            address.postal_code,
            registration.home_phone_number,
            registration.cell_phone_number,
            applicant.email,
            find_school_code(education.school_name, education.school_province),
            education.school_name,
            education.school_province,
            registration.school_type,
            u'%1.2f' % (registration.GPA),
            u'บางเขน',
            'E',
            u'วิศวกรรมศาสตร์',
            MAJOR_CODE[int(major.number)],
            major.name,
            u'รับตรง คณะวิศวกรรมศาสตร์',
            status,
            unicode(
                applicant.submission_info.submitted_at.strftime('%d/%m/2555')),
            unicode(applicant.submission_info.submitted_at.strftime(
                '%H/%M/%S')),
            u'0002',
            u'เกษตรศาสตร์',
            applicant.clearing_house_result.password,
            registration.father_title,
            registration.father_first_name,
            registration.father_last_name,
            registration.father_national_id,
            registration.mother_title,
            registration.mother_first_name,
            registration.mother_last_name,
            registration.mother_national_id,
        ]
    ])