Example #1
0
def active_resend(request):
    data = prepare_template_data(request)
    note = _(
        "Please activate your account.  If you want to re-send an activation email, please click following button"
    )
    if request.POST:
        user = request.user
        user_verification, created = UserVerification.objects.get_or_create(
            user_email=user.username)
        context = {}
        context['user'] = user
        domain = Site.objects.get(is_active=True).home_url
        if domain.endswith('/'):
            domain = domain.rstrip('/')
        context['domain'] = domain

        user_verification, created = UserVerification.objects.get_or_create(
            user_email=user.username)
        user_verification.activation_key = create_verification_link(user)
        user_verification.save()
        context['activation_key'] = user_verification.activation_key
        try:
            send_email("userprofile/messages/send_confirm_subject.html",
                       "userprofile/messages/send_confirm.html",
                       "userprofile/messages/send_confirm.text", context,
                       settings.EMAIL_FROM_ADDRESS, [user.username])

            note = _(
                "Your activation link has been sent to your email address")
        except Exception as e:
            note = e.message
    data['note'] = note
    return render_to_response("userprofile/activate_resend.html",
                              data,
                              context_instance=RequestContext(request))
Example #2
0
def index(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)
    content = None
    data['state'] = ""
    if not request.user.is_authenticated():
        data['alerttype'] = "alert-info"
        data['state'] = _(
            "If you already have an account, please login from top right hand side of the page"
        )
        if request.POST:
            username = request.POST['username']
            password = request.POST['password']
            user = authenticate(username=username, password=password)
            if user is not None:
                login(request, user)
                log.info("%s user successfuly logged in" % (request.user),
                         extra=d)
                return HttpResponseRedirect('/')
            else:
                data['state'] = _("Login Failed!")
                data['alerttype'] = "alert-danger"
    try:
        if not request.GET.get('menu_id'):
            menu_id = Menu.objects.all().order_by('order').first()
        else:
            menu_id = request.GET.get('menu_id')
        content = Content.objects.get(menu=menu_id)
    except ObjectDoesNotExist:
        content = None
        log.error("%s entered content not found " % (request.user), extra=d)
    except Exception as e:
        log.error("%s error occured %s " % (request.user, e.message), extra=d)
    data['content'] = content
    return render_to_response('dashboard.html', data)
Example #3
0
def statistic(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    try:
        data = prepare_template_data(request)

        record_data = TrainessCourseRecord.objects.filter().values(
            'course',
            'preference_order').annotate(Count('preference_order')).order_by(
                'course', 'preference_order')
        statistic_by_course = {}
        for key, group in itertools.groupby(record_data,
                                            lambda item: item["course"]):
            statistic_by_course[Course.objects.get(pk=key)] = {
                item['preference_order']: item['preference_order__count']
                for item in group
            }
        data['statistic_by_course'] = statistic_by_course

        statistic_by_gender = UserProfile.objects.filter(
            is_student=True).values('gender').annotate(Count('user'))
        data['statistic_by_gender'] = statistic_by_gender

        statistic_by_university = UserProfile.objects.filter(
            is_student=True).values('university').annotate(Count('university'))
        data['statistic_by_university'] = statistic_by_university

        total_profile = len(UserProfile.objects.filter(is_student=True))
        total_preference = len(TrainessCourseRecord.objects.all())
        data['statistic_by_totalsize'] = {
            'Toplam Profil(Kişi)': total_profile,
            'Toplam Tercih': total_preference
        }
    except Exception as e:
        log.error(e.message, extra=d)
    return render_to_response("training/statistic.html", data)
Example #4
0
def testbeforeapply(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)
    data[
        "note"] = "Kurs tercihi yapabilmek için aşağıdaki sorulara doğru yanıt vermelisiniz!"
    try:
        uprof = UserProfile.objects.get(user=request.user)
        if not uprof.userpassedtest:
            questions = Question.objects.filter(active=True).order_by('no')
            if questions:
                data['questions'] = questions
                if request.POST:
                    userpasstest = True
                    for q in questions:
                        uansw = request.POST[str(q.no)][0]
                        if q.rightanswer.id != int(uansw):
                            data["note"] = "Tüm sorulara doğru cevap veriniz"
                            userpasstest = False
                    if userpasstest:
                        uprof.userpassedtest = True
                        uprof.save()
                return render_to_response('abkayit/faqtest.html', data)
            else:
                uprof.userpassedtest = True
                uprof.save()
        return redirect("applytocourse")
    except ObjectDoesNotExist:
        return redirect('createprofile')
Example #5
0
def active_resend(request):
    data = prepare_template_data(request)
    note = _("Please activate your account.  If you want to re-send an activation email, please click following button") 
    if request.POST:
        user = request.user
        user_verification, created = UserVerification.objects.get_or_create(user_email=user.username)
        context={}
        context['user'] = user
        domain = Site.objects.get(is_active=True).home_url
        if domain.endswith('/'):
            domain = domain.rstrip('/')
        context['domain'] = domain
        
        user_verification, created = UserVerification.objects.get_or_create(user_email=user.username)
        user_verification.activation_key = create_verification_link(user)
        user_verification.save()
        context['activation_key'] = user_verification.activation_key
        try:
            send_email("userprofile/messages/send_confirm_subject.html",
                            "userprofile/messages/send_confirm.html",
                            "userprofile/messages/send_confirm.text",
                            context,
                            settings.EMAIL_FROM_ADDRESS,
                            [user.username])

            note = _("Your activation link has been sent to your email address")
        except Exception as e:
            note = e.message
    data['note'] = note
    return render_to_response("userprofile/activate_resend.html", data, context_instance=RequestContext(request))
Example #6
0
def password_reset_key_done(request, key=None):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)
    note = _("Change your password")
    form = ChangePasswordForm()
    note = _("Change your password")
    try:
        user_verification = UserVerification.objects.get(password_reset_key=key)
        user = User.objects.get(username=user_verification.user_email)
        user.is_authenticated = False
        user.save()
        request.user = user
    except Exception as e:
        note = _("""Password reset operation failed""")
        log.error(e.message, extra=d)
    if request.method == 'POST':
        form = ChangePasswordForm(request.POST)
        if form.is_valid():
            try:
                request.user.set_password(form.cleaned_data['password'])
                request.user.save()
                note = _("""Your password has been changed""")
                form = None
                redirect("index")
            except Exception as e:
                note = _("""Your password couldn't be changed""")
                log.error(e.message, extra=d)
    data['changepasswordform'] = form
    data['note'] = note
    data['user'] = request.user
    return render_to_response("userprofile/change_password.html", data, context_instance=RequestContext(request))
Example #7
0
def allcourseprefview(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)
    data['datalist'] = TrainessCourseRecord.objects.all()
    return render_to_response("training/allcourseprefs.html",
                              data,
                              context_instance=RequestContext(request))
Example #8
0
def save_note(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)
    jsondata={}
    if request.method == 'POST':
        trainess_username = request.POST['trainess_username']
        trainess_score = request.POST['score']
        t_note = request.POST['note']
        if trainess_username and trainess_username != '':
            try:
                userprofile = UserProfile.objects.get(user__username=trainess_username)
                userprofile.score = trainess_score
                userprofile.save()
                trainess_note, created = TrainessNote.objects.get_or_create(note_to_profile=userprofile, site=data['site'])
                trainess_note.note = t_note
                trainess_note.note_from_profile = request.user.userprofile
                trainess_note.note_date = datetime.now()
                trainess_note.save()
                jsondata['status'] = "0" 
                jsondata['message'] = "Durum güncellendi!"
            except Exception as e:
                jsondata['status'] = "-1" 
                jsondata['message'] = "Durum güncelleme sırasında hata olustu"
                log.error(e.message, extra=d)
        else:
            jsondata['status'] = "-1" 
            jsondata['message'] = "Hata: Kullanıcı adı boş olamaz!"
            log.error("username bos olamaz", extra=d)
    
    return HttpResponse(json.dumps(jsondata), content_type="application/json")
