Esempio n. 1
0
def apply_course_in_addition(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    if request.method == "POST":
        try:
            userprofile = UserProfile.objects.get(user=request.user)
        except ObjectDoesNotExist:
            return redirect("createprofile")
        TrainessCourseRecord.objects.filter(course__site__is_active=True, trainess=userprofile).delete()
        course_prefs = json.loads(request.POST.get('course'))
        if len(course_prefs) <= ADDITION_PREFERENCE_LIMIT:
            if len(set([i['value'] for i in course_prefs])) == len([i['value'] for i in course_prefs]):
                for course_pre in course_prefs:
                    try:
                        course_object = Course.objects.get(id=course_pre['value'])
                        if course_object.application_is_open:
                            course_record = TrainessCourseRecord(trainess=userprofile,
                                                                 course=course_object,
                                                                 preference_order=(-1) * int(course_pre['name']))
                            course_record.save()
                            log.debug("ek tercih kaydedildi " + str(course_pre['value']), extra=d)
                        else:
                            message = "Kurs basvurulara kapali"
                            log.error(message + " " + str(course_pre['value']), extra=d)
                    except Exception as e:
                        log.error(e.message, extra=d)
                        message = "Tercihleriniz kaydedilirken hata oluştu"
                        return HttpResponse(json.dumps({'status': '-1', 'message': message}),
                                            content_type="application/json")
                message = "Tercihleriniz başarılı bir şekilde güncellendi"
                return HttpResponse(json.dumps({'status': '0', 'message': message}), content_type="application/json")
    message = "Tercih işlemi yapmanıza izin verilmiyor"
    return HttpResponse(json.dumps({'status': '-1', 'message': message}), content_type="application/json")
Esempio n. 2
0
def apply_course_in_addition(request):
    if request.method == "POST":
        try:
            userprofile = UserProfile.objects.get(user=request.user)
        except ObjectDoesNotExist:
            return redirect("createprofile")
        TrainessCourseRecord.objects.filter(course__site=request.site, trainess=userprofile).delete()
        course_prefs = json.loads(request.POST.get('course'))
        if len(course_prefs) <= ADDITION_PREFERENCE_LIMIT:
            if len(set([i['value'] for i in course_prefs])) == len([i['value'] for i in course_prefs]):
                for course_pre in course_prefs:
                    try:
                        course_object = Course.objects.get(id=course_pre['value'])
                        if course_object.application_is_open:
                            course_record = TrainessCourseRecord(trainess=userprofile,
                                                                 course=course_object,
                                                                 preference_order=(-1) * int(course_pre['name']))
                            course_record.save()
                            log.debug("ek tercih kaydedildi " + str(course_pre['value']), extra=request.log_extra)
                        else:
                            message = "Kurs basvurulara kapali"
                            log.error(message + " " + str(course_pre['value']), extra=request.log_extra)
                    except Exception as e:
                        log.error(e.message, extra=request.log_extra)
                        message = "Tercihleriniz kaydedilirken hata oluştu"
                        return HttpResponse(json.dumps({'status': '-1', 'message': message}),
                                            content_type="application/json")
                message = "Tercihleriniz başarılı bir şekilde güncellendi"
                return HttpResponse(json.dumps({'status': '0', 'message': message}), content_type="application/json")
    message = "Tercih işlemi yapmanıza izin verilmiyor"
    return HttpResponse(json.dumps({'status': '-1', 'message': message}), content_type="application/json")
Esempio n. 3
0
def save_course_prefferences(userprofile,
                             course_prefs,
                             site,
                             d,
                             answersforcourse=None):
    res = {'status': '-1', 'message': 'error'}
    if len(course_prefs) <= PREFERENCE_LIMIT:
        context = {}
        oldprefs = TrainessCourseRecord.objects.filter(course__site=site,
                                                       trainess=userprofile)

        context['oldprefs'] = {}
        is_changed = False
        if oldprefs:
            for oldpref in oldprefs:
                context['oldprefs'][oldpref.preference_order] = {
                    'course_id': oldpref.course.pk,
                    'course_no': oldpref.course.no,
                    'course_name': oldpref.course.name
                }
            oldprefs.delete()
        else:
            is_changed = True
        try:
            course_records = []
            for i in range(1, len(course_prefs) + 1):
                if context['oldprefs']:
                    if len(context['oldprefs']) != len(
                            course_prefs) or context['oldprefs'][i].get(
                                'course_id') != int(course_prefs[str(i)]):
                        is_changed = True
                course = Course.objects.get(id=int(course_prefs[str(i)]))
                course_record = TrainessCourseRecord(
                    trainess=userprofile,
                    course=course,
                    preference_order=i,
                )
                course_record.save()
                course_records.append(course_record)
                if answersforcourse:
                    answers = answersforcourse.get(course_prefs[str(i)])
                    if answers:
                        tta = TrainessTestAnswers(tcourserecord=course_record)
                        tta.save()
                        tta.answer.add(*answers)
                        tta.save()
            res['status'] = 0
            res['message'] = "Tercihleriniz başarılı bir şekilde güncellendi"
            context['user'] = userprofile.user
            context['course_prefs'] = course_records
            domain = site.home_url
            context['domain'] = domain.rstrip('/')
            try:
                if is_changed:
                    if SEND_REPORT:
                        context['recipientlist'] = REPORT_RECIPIENT_LIST
                        send_email_by_operation_name(
                            context, "notice_for_pref_changes")
                    context['recipientlist'] = [userprofile.user.username]
                    send_email_by_operation_name(context, "preference_saved")
            except Exception as e:
                log.error('Error on line {}'.format(
                    sys.exc_info()[-1].tb_lineno),
                          extra=d)
                log.error(e.message, extra=d)
                log.error("rapor e-postası gönderilemedi", extra=d)
        except Exception as e:
            log.error('Error on line {}'.format(sys.exc_info()[-1].tb_lineno),
                      extra=d)
            log.error(e.message, extra=d)
            res['message'] = "Tercihleriniz kaydedilirken hata oluştu"
    else:
        res['message'] = "En fazla " + PREFERENCE_LIMIT + " tane tercih hakkına sahipsiniz"
    return res
Esempio n. 4
0
def apply_to_course(request):
    d = {"clientip": request.META["REMOTE_ADDR"], "user": request.user}
    data = prepare_template_data(request)
    userprofile = None
    try:
        userprofile = UserProfile.objects.get(user=request.user)
    except ObjectDoesNotExist:
        return redirect("createprofile")
    if userprofile.userpassedtest:
        data["closed"] = "0"
        data["additional1_pref_closed"] = "1"
        data["PREFERENCE_LIMIT"] = PREFERENCE_LIMIT
        data["ADDITION_PREFERENCE_LIMIT"] = ADDITION_PREFERENCE_LIMIT
        message = ""
        now = datetime.date(datetime.now())
        note = _("You can choose courses in order of preference.")
        if request.method == "POST":
            if now < data["site"].application_start_date:
                message = _("You can choose courses in future")
                data["closed"] = True
                return HttpResponse(json.dumps({"status": "-1", "message": message}), content_type="application/json")
            elif now > data["site"].application_end_date:
                message = _("The course choosing process is closed")
                data["closed"] = True
                return HttpResponse(json.dumps({"status": "-1", "message": message}), content_type="application/json")
            TrainessCourseRecord.objects.filter(trainess=userprofile).delete()
            course_prefs = json.loads(request.POST.get("course"))
            if len(course_prefs) <= PREFERENCE_LIMIT:
                if len(set([i["value"] for i in course_prefs])) == len([i["value"] for i in course_prefs]):
                    for course_pre in course_prefs:
                        try:
                            course_record = TrainessCourseRecord(
                                trainess=userprofile,
                                course=Course.objects.get(id=course_pre["value"]),
                                preference_order=course_pre["name"],
                            )
                            course_record.save()
                            message = "Tercihleriniz başarılı bir şekilde güncellendi"
                        except Exception as e:
                            log.error(e.message, extra=d)
                            message = "Tercihleriniz kaydedilirken hata oluştu"
                            return HttpResponse(
                                json.dumps({"status": "-1", "message": message}), content_type="application/json"
                            )
                else:
                    message = "Farklı Tercihlerinizde Aynı Kursu Seçemezsiniz"
                    return HttpResponse(
                        json.dumps({"status": "-1", "message": message}), content_type="application/json"
                    )
                try:
                    context = {}
                    context["user"] = request.user
                    domain = Site.objects.get(is_active=True).home_url
                    if domain.endswith("/"):
                        domain = domain.rstrip("/")
                    context["domain"] = domain

                    send_email(
                        "training/messages/preference_saved_subject.html",
                        "training/messages/preference_saved.html",
                        "training/messages/preference_saved.text",
                        context,
                        EMAIL_FROM_ADDRESS,
                        [request.user.username],
                    )
                except Exception as e:
                    log.error(e.message, extra=d)

                return HttpResponse(json.dumps({"status": "0", "message": message}), content_type="application/json")
            else:
                message = "En fazla " + PREFERENCE_LIMIT + " tane tercih hakkına sahipsiniz"
                return HttpResponse(json.dumps({"status": "-1", "message": message}), content_type="application/json")

        additipnal_pref_start_for_trainess = ApprovalDate.objects.get(
            site=data["site"], preference_order=1, for_instructor=True
        ).start_date
        courses = Course.objects.filter(approved=True)
        course_records = TrainessCourseRecord.objects.filter(trainess__user=request.user).order_by("preference_order")
        data["courses"] = courses
        data["course_records"] = course_records
        data["note"] = note
        if now < data["site"].application_start_date:
            data["note"] = _("You can choose courses in future")
            data["closed"] = "1"
            return render_to_response("training/courserecord.html", data)
        elif now > data["site"].application_end_date:
            data["note"] = _("The course choosing process is closed")
            data["closed"] = "1"
            if (
                len(
                    TrainessCourseRecord.objects.filter(trainess_approved=True)
                    .filter(preference_order__gte=0)
                    .filter(trainess=userprofile)
                )
                == 0
            ):
                try:
                    additional1_pref_for_trainess = ApprovalDate.objects.get(
                        site=data["site"], preference_order=-1, for_trainess=True
                    )
                    now_for_pref = timezone.now()
                    if (
                        now_for_pref > additional1_pref_for_trainess.start_date
                        and now_for_pref < additional1_pref_for_trainess.end_date
                    ):
                        data["additional1_pref_closed"] = "0"
                        log.debug("ek tercih aktif", extra=d)
                        data["note"] = _("Ek tercih dönemi içindesiniz, ek tercih yapabilirsiniz")
                except ObjectDoesNotExist:
                    log.error("ek tercih icin sure bulunamadi", extra=d)
                except Exception as e:
                    log.error(e.message, extra=d)
            return render_to_response("training/courserecord.html", data)
        return render_to_response("training/courserecord.html", data)
    else:
        return redirect("testbeforeapply")
Esempio n. 5
0
def save_course_prefferences(userprofile, course_prefs, site, d, answersforcourse=None):
    res = {'status': '-1', 'message': 'error'}
    if len(course_prefs) <= PREFERENCE_LIMIT:
        context = {}
        oldprefs = TrainessCourseRecord.objects.filter(course__site__is_active=True, trainess=userprofile)

        context['oldprefs'] = {}
        is_changed = False
        if oldprefs:
            for oldpref in oldprefs:
                context['oldprefs'][oldpref.preference_order] = {
                    'course_id': oldpref.course.pk,
                    'course_no': oldpref.course.no,
                    'course_name': oldpref.course.name}
            oldprefs.delete()
        else:
            is_changed = True
        try:
            course_records = []
            for i in range(1, len(course_prefs) + 1):
                if context['oldprefs']:
                    if len(context['oldprefs']) != len(course_prefs) or context['oldprefs'][i].get('course_id') != int(
                            course_prefs[str(i)]):
                        is_changed = True
                course = Course.objects.get(id=int(course_prefs[str(i)]))
                course_record = TrainessCourseRecord(trainess=userprofile,
                                                     course=course,
                                                     preference_order=i,
                                                     )
                course_record.save()
                course_records.append(course_record)
                if answersforcourse:
                    answers = answersforcourse.get(course_prefs[str(i)])
                    if answers:
                        tta = TrainessTestAnswers(tcourserecord=course_record)
                        tta.save()
                        tta.answer.add(*answers)
                        tta.save()
            res['status'] = 0
            res['message'] = "Tercihleriniz başarılı bir şekilde güncellendi"
            context['user'] = userprofile.user
            context['course_prefs'] = course_records
            context['site'] = site
            domain = site.home_url
            context['domain'] = domain.rstrip('/')
            try:
                if is_changed:
                    if SEND_REPORT:
                        context['recipientlist'] = REPORT_RECIPIENT_LIST
                        send_email_by_operation_name(context, "notice_for_pref_changes")
                    context['recipientlist'] = [userprofile.user.username]
                    send_email_by_operation_name(context, "preference_saved")
            except Exception as e:
                log.error('Error on line {}'.format(sys.exc_info()[-1].tb_lineno), extra=d)
                log.error(e.message, extra=d)
                log.error("rapor e-postası gönderilemedi", extra=d)
        except Exception as e:
            log.error('Error on line {}'.format(sys.exc_info()[-1].tb_lineno), extra=d)
            log.error(e.message, extra=d)
            res['message'] = "Tercihleriniz kaydedilirken hata oluştu"
    else:
        res['message'] = "En fazla " + PREFERENCE_LIMIT + " tane tercih hakkına sahipsiniz"
    return res
Esempio n. 6
0
def apply_to_course(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)
    userprofile = None
    try:
        userprofile = UserProfile.objects.get(user=request.user)
    except ObjectDoesNotExist:
        return redirect("createprofile")
    if userprofile.userpassedtest:
        data['closed'] = "0"
        data['PREFERENCE_LIMIT'] = PREFERENCE_LIMIT
        message = ""
        now = datetime.date(datetime.now())
        note = _("You can choose courses in order of preference.")
        if request.method == "POST":
            if now < data['site'].application_start_date:
                message = _("You can choose courses in future")
                data['closed'] = True
                return HttpResponse(json.dumps({
                    'status': '-1',
                    'message': message
                }),
                                    content_type="application/json")
            elif now > data['site'].application_end_date:
                message = _("The course choosing process is closed")
                data['closed'] = True
                return HttpResponse(json.dumps({
                    'status': '-1',
                    'message': message
                }),
                                    content_type="application/json")
            TrainessCourseRecord.objects.filter(trainess=userprofile).delete()
            course_prefs = json.loads(request.POST.get('course'))
            if len(course_prefs) <= PREFERENCE_LIMIT:
                if len(set([i['value'] for i in course_prefs
                            ])) == len([i['value'] for i in course_prefs]):
                    for course_pre in course_prefs:
                        try:
                            course_record = TrainessCourseRecord(
                                trainess=userprofile,
                                course=Course.objects.get(
                                    id=course_pre['value']),
                                preference_order=course_pre['name'])
                            course_record.save()
                            message = "Tercihleriniz başarılı bir şekilde güncellendi"
                        except Exception as e:
                            log.error(e.message, extra=d)
                            message = "Tercihleriniz kaydedilirken hata oluştu"
                            return HttpResponse(
                                json.dumps({
                                    'status': '-1',
                                    'message': message
                                }),
                                content_type="application/json")
                else:
                    message = "Farklı Tercihlerinizde Aynı Kursu Seçemezsiniz"
                    return HttpResponse(json.dumps({
                        'status': '-1',
                        'message': message
                    }),
                                        content_type="application/json")
                try:
                    context = {}
                    context['user'] = request.user
                    domain = Site.objects.get(is_active=True).home_url
                    if domain.endswith('/'):
                        domain = domain.rstrip('/')
                    context['domain'] = domain

                    send_email(
                        "training/messages/preference_saved_subject.html",
                        "training/messages/preference_saved.html",
                        "training/messages/preference_saved.text", context,
                        EMAIL_FROM_ADDRESS, [request.user.username])
                except Exception as e:
                    log.error(e.message, extra=d)

                return HttpResponse(json.dumps({
                    'status': '0',
                    'message': message
                }),
                                    content_type="application/json")
            else:
                message = "En fazla " + PREFERENCE_LIMIT + " tane tercih hakkına sahipsiniz"
                return HttpResponse(json.dumps({
                    'status': '-1',
                    'message': message
                }),
                                    content_type="application/json")
        courses = Course.objects.filter(approved=True)
        course_records = TrainessCourseRecord.objects.filter(
            trainess__user=request.user).order_by('preference_order')
        data['courses'] = courses
        data['course_records'] = course_records
        data['note'] = note
        if now < data['site'].application_start_date:
            data['note'] = _("You can choose courses in future")
            data['closed'] = "1"
            return render_to_response('training/courserecord.html', data)
        elif now > data['site'].application_end_date:
            data['note'] = _("The course choosing process is closed")
            data['closed'] = "1"
            return render_to_response('training/courserecord.html', data)
        return render_to_response('training/courserecord.html', data)
    else:
        return redirect("testbeforeapply")
Esempio n. 7
0
def apply_to_course(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data=prepare_template_data(request)
    userprofile=None
    try:
        userprofile = UserProfile.objects.get(user=request.user)
    except ObjectDoesNotExist:
        return redirect("createprofile")
    if userprofile.userpassedtest:
        data['closed'] = "0"
        data['PREFERENCE_LIMIT'] = PREFERENCE_LIMIT
        message = ""
        now = datetime.date(datetime.now())
        note = _("You can choose courses in order of preference.")
        if request.method == "POST":
            if now < data['site'].application_start_date:
                message = _("You can choose courses in future")
                data['closed'] = True
                return HttpResponse(json.dumps({'status':'-1', 'message':message}), content_type="application/json")
            elif now > data['site'].application_end_date:
                message = _("The course choosing process is closed")
                data['closed'] = True
                return HttpResponse(json.dumps({'status':'-1', 'message':message}), content_type="application/json")
            TrainessCourseRecord.objects.filter(trainess=userprofile).delete()
            course_prefs = json.loads(request.POST.get('course'))
            if len(course_prefs) <= PREFERENCE_LIMIT:
                if len(set([i['value'] for i in course_prefs])) == len([i['value'] for i in course_prefs]):
                    for course_pre in course_prefs:
                        try:
                            course_record = TrainessCourseRecord(trainess=userprofile, 
                                                  course=Course.objects.get(id=course_pre['value']), 
                                                  preference_order=course_pre['name'])
                            course_record.save()
                            message = "Tercihleriniz başarılı bir şekilde güncellendi"
                        except Exception as e:
                            log.error(e.message, extra = d)
                            message = "Tercihleriniz kaydedilirken hata oluştu"
                            return HttpResponse(json.dumps({'status':'-1', 'message':message}), content_type="application/json")
                else:
                    message = "Farklı Tercihlerinizde Aynı Kursu Seçemezsiniz"
                    return HttpResponse(json.dumps({'status':'-1', 'message':message}), content_type="application/json")
                try:
                    context={}
                    context['user'] = request.user
                    domain = Site.objects.get(is_active=True).home_url
                    if domain.endswith('/'):
                        domain = domain.rstrip('/')
                    context['domain'] = domain
 
                    send_email("training/messages/preference_saved_subject.html",
                                 "training/messages/preference_saved.html",
                                 "training/messages/preference_saved.text",
                                 context,
                                 EMAIL_FROM_ADDRESS,
                                 [request.user.username])
                except Exception as e:
                    log.error(e.message, extra = d)
 
                return HttpResponse(json.dumps({'status':'0', 'message':message}), content_type="application/json")
            else:
                message = "En fazla "+ PREFERENCE_LIMIT + " tane tercih hakkına sahipsiniz"
                return HttpResponse(json.dumps({'status':'-1', 'message':message}), content_type="application/json")
        courses = Course.objects.filter(approved=True)
        course_records = TrainessCourseRecord.objects.filter(trainess__user=request.user).order_by('preference_order')
        data['courses'] = courses
        data['course_records'] = course_records
        data['note'] = note
        if now < data['site'].application_start_date:
            data['note'] = _("You can choose courses in future")
            data['closed'] = "1"
            return render_to_response('training/courserecord.html', data)
        elif now > data['site'].application_end_date:
            data['note'] = _("The course choosing process is closed")
            data['closed'] = "1"
            return render_to_response('training/courserecord.html', data) 
        return render_to_response('training/courserecord.html', data)
    else:
        return redirect("testbeforeapply")