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")
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")
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
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")
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
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")
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")