Example #9
0
def subscribe(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)    
    if not request.user.is_authenticated():
        data['buttonname1'] = "register"
        data['buttonname2'] = "cancel"
        data['buttonname1_value'] = _("Register")
        data['buttonname2_value'] = _("Cancel")
        note = _("Register to system to participate in courses before the conferences")
        form = CreateUserForm()
        if 'register' in request.POST:
            form = CreateUserForm(request.POST)
            if form.is_valid():
                try:
                    user = form.save(commit=True)
                    user.set_password(user.password)
                    try:
                        user.save()
                        note = _("Your account has been created. Please check your email for activation link")
                    except Exception as e:
                        note = e.message
                    form = None
                except Exception as e:
                    note = _("Your account couldn't create. Please try again!")
                    log.error(e.message, extra=d)
        elif 'cancel' in request.POST:
            return redirect("subscribe")
        data['createuserform'] = form
        data['note']=note
        return render_to_response("userprofile/subscription.html", data, context_instance=RequestContext(request))
    else:
        return redirect("controlpanel")
Example #10
0
def statistic(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    try:
        data=prepare_template_data(request)
    
        record_data = TrainessCourseRecord.objects.filter().values(
                                            'course','preference_order').annotate(
                                              Count('preference_order')).order_by(
                                               'course','preference_order')
        statistic_by_course = {}
        for key, group in itertools.groupby(record_data, lambda item: item["course"]):
            statistic_by_course[Course.objects.get(pk=key)] = {item['preference_order']:item['preference_order__count'] for item in group}
        data['statistic_by_course'] = statistic_by_course

        statistic_by_gender = UserProfile.objects.filter(is_student=True).values('gender').annotate(Count('user'))
        data['statistic_by_gender'] = statistic_by_gender

        statistic_by_university = UserProfile.objects.filter(is_student=True).values('university').annotate(Count('university'))
        data['statistic_by_university'] = statistic_by_university

        total_profile = len(UserProfile.objects.filter(is_student=True))
        total_preference = len(TrainessCourseRecord.objects.all())
        data['statistic_by_totalsize'] = {'Toplam Profil(Kişi)': total_profile, 'Toplam Tercih': total_preference}
    except Exception as e:
        log.error(e.message, extra=d)
    return render_to_response("training/statistic.html", data)
Example #11
0
def index(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user':request.user}
    data = prepare_template_data(request)
    content = None
    data['state']=""
    if not request.user.is_authenticated():
        data['alerttype'] = "alert-info"
        data['state']=_("If you already have an account, please login from top right hand side of the page")
        if request.POST:
            username=request.POST['username']
            password=request.POST['password']
            user = authenticate(username=username,password=password)
            if user is not None:
                login(request,user)
                log.info("%s user successfuly logged in" % (request.user), extra=d)
                return HttpResponseRedirect('/')
            else:
                data['state']=_("Login Failed!")
                data['alerttype'] = "alert-danger"
    try:
        if not request.GET.get('menu_id'):
            menu_id = Menu.objects.all().order_by('order').first()
        else:
            menu_id = request.GET.get('menu_id')
        content = Content.objects.get(menu=menu_id)
    except ObjectDoesNotExist:
        content = None
        log.error("%s entered content not found " % (request.user), extra=d)
    except Exception as e:
        log.error("%s error occured %s " % (request.user, e.message), extra=d)
    data['content'] = content
    return render_to_response('dashboard.html', data)
Example #12
0
def password_reset_key_done(request, key=None):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)
    note = _("Change your password")
    form = ChangePasswordForm()
    note = _("Change your password")
    try:
        user_verification = UserVerification.objects.get(
            password_reset_key=key)
        user = User.objects.get(username=user_verification.user_email)
        user.is_authenticated = False
        user.save()
        request.user = user
    except Exception as e:
        note = _("""Password reset operation failed""")
        log.error(e.message, extra=d)
    if request.method == 'POST':
        form = ChangePasswordForm(request.POST)
        if form.is_valid():
            try:
                request.user.set_password(form.cleaned_data['password'])
                request.user.save()
                note = _("""Your password has been changed""")
                form = None
                redirect("index")
            except Exception as e:
                note = _("""Your password couldn't be changed""")
                log.error(e.message, extra=d)
    data['changepasswordform'] = form
    data['note'] = note
    data['user'] = request.user
    return render_to_response("userprofile/change_password.html",
                              data,
                              context_instance=RequestContext(request))
Example #13
0
def testbeforeapply(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user':request.user}
    data = prepare_template_data(request)
    data["note"] = "Kurs tercihi yapabilmek için aşağıdaki sorulara doğru yanıt vermelisiniz!"
    try:
        uprof = UserProfile.objects.get(user=request.user)
        if not uprof.userpassedtest:
            questions = Question.objects.filter(active=True).order_by('no')
            if questions:
                data['questions']=questions
                if request.POST:
                    userpasstest = True
                    for q in questions:
                        uansw=request.POST[str(q.no)][0]
                        if q.rightanswer.id != int(uansw):
                            data["note"]="Tüm sorulara doğru cevap veriniz"
                            userpasstest = False
                    if userpasstest:
                        uprof.userpassedtest=True
                        uprof.save()
                return render_to_response('abkayit/faqtest.html',data)
            else:
                uprof.userpassedtest=True
                uprof.save()
        return redirect("applytocourse") 
    except ObjectDoesNotExist:
        return redirect('createprofile')
Example #14
0
def submitandregister(request):
    d = {"clientip": request.META["REMOTE_ADDR"], "user": request.user}
    data = prepare_template_data(request)
    userops = UserProfileOPS()
    # TODO:site ve pages'e bi care bulmak lazim
    site = Site.objects.get(is_active=True)
    pages = Menu.objects.filter(site=site.pk).order_by("order")
    note = "Kurs onerisi olustur:"
    try:
        curuserprof = UserProfile.objects.get(user=request.user)
    except:
        log.info("%s kullanici profili bulunamadi" % (request.user), extra=d)
    curinstprofform = InstProfileForm(prefix="cur")
    forms = {}
    for x in xrange(4):
        forms[x] = [CreateInstForm(prefix=str(x) + "inst"), InstProfileForm(prefix=str(x) + "instprof")]
    form = CreateCourseForm()
    if "submit" in request.POST:
        allf = []
        forms = {}
        for x in xrange(4):
            if str(x) + "inst-email" in request.POST:
                forms[x] = [
                    CreateInstForm(request.POST, prefix=str(x) + "inst"),
                    InstProfileForm(request.POST, prefix=str(x) + "instprof"),
                ]
                allf.append(forms[x][0].is_valid())
                allf.append(forms[x][1].is_valid())
            else:
                pass
        curinstprofform = InstProfileForm(request.POST, prefix="cur")
        form = CreateCourseForm(request.POST)
        if all([curinstprofform.is_valid(), form.is_valid()]) and all(allf):
            curinst = curinstprofform.save(commit=False)
            curinst.user = request.user
            curinst.save()
            course = form.save(commit=False)
            if "fulltext" in request.FILES:
                course.fulltext = request.FILES["fulltext"]
            course.save()
            for key, f in forms.items():
                instx = f[0].save(commit=False)
                passwd = userops.generatenewpass(8)
                instx.set_password(passwd)
                instx.save()
                instxprof = f[1].save(commit=False)
                instxprof.user = instx
                instxprof.save()
                course.trainer.add(instxprof)
            course.trainer.add(curinst)
            course.save()
            note = "Egitim oneriniz basari ile alindi."
        else:
            note = "Olusturulamadi"
    return render_to_response(
        "training/submitandregister.html",
        {"site": site, "pages": pages, "note": note, "form": form, "curinstprofform": curinstprofform, "forms": forms},
        context_instance=RequestContext(request),
    )
Example #15
0
def show_course(request, course_id):
    try:
        data = prepare_template_data(request)
        course = Course.objects.get(id=course_id)
        data['course'] = course
        return render_to_response('training/course_detail.html', data)
    except ObjectDoesNotExist:
        return HttpResponse("Kurs Bulunamadi")
Example #16
0
def show_course(request, course_id):
    try:
        data = prepare_template_data(request)
        course = Course.objects.get(id=course_id)
        data["course"] = course
        return render_to_response("training/course_detail.html", data)
    except ObjectDoesNotExist:
        return HttpResponse("Kurs Bulunamadi")
Example #17
0
def get_all_trainers_view(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)
    try:
        trainers = UserProfile.objects.filter(is_instructor=True)
        data['trainers'] = trainers
    except Exception as e:
        log.error(e.message)
    return render_to_response("userprofile/alltrainess.html", data, context_instance=RequestContext(request))
Example #18
0
def getaccomodations(request,usertype,gender):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)
    jsondata={}
    accomodations = Accommodation.objects.filter(
                            usertype__in=[usertype,'hepsi']).filter(
                            gender__in=[gender,'H']).filter(
                            site=data['site']).values_list('id','name').order_by('name')
    for a in accomodations:
        jsondata[a[0]]=a[1]
    return HttpResponse(json.dumps(jsondata), content_type="application/json")
Example #19
0
def getaccomodations(request, usertype, gender):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)
    jsondata = {}
    accomodations = Accommodation.objects.filter(
        usertype__in=[usertype, 'hepsi']).filter(
            gender__in=[gender, 'H']).filter(site=data['site']).values_list(
                'id', 'name').order_by('name')
    for a in accomodations:
        jsondata[a[0]] = a[1]
    return HttpResponse(json.dumps(jsondata), content_type="application/json")
