示例#1
0
def request_status(request):
    notice = ''
    if request.method == 'POST':
        form = StatusRequestForm(request.POST)
        if form.is_valid():
            email = form.cleaned_data['email']
            applicants = Applicant.objects.filter(email__iendswith=email).all()
            real_applicants = [a for a in applicants 
                               if a.get_email().lower() == email.lower()]
            if len(real_applicants)==0:

                send_status_by_email_no_applicant(email)
                notice = u'ระบบได้จัดส่งจดหมายอิเล็กทรอนิกส์ไปยัง ' + email + u' แล้ว'
            else:
                if (settings.SHOW_FINAL_ADMISSION_RESULTS) or (settings.SHOW_ADMISSION_RESULTS):
                    applicant = filter_admitted_applicants(real_applicants)
                    if applicant!=None:
                        if settings.SHOW_FINAL_ADMISSION_RESULTS:
                            send_final_admission_status_by_mail(applicant)
                        else:
                            send_admission_status_by_mail(applicant)
                        notice = u'ระบบได้จัดส่งจดหมายอิเล็กทรอนิกส์ไปยัง ' + email + u' แล้ว'
                    else:
                        send_admission_status_problem_by_mail(email)
                        notice = u'มีปัญหาในการเรียกค้น ระบบได้จัดส่งจดหมายอิเล็กทรอนิกส์ไปยัง ' + email + u' แล้ว'
                else:
                    submitted_applicants = [a for a in real_applicants if a.is_submitted] 
                    if len(submitted_applicants)==1:
                        send_status_by_email(submitted_applicants[0])
                    elif len(submitted_applicants)==0:
                        send_status_by_email_not_submitted(email, real_applicants)
                    else:
                        send_status_by_email_many_submitted_apps(submitted_applicants)
                    notice = u'ระบบได้จัดส่งจดหมายอิเล็กทรอนิกส์ไปยัง ' + email + u' แล้ว'
    else:
        form = StatusRequestForm()

    return render_to_response('application/status/request.html', 
                              { 'form': form,
                                'notice': notice })
示例#2
0
def main():
    print 'Sending mails...'

    while True:
        try:
            nat_id = raw_input().strip()
        except:
            break

        personal_infos = (PersonalInfo.objects
                         .filter(national_id=nat_id)
                         .select_related(depth=1))

        emails = {}
        for pinfo in personal_infos:
            if pinfo.applicant.email not in emails:
                emails[pinfo.applicant.email] = pinfo.applicant

        for email, app in emails.iteritems():
            print email, app.full_name()
            send_final_admission_status_by_mail(app)
            time.sleep(5)