示例#1
0
def add_note(request, username):
    user = request.user
    if username != user.username:
        return render(request, 'userena/user_add_note.html', {
            'error': True,
            'cur_user': user
        })
    else:
        cur_user = get_object_or_404(User, username=username)

        if request.method == 'POST':
            form = AddNoteForm(request.POST, request.FILES)
            if form.is_valid():
                note = Note(user=cur_user,
                            name=form.cleaned_data['name'],
                            date=datetime.datetime.now(),
                            image=form.cleaned_data['image'],
                            description=form.cleaned_data['description'])
                note.save()

                redir = '/accounts/' + username + '/blog/'
                return HttpResponseRedirect(redir)  # Redirect after POST
        else:
            form = AddNoteForm()  # An unbound form

        return render(request, 'userena/user_add_note.html', {
            'form': form,
            'error': False,
            'cur_user': cur_user,
            'user': user
        })
示例#2
0
def vote(request, course_id, practical_lesson_id):
    course = get_object_or_404(Course, id=course_id)
    practical = get_object_or_404(PracticalLesson, id=practical_lesson_id)
    user = request.user

    cour_pract = CourseResult.objects.get(practical_course=course, user = user)
    
    if cour_pract.success == True:
        if cour_pract.achievement == True:
            cour_pract.achievement = False

    res = get_object_or_404(PracticalLessonResult, practical_lesson=practical, practical_course = cour_pract)
    polls = get_polls_pract_res(res, practical_lesson_id)

    result = 0
    
    for p in polls:
        if p.question_type == 'CH':
            result = result_set(Choice, p, res, result, request)
        elif p.question_type == 'OPE':
            result = result_set(Open, p, res, result, request)
        elif p.question_type == 'COM':
            result = result_set(Compliance, p, res, result, request)
        elif p.question_type == 'SOR':
            result = result_set(Sort, p, res, result, request)

    res.result = result
    res.date = datetime.datetime.now()

    if practical.threshold*res.max/100 > result:
       res.success = False       
    else:
       res.success = True
                  
    res.save()

    practical_list = PracticalLesson.objects.filter(course = practical.course)
    for p in practical_list:        
        try:
            pract = PracticalLessonResult.objects.get(practical_lesson=p, practical_course=cour_pract)
        except PracticalLessonResult.DoesNotExist:
            cour_pract.success = False
            break
        else:
            if pract.success == False:
                cour_pract.success = False
                break
            else:
               cour_pract.success = True

    cour_pract.save()

    if cour_pract.success == True:
        if cour_pract.achievement == True:
            name = 'Заработано достижение по курсу ' + course.name + '!'
            des = 'Мной получено достижение по курсу ' + course.name + ' с результатом ' + str(result) +'!'
            note = Note(user=user, name=name, date=datetime.datetime.now(), image=course.image, description=des)
            note.save()

    return HttpResponseRedirect(reverse('result', args=(str(practical_lesson_id))))
示例#3
0
def add_note(request, username):
    user = request.user
    if username != user.username:
        return render(request, "userena/user_add_note.html", {"error": True, "cur_user": user})
    else:
        cur_user = get_object_or_404(User, username=username)

        if request.method == "POST":
            form = AddNoteForm(request.POST, request.FILES)
            if form.is_valid():
                note = Note(
                    user=cur_user,
                    name=form.cleaned_data["name"],
                    date=datetime.datetime.now(),
                    image=form.cleaned_data["image"],
                    description=form.cleaned_data["description"],
                )
                note.save()

                redir = "/accounts/" + username + "/blog/"
                return HttpResponseRedirect(redir)  # Redirect after POST
        else:
            form = AddNoteForm()  # An unbound form

        return render(
            request, "userena/user_add_note.html", {"form": form, "error": False, "cur_user": cur_user, "user": user}
        )
示例#4
0
def vote(request, course_id, practical_lesson_id):
    course = get_object_or_404(Course, id=course_id)
    practical = get_object_or_404(PracticalLesson, id=practical_lesson_id)
    user = request.user

    cour_pract = CourseResult.objects.get(practical_course=course, user=user)

    if cour_pract.success == True:
        if cour_pract.achievement == True:
            cour_pract.achievement = False

    res = get_object_or_404(PracticalLessonResult,
                            practical_lesson=practical,
                            practical_course=cour_pract)
    polls = get_polls_pract_res(res, practical_lesson_id)

    result = 0

    for p in polls:
        if p.question_type == 'CH':
            result = result_set(Choice, p, res, result, request)
        elif p.question_type == 'OPE':
            result = result_set(Open, p, res, result, request)
        elif p.question_type == 'COM':
            result = result_set(Compliance, p, res, result, request)
        elif p.question_type == 'SOR':
            result = result_set(Sort, p, res, result, request)

    res.result = result
    res.date = datetime.datetime.now()

    if practical.threshold * res.max / 100 > result:
        res.success = False
    else:
        res.success = True

    res.save()

    practical_list = PracticalLesson.objects.filter(course=practical.course)
    for p in practical_list:
        try:
            pract = PracticalLessonResult.objects.get(
                practical_lesson=p, practical_course=cour_pract)
        except PracticalLessonResult.DoesNotExist:
            cour_pract.success = False
            break
        else:
            if pract.success == False:
                cour_pract.success = False
                break
            else:
                cour_pract.success = True

    cour_pract.save()

    if cour_pract.success == True:
        if cour_pract.achievement == True:
            name = 'Заработано достижение по курсу ' + course.name + '!'
            des = 'Мной получено достижение по курсу ' + course.name + ' с результатом ' + str(
                result) + '!'
            note = Note(user=user,
                        name=name,
                        date=datetime.datetime.now(),
                        image=course.image,
                        description=des)
            note.save()

    return HttpResponseRedirect(
        reverse('result', args=(str(practical_lesson_id))))