Example #20
0
def control_panel(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)
    note = _("You can accept trainees")
    now = datetime.date(datetime.now())
    try:
        uprofile = UserProfile.objects.get(user=request.user).is_student
        log.info(uprofile, extra = d)
        if not uprofile:    
            if now < data['site'].aproval_start_date:
                data['note'] = _("You can choose courses in future")
                data['closed'] = "1"
                return render_to_response("training/controlpanel.html", data,context_instance=RequestContext(request))
            elif now > data['site'].aproval_end_date:
                data['note'] = _("The course choosing process is closed")
                data['closed'] = "1"
                return render_to_response("training/controlpanel.html", data,context_instance=RequestContext(request))

            courses = Course.objects.filter(approved=True).filter(trainer__user=request.user)
            log.info(courses, extra = d)

            if courses:
                trainess = {}
                for course in courses:
                        trainess[course] = {}
                        trainess[course]['trainess1'] = TrainessCourseRecord.objects.filter(course=course.pk).filter(preference_order=1)
                        trainess[course]['trainess2'] = TrainessCourseRecord.objects.filter(course=course.pk).filter(preference_order=2)
                        trainess[course]['trainess3'] = TrainessCourseRecord.objects.filter(course=course.pk).filter(preference_order=3)
                data['trainess'] = trainess
                log.info(data, extra = d)
                if request.POST:
                    log.info(request.POST, extra=d)
                    for course in courses:
                        try:
                            course.trainess.clear()
                            allprefs=TrainessCourseRecord.objects.filter(course=course.pk)
                            approvedr = request.POST.getlist('students' + str(course.pk))
                            for p in allprefs:
                                if str(p.pk) not in approvedr: 
                                    p.approved=False
                                elif str(p.pk) in approvedr:
                                    p.approved=True
                                    course.trainess.add(p.trainess)
                                p.save()
                            course.save()
                            note = "Seçimleriniz başarılı bir şekilde kaydedildi."
                        except Exception:
                            note = "Beklenmedik bir hata oluştu!"
            data['note'] = note
            return render_to_response("training/controlpanel.html", data,context_instance=RequestContext(request))
        else:
            return redirect("applytocourse")
    except UserProfile.DoesNotExist:
        return redirect("createprofile")
Example #21
0
def alluserview(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)
    userList=[]
    alluser=UserProfile.objects.all()
    if alluser:
        for u in alluser:
            usr={}
            usr["usertype"] = "instructor" if u.is_instructor else "student"
            usr["firstname"] = u.user.first_name
            usr["lastname"] = u.user.last_name
            usr["tcino"] = u.tckimlikno if u.tckimlikno != '' else u.ykimlikno
            usr["coursename"] = Course.objects.filter(trainer=u).values_list('name',flat=True)
            usr["accomodation"] = UserAccomodationPref.objects.filter(user=u)
            userList.append(usr)
    data["datalist"]=userList
    return render_to_response("userprofile/allusers.html",data,context_instance=RequestContext(request))
