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