Example #22
0
def instructor_information(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    if request.user.userprofile == None:
        log.error("Kullanıcı Profili Bulunamadı", extra=d)
        return redirect("createprofile")
    data = prepare_template_data(request)
    note = ""
    if not request.user.userprofile.is_instructor:
        note = _("You don't have permission to access to here")
    else:
        note = _(
            "Please enter your transformation, arrival date, departure date informations"
        )
        instructor_information = None
        try:
            instructor_information = InstructorInformation.objects.get(
                user=request.user.userprofile)
            form = InstructorInformationForm(instance=instructor_information)
        except Exception as e:
            log.debug(
                "Egitmen bilgileri bulunamadi, yeni bilgiler olusturulmak icin form acilacak",
                extra=d)
            log.error(e.message, extra=d)
            form = InstructorInformationForm()
        if request.POST:
            if instructor_information:
                form = InstructorInformationForm(
                    request.POST, instance=instructor_information)
            else:
                form = InstructorInformationForm(request.POST)
            if form.is_valid():
                try:
                    form.instance.user = request.user.userprofile
                    instructor_info = form.save(commit=True)
                    instructor_info.user = request.user.userprofile
                    instructor_info.save()
                    note = _("Your informations saved successfully")
                except Exception as e:
                    note = _("Error occured during save your informations")
                    log.error(e.message, extra=d)
        data['form'] = form
    data['note'] = note
    return render_to_response("userprofile/instructor_information.html",
                              data,
                              context_instance=RequestContext(request))
Example #23
0
def password_reset_key(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)
    note = _("Please enter your registered email")
    if request.method == 'POST':
        email = request.POST['email']
        if email and email != "":
            try:
                user = User.objects.get(username=request.POST['email'])
                user_verification, created = UserVerification.objects.get_or_create(
                    user_email=user.username)
                user_verification.password_reset_key = create_verification_link(
                    user)
                user_verification.save()
                context = {}
                context['user'] = user
                context[
                    'activation_key'] = user_verification.password_reset_key
                domain = Site.objects.get(is_active=True).home_url
                if domain.endswith('/'):
                    domain = domain.rstrip('/')
                context['domain'] = domain
                send_email(
                    "userprofile/messages/send_reset_password_key_subject.html",
                    "userprofile/messages/send_reset_password_key.html",
                    "userprofile/messages/send_reset_password_key.text",
                    context, settings.EMAIL_FROM_ADDRESS, [user.username])
                note = _("""Password reset key has been sent""")
            except ObjectDoesNotExist:
                note = _(
                    """There isn't any user record with this e-mail on the system"""
                )
                log.error(note, extra=d)
            except Exception as e:
                note = _("""Password reset operation failed""")
                log.error(note, extra=d)
                log.error(e.message, extra=d)
        else:
            note = _("""Email field can not be empty""")
            log.error(note, extra=d)
    data['note'] = note
    return render_to_response("userprofile/change_password_key_request.html",
                              data,
                              context_instance=RequestContext(request))
Example #24
0
def cancel_all_preference(request):
    d = {"clientip": request.META["REMOTE_ADDR"], "user": request.user}
    if request.POST:
        try:
            data = prepare_template_data(request)
            userprofile = UserProfile.objects.get(user=request.user)
            trainess_course_records = TrainessCourseRecord.objects.filter(trainess=userprofile)
            context = {}
            for tcr in trainess_course_records:
                try:
                    # x. tercih onaylama donemi baslangic zamani ile x. tercih teyit etme donemi arasinda ise mail atsin.
                    now_for_approve = timezone.now()
                    preference_order = tcr.preference_order
                    check_start = ApprovalDate.objects.get(
                        site=data["site"], preference_order=preference_order, for_instructor=True
                    ).start_date
                    check_end = ApprovalDate.objects.get(
                        site=data["site"], preference_order=preference_order, for_trainess=True
                    ).end_date
                    if (now_for_approve > check_start and now_for_approve < check_end) or (
                        tcr.trainess_approved == True
                    ):
                        context["trainess_course_record"] = tcr
                        send_email(
                            "training/messages/notice_for_canceled_courses_subject.html",
                            "training/messages/notice_for_canceled_courses.html",
                            "training/messages/notice_for_canceled_courses.text",
                            context,
                            EMAIL_FROM_ADDRESS,
                            tcr.course.trainer.all().values_list("user__username", flat=True),
                        )
                except Exception as e:
                    log.error(e.message, extra=d)
                trainess_course_records.delete()
            message = "Tüm Başvurularınız Silindi"
            log.debug(message, extra=d)
        except ObjectDoesNotExist:
            message = "Başvurularınız Silinirken Hata Oluştu"
        except Exception as e:
            message = "Başvurularınız Silinirken Hata Oluştu"
            log.error(e.message, extra=d)
        return HttpResponse(json.dumps({"status": "-1", "message": message}), content_type="application/json")
    message = "Başvurularınız Silinirken Hata Oluştu"
    return HttpResponse(json.dumps({"status": "-1", "message": message}), content_type="application/json")
Example #25
0
def password_reset(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)
    form = ChangePasswordForm()
    note = _("Change your password")
    if request.method == 'POST':
        form = ChangePasswordForm(request.POST)
        if form.is_valid():
            try:
                request.user.set_password(form.cleaned_data['password'])
                request.user.save() 
                backend_login(request, request.user)
                note = _("""Your password has been changed""")
                form = None
            except Exception as e:
                note = _("""Your password couldn't be changed""")
                log.error(e.message, extra=d)
    data['changepasswordform'] = form
    data['note'] = note
    return render_to_response("userprofile/change_password.html", data, context_instance=RequestContext(request))
Example #26
0
def alluserview(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)
    userList = []
    alluser = UserProfile.objects.all()
    if alluser:
        for u in alluser:
            usr = {}
            usr["usertype"] = "instructor" if u.is_instructor else "student"
            usr["firstname"] = u.user.first_name
            usr["lastname"] = u.user.last_name
            usr["tcino"] = u.tckimlikno if u.tckimlikno != '' else u.ykimlikno
            usr["coursename"] = Course.objects.filter(trainer=u).values_list(
                'name', flat=True)
            usr["accomodation"] = UserAccomodationPref.objects.filter(user=u)
            userList.append(usr)
    data["datalist"] = userList
    return render_to_response("userprofile/allusers.html",
                              data,
                              context_instance=RequestContext(request))
Example #27
0
def password_reset(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)
    form = ChangePasswordForm()
    note = _("Change your password")
    if request.method == 'POST':
        form = ChangePasswordForm(request.POST)
        if form.is_valid():
            try:
                request.user.set_password(form.cleaned_data['password'])
                request.user.save()
                backend_login(request, request.user)
                note = _("""Your password has been changed""")
                form = None
            except Exception as e:
                note = _("""Your password couldn't be changed""")
                log.error(e.message, extra=d)
    data['changepasswordform'] = form
    data['note'] = note
    return render_to_response("userprofile/change_password.html",
                              data,
                              context_instance=RequestContext(request))
Example #28
0
def subscribe(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)
    if not request.user.is_authenticated():
        data['buttonname1'] = "register"
        data['buttonname2'] = "cancel"
        data['buttonname1_value'] = _("Register")
        data['buttonname2_value'] = _("Cancel")
        note = _(
            "Register to system to participate in courses before the conferences"
        )
        form = CreateUserForm()
        if 'register' in request.POST:
            form = CreateUserForm(request.POST)
            if form.is_valid():
                try:
                    user = form.save(commit=True)
                    user.set_password(user.password)
                    try:
                        user.save()
                        note = _(
                            "Your account has been created. Please check your email for activation link"
                        )
                    except Exception as e:
                        note = e.message
                    form = None
                except Exception as e:
                    note = _("Your account couldn't create. Please try again!")
                    log.error(e.message, extra=d)
        elif 'cancel' in request.POST:
            return redirect("subscribe")
        data['createuserform'] = form
        data['note'] = note
        return render_to_response("userprofile/subscription.html",
                                  data,
                                  context_instance=RequestContext(request))
    else:
        return redirect("controlpanel")
Example #29
0
def password_reset_key(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)
    note = _("Please enter your registered email")
    if request.method == 'POST':
        email = request.POST['email']
        if email and email != "":
            try:
                user = User.objects.get(username=request.POST['email'])
                user_verification, created = UserVerification.objects.get_or_create(user_email=user.username)
                user_verification.password_reset_key = create_verification_link(user)
                user_verification.save()
                context = {}
                context['user'] = user
                context['activation_key'] = user_verification.password_reset_key
                domain = Site.objects.get(is_active=True).home_url
                if domain.endswith('/'):
                    domain = domain.rstrip('/')
                context['domain'] = domain
                send_email("userprofile/messages/send_reset_password_key_subject.html",
                                "userprofile/messages/send_reset_password_key.html",
                                "userprofile/messages/send_reset_password_key.text",
                                context,
                                settings.EMAIL_FROM_ADDRESS,
                                [user.username]) 
                note = _("""Password reset key has been sent""")
            except ObjectDoesNotExist:
                note=_("""There isn't any user record with this e-mail on the system""") 
                log.error(note, extra=d)
            except Exception as e:
                note = _("""Password reset operation failed""")
                log.error(note, extra=d)
                log.error(e.message, extra=d)
        else:
            note = _("""Email field can not be empty""")    
            log.error(note, extra=d)
    data['note'] = note
    return render_to_response("userprofile/change_password_key_request.html", data, context_instance=RequestContext(request))
Example #30
0
def instructor_information(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    if request.user.userprofile == None:
        log.error("Kullanıcı Profili Bulunamadı", extra=d)
        return redirect("createprofile")
    data = prepare_template_data(request)
    note = ""
    if not request.user.userprofile.is_instructor:
        note = _("You don't have permission to access to here")
    else:
        note = _("Please enter your transformation, arrival date, departure date informations")
        instructor_information = None
        try:
            instructor_information = InstructorInformation.objects.get(user=request.user.userprofile)
            form = InstructorInformationForm(instance = instructor_information)
        except Exception as e:
            log.debug("Egitmen bilgileri bulunamadi, yeni bilgiler olusturulmak icin form acilacak", extra=d)
            log.error(e.message, extra=d)
            form = InstructorInformationForm()
        if request.POST:
            if instructor_information:
                form = InstructorInformationForm(request.POST, instance=instructor_information)
            else:
                form = InstructorInformationForm(request.POST)
            if form.is_valid():
                try:
                    form.instance.user = request.user.userprofile
                    instructor_info = form.save(commit=True)
                    instructor_info.user = request.user.userprofile
                    instructor_info.save()
                    note = _("Your informations saved successfully")
                except Exception as e:
                    note = _("Error occured during save your informations")
                    log.error(e.message, extra=d)
        data['form'] = form
    data['note'] = note    
    return render_to_response("userprofile/instructor_information.html",data,context_instance=RequestContext(request))
Example #31
0
def createprofile(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)
    log.info("create profile form",extra=d)
    user=User.objects.get(username=request.user)
    data['update_user_form']=UpdateUserForm(instance=user)
    data['form']=None
    action=""
    json_response={}
    try:
        user_profile = UserProfile.objects.get(user=user)
        note = _("You can update your profile below")
        action="update"
        data['form']= StuProfileForm(instance=user_profile)
        if not user_profile.is_instructor:
            log.debug("egitmen olmayan kullanici icin isleme devam ediliyor", extra=d)
            data['accomodations'] = Accommodation.objects.filter(
                usertype__in=['stu','hepsi']).filter(
                gender__in=[user_profile.gender,'H']).filter(
                site=data['site']).order_by('name')
            data['accomodation_records'] = UserAccomodationPref.objects.filter(
                user=user_profile).order_by('preference_order')
    except ObjectDoesNotExist:
        log.debug("Kullanıcı profili bulunamadi, yeni profil olusturmak icin isleme devam ediliyor", extra=d)
        note = _("If you want to continue please complete your profile.")
        action="create"
        data['form'] = StuProfileForm()
        data['accomodations'] = Accommodation.objects.filter(
            usertype__in=['stu','hepsi']).filter(
            gender__in=['K','E','H']).filter(
            site=data['site']).order_by('name')
    if 'register' in request.POST:
        first_name = request.POST.get('first_name','')
        last_name = request.POST.get('last_name','')
        request.user.first_name = first_name
        request.user.last_name = last_name
        data['form'] = StuProfileForm(request.user, request.POST, ruser=request.user)
        if action=="update":
            data['form'].instance = UserProfile.objects.get(user=user)
        if data['form'].is_valid():
            if first_name or last_name:
                log.info("firstlast",extra=d)
                user = User.objects.get(username=request.user.username)
                user.first_name=first_name
                user.last_name=last_name
                user.save()
            log.info("formvalid", extra=d)
            profile = data['form'].save(commit=False)
            if action=="create":
                profile.is_student = True
                log.info("create",extra=d)
                profile.user = User.objects.get(username=request.user)
            try:
                profile.save()
                if profile.is_student:
                    prefs=UserAccomodationPref.objects.filter(user=UserProfile.objects.get(user=user))
                    if prefs:
                        prefs.delete()
                    for pref in range(0,len(data['accomodations'])):
                        if 'tercih'+str(pref+1) in request.POST.keys():
                            try:
                                uaccpref=UserAccomodationPref(user=profile,
                                                         accomodation=Accommodation.objects.get(pk=request.POST['tercih'+str(pref+1)]),
                                                         usertype="stu",preference_order=pref+1)
                                uaccpref.save()
                                note = "Profiliniz başarılı bir şekilde kaydedildi. Kurs tercihleri adımından devam edebilirsiniz"
                            except Exception as e:
                                log.error(e.message, extra=d)
                                response_note = "Profiliniz kaydedildi ancak konaklama tercihleriniz kaydedilemedi. Sistem yöneticisi ile görüşün!"
            except Exception as e:
                log.error(e.message, extra=d)
                note = "Profiliniz kaydedilirken hata oluştu lütfen sayfayı yeniden yükleyip tekrar deneyin"
        else:
            note = "Profiliniz aşağıdaki sebeplerden dolayı oluşturulamadı"
    elif 'cancel' in request.POST:
        return redirect("createprofile")
    data['note'] = note
    return render_to_response("userprofile/user_profile.html",data,context_instance=RequestContext(request))
Example #32
0
def createprofile(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)
    log.info("create profile form", extra=d)
    user = User.objects.get(username=request.user)
    data['update_user_form'] = UpdateUserForm(instance=user)
    data['form'] = None
    action = ""
    json_response = {}
    try:
        user_profile = UserProfile.objects.get(user=user)
        note = _("You can update your profile below")
        action = "update"
        data['form'] = StuProfileForm(instance=user_profile)
        if not user_profile.is_instructor:
            log.debug("egitmen olmayan kullanici icin isleme devam ediliyor",
                      extra=d)
            data['accomodations'] = Accommodation.objects.filter(
                usertype__in=['stu', 'hepsi']).filter(
                    gender__in=[user_profile.gender, 'H']).filter(
                        site=data['site']).order_by('name')
            data['accomodation_records'] = UserAccomodationPref.objects.filter(
                user=user_profile).order_by('preference_order')
    except ObjectDoesNotExist:
        log.debug(
            "Kullanıcı profili bulunamadi, yeni profil olusturmak icin isleme devam ediliyor",
            extra=d)
        note = _("If you want to continue please complete your profile.")
        action = "create"
        data['form'] = StuProfileForm()
        data['accomodations'] = Accommodation.objects.filter(
            usertype__in=['stu', 'hepsi']).filter(
                gender__in=['K', 'E', 'H']).filter(
                    site=data['site']).order_by('name')
    if 'register' in request.POST:
        first_name = request.POST.get('first_name', '')
        last_name = request.POST.get('last_name', '')
        request.user.first_name = first_name
        request.user.last_name = last_name
        data['form'] = StuProfileForm(request.user,
                                      request.POST,
                                      ruser=request.user)
        if action == "update":
            data['form'].instance = UserProfile.objects.get(user=user)
        if data['form'].is_valid():
            if first_name or last_name:
                log.info("firstlast", extra=d)
                user = User.objects.get(username=request.user.username)
                user.first_name = first_name
                user.last_name = last_name
                user.save()
            log.info("formvalid", extra=d)
            profile = data['form'].save(commit=False)
            if action == "create":
                profile.is_student = True
                log.info("create", extra=d)
                profile.user = User.objects.get(username=request.user)
            try:
                profile.save()
                if profile.is_student:
                    prefs = UserAccomodationPref.objects.filter(
                        user=UserProfile.objects.get(user=user))
                    if prefs:
                        prefs.delete()
                    for pref in range(0, len(data['accomodations'])):
                        if 'tercih' + str(pref + 1) in request.POST.keys():
                            try:
                                uaccpref = UserAccomodationPref(
                                    user=profile,
                                    accomodation=Accommodation.objects.get(
                                        pk=request.POST['tercih' +
                                                        str(pref + 1)]),
                                    usertype="stu",
                                    preference_order=pref + 1)
                                uaccpref.save()
                                note = "Profiliniz başarılı bir şekilde kaydedildi. Kurs tercihleri adımından devam edebilirsiniz"
                            except Exception as e:
                                log.error(e.message, extra=d)
                                response_note = "Profiliniz kaydedildi ancak konaklama tercihleriniz kaydedilemedi. Sistem yöneticisi ile görüşün!"
            except Exception as e:
                log.error(e.message, extra=d)
                note = "Profiliniz kaydedilirken hata oluştu lütfen sayfayı yeniden yükleyip tekrar deneyin"
        else:
            note = "Profiliniz aşağıdaki sebeplerden dolayı oluşturulamadı"
    elif 'cancel' in request.POST:
        return redirect("createprofile")
    data['note'] = note
    return render_to_response("userprofile/user_profile.html",
                              data,
                              context_instance=RequestContext(request))
Example #33
0
def list_courses(request):
    data = prepare_template_data(request)
    courses = Course.objects.filter(site=data['site'])
    data['courses'] = courses
    return render_to_response('training/courses.html', data)
Example #34
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")
Example #35
0
def control_panel(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)
    note = _("You can accept trainees")
    now = datetime.date(datetime.now())
    try:
        uprofile = UserProfile.objects.get(user=request.user).is_student
        log.info(uprofile, extra=d)
        if not uprofile:
            if now < data['site'].aproval_start_date:
                data['note'] = _("You can choose courses in future")
                data['closed'] = "1"
                return render_to_response(
                    "training/controlpanel.html",
                    data,
                    context_instance=RequestContext(request))
            elif now > data['site'].aproval_end_date:
                data['note'] = _("The course choosing process is closed")
                data['closed'] = "1"
                return render_to_response(
                    "training/controlpanel.html",
                    data,
                    context_instance=RequestContext(request))

            courses = Course.objects.filter(approved=True).filter(
                trainer__user=request.user)
            log.info(courses, extra=d)

            if courses:
                trainess = {}
                for course in courses:
                    trainess[course] = {}
                    trainess[course][
                        'trainess1'] = TrainessCourseRecord.objects.filter(
                            course=course.pk).filter(preference_order=1)
                    trainess[course][
                        'trainess2'] = TrainessCourseRecord.objects.filter(
                            course=course.pk).filter(preference_order=2)
                    trainess[course][
                        'trainess3'] = TrainessCourseRecord.objects.filter(
                            course=course.pk).filter(preference_order=3)
                data['trainess'] = trainess
                log.info(data, extra=d)
                if request.POST:
                    log.info(request.POST, extra=d)
                    for course in courses:
                        try:
                            course.trainess.clear()
                            allprefs = TrainessCourseRecord.objects.filter(
                                course=course.pk)
                            approvedr = request.POST.getlist('students' +
                                                             str(course.pk))
                            for p in allprefs:
                                if str(p.pk) not in approvedr:
                                    p.approved = False
                                elif str(p.pk) in approvedr:
                                    p.approved = True
                                    course.trainess.add(p.trainess)
                                p.save()
                            course.save()
                            note = "Seçimleriniz başarılı bir şekilde kaydedildi."
                        except Exception:
                            note = "Beklenmedik bir hata oluştu!"
            data['note'] = note
            return render_to_response("training/controlpanel.html",
                                      data,
                                      context_instance=RequestContext(request))
        else:
            return redirect("applytocourse")
    except UserProfile.DoesNotExist:
        return redirect("createprofile")
Example #36
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")
Example #37
0
def submitandregister(request):
    d = {'clientip': request.META['REMOTE_ADDR'], 'user': request.user}
    data = prepare_template_data(request)
    userops = UserProfileOPS()
    # TODO:site ve pages'e bi care bulmak lazim
    site = Site.objects.get(is_active=True)
    pages = Menu.objects.filter(site=site.pk).order_by('order')
    note = "Kurs onerisi olustur:"
    try:
        curuserprof = UserProfile.objects.get(user=request.user)
    except:
        log.info("%s kullanici profili bulunamadi" % (request.user), extra=d)
    curinstprofform = InstProfileForm(prefix="cur")
    forms = {}
    for x in xrange(4):
        forms[x] = [
            CreateInstForm(prefix=str(x) + "inst"),
            InstProfileForm(prefix=str(x) + "instprof")
        ]
    form = CreateCourseForm()
    if "submit" in request.POST:
        allf = []
        forms = {}
        for x in xrange(4):
            if str(x) + "inst-email" in request.POST:
                forms[x] = [
                    CreateInstForm(request.POST, prefix=str(x) + "inst"),
                    InstProfileForm(request.POST, prefix=str(x) + "instprof")
                ]
                allf.append(forms[x][0].is_valid())
                allf.append(forms[x][1].is_valid())
            else:
                pass
        curinstprofform = InstProfileForm(request.POST, prefix="cur")
        form = CreateCourseForm(request.POST)
        if all([curinstprofform.is_valid(), form.is_valid()]) and all(allf):
            curinst = curinstprofform.save(commit=False)
            curinst.user = request.user
            curinst.save()
            course = form.save(commit=False)
            if 'fulltext' in request.FILES:
                course.fulltext = request.FILES['fulltext']
            course.save()
            for key, f in forms.items():
                instx = f[0].save(commit=False)
                passwd = userops.generatenewpass(8)
                instx.set_password(passwd)
                instx.save()
                instxprof = f[1].save(commit=False)
                instxprof.user = instx
                instxprof.save()
                course.trainer.add(instxprof)
            course.trainer.add(curinst)
            course.save()
            note = "Egitim oneriniz basari ile alindi."
        else:
            note = "Olusturulamadi"
    return render_to_response("training/submitandregister.html", {
        'site': site,
        'pages': pages,
        'note': note,
        'form': form,
        'curinstprofform': curinstprofform,
        'forms': forms
    },
                              context_instance=RequestContext(request))
Example #38
0
def list_courses(request):
    data = prepare_template_data(request)
    courses = Course.objects.filter(site=data["site"])
    data["courses"] = courses
    return render_to_response("training/courses.html", data)
Example #39
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")
Example #40
0
def control_panel(request):
    d = {"clientip": request.META["REMOTE_ADDR"], "user": request.user}
    data = prepare_template_data(request)
    note = _("You can accept trainees")
    try:
        uprofile = UserProfile.objects.get(user=request.user).is_student
        log.info(uprofile, extra=d)
        if not uprofile:
            courses = Course.objects.filter(approved=True).filter(trainer__user=request.user)
            log.info(courses, extra=d)
            if courses:
                log.info("egitmenin " + str(len(courses)) + " tane kursu var", extra=d)
                trainess = {}
                now_for_approve = timezone.now()
                log.debug("now_for_approve : egitmen kendi kursunu listeliyor", extra=d)
                log.debug(now_for_approve, extra=d)
                first_pref_approve_start = ApprovalDate.objects.get(
                    site=data["site"], preference_order=1, for_instructor=True
                ).start_date
                first_pref_approve_end = ApprovalDate.objects.get(
                    site=data["site"], preference_order=1, for_instructor=True
                ).end_date
                second_pref_approve_start = ApprovalDate.objects.get(
                    site=data["site"], preference_order=2, for_instructor=True
                ).start_date
                second_pref_approve_end = ApprovalDate.objects.get(
                    site=data["site"], preference_order=2, for_instructor=True
                ).end_date
                third_pref_approve_start = ApprovalDate.objects.get(
                    site=data["site"], preference_order=3, for_instructor=True
                ).start_date
                third_pref_approve_end = ApprovalDate.objects.get(
                    site=data["site"], preference_order=3, for_instructor=True
                ).end_date
                addition1_pref_approve_start = ApprovalDate.objects.get(
                    site=data["site"], preference_order=-1, for_instructor=True
                ).start_date
                addition1_pref_approve_end = ApprovalDate.objects.get(
                    site=data["site"], preference_order=-1, for_instructor=True
                ).end_date
                note = (
                    "  1. Tercihleri %s - %s tarihleri arasında onaylayabilirsiniz"
                    % (
                        first_pref_approve_start.strftime(DATETIME_FORMAT),
                        first_pref_approve_end.strftime(DATETIME_FORMAT),
                    )
                    + "  "
                )
                note += (
                    "  2. Tercihten %s - %s tarihleri arasında seçebilirsiniz"
                    % (
                        second_pref_approve_start.strftime(DATETIME_FORMAT),
                        second_pref_approve_end.strftime(DATETIME_FORMAT),
                    )
                    + "  "
                )
                note += (
                    "  3. Tercihten %s - %s tarihleri arasında seçebilirsiniz"
                    % (
                        third_pref_approve_start.strftime(DATETIME_FORMAT),
                        third_pref_approve_end.strftime(DATETIME_FORMAT),
                    )
                    + "  "
                )
                data["closed_pref_1"] = "1"
                data["closed_pref_2"] = "1"
                data["closed_pref_3"] = "1"
                data["closed_pref_addition1"] = "1"
                data["note_edit_closed"] = "1"
                if now_for_approve > first_pref_approve_start and now_for_approve < addition1_pref_approve_end:
                    if (now_for_approve > first_pref_approve_start) and (now_for_approve < first_pref_approve_end):
                        data["closed_pref_1"] = "0"
                    if (now_for_approve > second_pref_approve_start) and (now_for_approve < second_pref_approve_end):
                        data["closed_pref_2"] = "0"
                    if (now_for_approve > third_pref_approve_start) and (now_for_approve < third_pref_approve_end):
                        data["closed_pref_3"] = "0"
                    if (now_for_approve > addition1_pref_approve_start) and (
                        now_for_approve < addition1_pref_approve_end
                    ):
                        data["closed_pref_addition1"] = "0"
                if now_for_approve > addition1_pref_approve_end:
                    data["note_edit_closed"] = "0"
                for course in courses:
                    trainess[course] = {}
                    if (
                        now_for_approve
                        < ApprovalDate.objects.get(site=data["site"], preference_order=-1, for_trainess=True).end_date
                    ):
                        trainess[course]["trainess1"] = (
                            TrainessCourseRecord.objects.filter(course=course.pk)
                            .filter(preference_order=1)
                            .exclude(
                                trainess__in=TrainessCourseRecord.objects.values_list("trainess")
                                .filter(~Q(course=course.pk))
                                .filter(trainess_approved=True)
                            )
                            .prefetch_related("course")
                        )
                        trainess[course]["trainess2"] = (
                            TrainessCourseRecord.objects.filter(course=course.pk)
                            .filter(preference_order=2)
                            .exclude(
                                trainess__in=TrainessCourseRecord.objects.values_list("trainess")
                                .filter(~Q(course=course.pk))
                                .filter(trainess_approved=True)
                            )
                            .prefetch_related("course")
                        )
                        trainess[course]["trainess3"] = (
                            TrainessCourseRecord.objects.filter(course=course.pk)
                            .filter(preference_order=3)
                            .exclude(
                                trainess__in=TrainessCourseRecord.objects.values_list("trainess")
                                .filter(~Q(course=course.pk))
                                .filter(trainess_approved=True)
                            )
                            .prefetch_related("course")
                        )
                        trainess[course]["trainess_addition_1"] = (
                            TrainessCourseRecord.objects.filter(course=course.pk)
                            .filter(preference_order=-1)
                            .exclude(
                                trainess__in=TrainessCourseRecord.objects.values_list("trainess")
                                .filter(~Q(course=course.pk))
                                .filter(trainess_approved=True)
                            )
                            .prefetch_related("course")
                        )
                    else:
                        trainess[course]["trainess1"] = (
                            TrainessCourseRecord.objects.filter(course=course.pk)
                            .filter(preference_order=1)
                            .filter(approved=True)
                            .filter(trainess_approved=True)
                            .prefetch_related("course")
                        )
                        trainess[course]["trainess2"] = (
                            TrainessCourseRecord.objects.filter(course=course.pk)
                            .filter(preference_order=2)
                            .filter(approved=True)
                            .filter(trainess_approved=True)
                            .prefetch_related("course")
                        )
                        trainess[course]["trainess3"] = (
                            TrainessCourseRecord.objects.filter(course=course.pk)
                            .filter(preference_order=3)
                            .filter(approved=True)
                            .filter(trainess_approved=True)
                            .prefetch_related("course")
                        )
                        trainess[course]["trainess_addition_1"] = (
                            TrainessCourseRecord.objects.filter(course=course.pk)
                            .filter(preference_order=-1)
                            .filter(approved=True)
                            .filter(trainess_approved=True)
                            .prefetch_related("course")
                        )
                data["trainess"] = trainess
                if request.POST:
                    log.info("kursiyer onay islemi basladi", extra=d)
                    log.info(request.POST, extra=d)
                    for course in courses:
                        try:
                            if now_for_approve > first_pref_approve_start and now_for_approve < third_pref_approve_end:
                                allprefs = []
                                if (now_for_approve > first_pref_approve_start) and (
                                    now_for_approve < first_pref_approve_end
                                ):
                                    allprefs.extend(
                                        TrainessCourseRecord.objects.filter(course=course.pk).filter(preference_order=1)
                                    )
                                    log.debug(allprefs, extra=d)
                                if (now_for_approve > second_pref_approve_start) and (
                                    now_for_approve < second_pref_approve_end
                                ):
                                    allprefs.extend(
                                        TrainessCourseRecord.objects.filter(course=course.pk).filter(preference_order=2)
                                    )
                                    log.debug(allprefs, extra=d)
                                if (now_for_approve > third_pref_approve_start) and (
                                    now_for_approve < third_pref_approve_end
                                ):
                                    allprefs.extend(
                                        TrainessCourseRecord.objects.filter(course=course.pk).filter(preference_order=3)
                                    )
                                    log.debug(allprefs, extra=d)
                                approvedr = request.POST.getlist("students" + str(course.pk))
                                log.debug(allprefs, extra=d)
                                for p in allprefs:
                                    if str(p.pk) not in approvedr:
                                        p.approved = False
                                    elif str(p.pk) in approvedr:
                                        p.approved = True
                                    p.save()
                                    log.debug(p, extra=d)
                                course.trainess.clear()
                                allprefs = TrainessCourseRecord.objects.filter(course=course.pk)
                                for p in allprefs:
                                    if p.approved == True:
                                        course.trainess.add(p.trainess)
                                course.save()

                                data["user"] = request.user
                                data["course"] = course
                                send_email(
                                    "training/messages/inform_trainers_about_changes_subject.txt",
                                    "training/messages/inform_trainers_about_changes.html",
                                    "training/messages/inform_trainers_about_changes.txt",
                                    data,
                                    EMAIL_FROM_ADDRESS,
                                    course.trainer.all().values_list("user__username", flat=True),
                                )

                                note = "Seçimleriniz başarılı bir şekilde kaydedildi."
                            else:
                                if (now_for_approve > addition1_pref_approve_start) and (
                                    now_for_approve < addition1_pref_approve_end
                                ):
                                    allprefs = []
                                    allprefs.extend(
                                        TrainessCourseRecord.objects.filter(course=course.pk).filter(
                                            preference_order=-1
                                        )
                                    )
                                    approvedr = request.POST.getlist("students" + str(course.pk))
                                    log.debug(allprefs, extra=d)
                                    for p in allprefs:
                                        if str(p.pk) not in approvedr:
                                            p.approved = False
                                        elif str(p.pk) in approvedr:
                                            p.approved = True
                                            p.trainess_approved = True
                                        p.save()
                                        log.debug(p, extra=d)
                                    course.trainess.clear()
                                    allprefs = TrainessCourseRecord.objects.filter(course=course.pk)
                                    for p in allprefs:
                                        if p.approved == True:
                                            course.trainess.add(p.trainess)
                                    course.save()

                                    data["user"] = request.user
                                    data["course"] = course
                                    send_email(
                                        "training/messages/inform_trainers_about_changes_subject.txt",
                                        "training/messages/inform_trainers_about_changes.html",
                                        "training/messages/inform_trainers_about_changes.txt",
                                        data,
                                        EMAIL_FROM_ADDRESS,
                                        course.trainer.all().values_list("user__username", flat=True),
                                    )

                                    note = "Seçimleriniz başarılı bir şekilde kaydedildi."
                                else:
                                    note = "Onaylama dönemi dışındasınız"
                        except Exception as e:
                            note = "Beklenmedik bir hata oluştu!"
                            log.error(e.message, extra=d)
            data["TRAINESS_SCORE"] = TRAINESS_SCORE
            data["note"] = note
            return render_to_response("training/controlpanel.html", data, context_instance=RequestContext(request))
        else:
            return redirect("applytocourse")
    except UserProfile.DoesNotExist:
        return redirect("createprofile")
Example #41
0
def allcourseprefview(request):
    d = {"clientip": request.META["REMOTE_ADDR"], "user": request.user}
    data = prepare_template_data(request)
    data["datalist"] = TrainessCourseRecord.objects.all()
    return render_to_response("training/allcourseprefs.html", data, context_instance=RequestContext(request))
Example #42
0
def statistic(request):
    d = {"clientip": request.META["REMOTE_ADDR"], "user": request.user}
    try:
        data = prepare_template_data(request)

        record_data = (
            TrainessCourseRecord.objects.filter()
            .values("course", "preference_order")
            .annotate(Count("preference_order"))
            .order_by("course", "-preference_order")
        )
        statistic_by_course = {}
        for key, group in itertools.groupby(record_data, lambda item: item["course"]):
            statistic_by_course[Course.objects.get(pk=key)] = {
                str(item["preference_order"]): item["preference_order__count"] for item in group
            }
        data["statistic_by_course"] = statistic_by_course
        statistic_by_gender = (
            UserProfile.objects.filter(is_student=True).values("gender").annotate(Count("gender")).order_by("gender")
        )
        data["statistic_by_gender"] = statistic_by_gender
        statistic_by_gender_for_approved = (
            UserProfile.objects.filter(is_student=True)
            .filter(trainesscourserecord__approved__in=[True])
            .filter(trainesscourserecord__trainess_approved__in=[True])
            .values("gender")
            .annotate(Count("gender"))
            .order_by("gender")
        )
        data["statistic_by_gender_for_approved"] = statistic_by_gender_for_approved
        log.debug(statistic_by_gender, extra=d)
        statistic_by_university = (
            UserProfile.objects.filter(is_student=True)
            .values("university")
            .annotate(Count("university"))
            .order_by("-university__count")
        )
        data["statistic_by_university"] = statistic_by_university

        statistic_by_university_for_approved = (
            UserProfile.objects.filter(is_student=True)
            .values("university")
            .filter(trainesscourserecord__approved__in=[True])
            .filter(trainesscourserecord__trainess_approved__in=[True])
            .annotate(Count("university"))
            .order_by("-university__count")
        )
        data["statistic_by_university_for_approved"] = statistic_by_university_for_approved
        data["statistic_by_course_for_apply"] = (
            TrainessCourseRecord.objects.filter(trainess_approved=True)
            .values("course__name")
            .annotate(count=Count("course"))
            .order_by("-count")
        )
        total_profile = len(UserProfile.objects.filter(is_student=True))
        total_preference = len(TrainessCourseRecord.objects.all())
        total_preference_for_approved = len(
            TrainessCourseRecord.objects.filter(approved=True).filter(trainess_approved=True)
        )
        data["statistic_by_totalsize"] = {
            "Toplam Profil(Kişi)": total_profile,
            "Toplam Tercih": total_preference,
            "Toplam Teyit Eden": total_preference_for_approved,
        }
    except Exception as e:
        log.error(e.message, extra=d)
    return render_to_response("training/statistic.html", data)
Example #43
0
def list_courses(request):
    data = prepare_template_data(request)
    courses = Course.objects.filter(site=data['site'])
    data['courses'] = courses
    return render_to_response('training/courses.html', data)    
Example #44
0
def approve_course_preference(request):
    d = {"clientip": request.META["REMOTE_ADDR"], "user": request.user}
    data = prepare_template_data(request)
    now_for_approve = timezone.now()
    if request.POST:
        try:
            log.debug(request.POST.get("courseRecordId"), extra=d)
            trainess_course_record = TrainessCourseRecord.objects.get(
                trainess=request.user.userprofile, approved=True, id=request.POST.get("courseRecordId")
            )
            preference_order = trainess_course_record.preference_order
            pref_approve_start = ApprovalDate.objects.get(
                site=data["site"], preference_order=preference_order, for_trainess=True
            ).start_date
            pref_approve_end = ApprovalDate.objects.get(
                site=data["site"], preference_order=preference_order, for_trainess=True
            ).end_date
            if now_for_approve > pref_approve_start and now_for_approve < pref_approve_end:
                trainess_course_record.trainess_approved = True
                trainess_course_record.save()
                message = "İşleminiz başarılı bir şekilde gerçekleştirildi"
                status = "0"
                log.debug("kursu onayladi " + trainess_course_record.course.name, extra=d)
            else:
                message = "Kurs teyit dönemi dışındasınız."
                status = "-1"
        except Exception as e:
            log.error(e.message, extra=d)
            message = "İşleminiz Sırasında Hata Oluştu"
            status = "-1"
        return HttpResponse(json.dumps({"status": status, "message": message}), content_type="application/json")

    try:
        first_pref_approve_start = ApprovalDate.objects.get(
            site=data["site"], preference_order=1, for_trainess=True
        ).start_date
        first_pref_approve_end = ApprovalDate.objects.get(
            site=data["site"], preference_order=1, for_trainess=True
        ).end_date
        second_pref_approve_start = ApprovalDate.objects.get(
            site=data["site"], preference_order=2, for_trainess=True
        ).start_date
        second_pref_approve_end = ApprovalDate.objects.get(
            site=data["site"], preference_order=2, for_trainess=True
        ).end_date
        third_pref_approve_start = ApprovalDate.objects.get(
            site=data["site"], preference_order=3, for_trainess=True
        ).start_date
        third_pref_approve_end = ApprovalDate.objects.get(
            site=data["site"], preference_order=3, for_trainess=True
        ).end_date
        trainess_course_record = []
        trainess_course_records = TrainessCourseRecord.objects.filter(trainess=request.user.userprofile).order_by(
            "preference_order"
        )
        data["course_exist"] = "0"
        data["approve_is_open"] = "0"
        note = ""
        if now_for_approve > first_pref_approve_start and now_for_approve < third_pref_approve_end:
            if len(trainess_course_records) == len(trainess_course_records.filter(approved=False)):
                data["course_exist"] = "0"
                data["approve_is_open"] = "0"
                note = "Herhangi bir kursa kabul edilemediniz."
                if first_pref_approve_start < now_for_approve and now_for_approve < second_pref_approve_start:
                    note = "Birinci tercihinizden herhangi bir kursa kabul edilemediniz varsa diğer tercihlerinizin sonuçlanmasını bekleyiniz"
                elif second_pref_approve_start < now_for_approve and now_for_approve < third_pref_approve_start:
                    note = "İkinci tercihinizden herhangi bir kursa kabul edilemediniz varsa diğer tercihlerinizin sonuçlanmasını bekleyiniz"
            elif len(trainess_course_records) == len(trainess_course_records.filter(trainess_approved=False)):
                data["course_exist"] = "1"
                data["approve_is_open"] = "1"
                note = "Kabul edildiğiniz aşağıdaki kursu onaylayabilirsiniz"
                if first_pref_approve_start < now_for_approve and now_for_approve < first_pref_approve_end:
                    trainess_course_record = trainess_course_records.filter(preference_order=1).filter(approved=True)
                elif second_pref_approve_start < now_for_approve and now_for_approve < second_pref_approve_end:
                    trainess_course_record = trainess_course_records.filter(preference_order=2).filter(approved=True)
                elif third_pref_approve_start < now_for_approve and now_for_approve < third_pref_approve_end:
                    trainess_course_record = trainess_course_records.filter(preference_order=3).filter(approved=True)
                if len(trainess_course_record) == 0:
                    note = "Kabul edildiğiniz veya teyit ettiğiniz kurs bulunamadı"
                    data["course_exist"] = "0"
                    data["approve_is_open"] = "0"

            else:
                data["course_exist"] = "1"
                data["approve_is_open"] = "0"
                trainess_course_record = trainess_course_records.filter(trainess_approved=True).filter(approved=True)
                note = "Aşağıdaki Kursa Kabul Edildiniz"
        else:
            trainess_course_record = trainess_course_records.filter(trainess_approved=True).filter(approved=True)
            if len(trainess_course_record) == 1:
                data["course_exist"] = "1"
                data["approve_is_open"] = "0"
                note = "Aşağıdaki Kursa Kabul Edildiniz"
            else:
                if len(trainess_course_record) > 1:
                    log.debug("kursiyerin teyit edilen 1'den fazla kursu var!!", extra=d)
                note = "Kurs teyit dönemi dışındasınız veya kabul edildiğiniz kurs yok"
        data["note"] = note
        data["trainess_course_record"] = trainess_course_record
    except Exception as e:
        log.error(e.message, extra=d)
        data["note"] = "Hata oluştu"

    return render_to_response("training/confirm_course_preference.html", data)