Exemplo n.º 1
0
def back(request, course_short_title=None):
    selection = request.session.get('selection', 'error')
    course = Course.get_or_raise_404(short_title=course_short_title)

    if selection == "search":
        return HttpResponse()
    if selection == "missing_reviews":
        elaborations = Elaboration.get_missing_reviews(course)
    if selection == "top_level_tasks":
        elaborations = Elaboration.get_top_level_tasks(course)
    if selection == "non_adequate_work":
        elaborations = Elaboration.get_non_adequate_work(course)
    if selection == "complaints":
        elaborations = Elaboration.get_complaints(course)
    if selection == "awesome":
        elaborations = Elaboration.get_awesome(course)
    if selection == "evaluated_non_adequate_work":
        elaborations = Elaboration.get_evaluated_non_adequate_work(course)

    # update overview
    if type(elaborations) == list:
        elaborations.sort(key=lambda elaboration: elaboration.submission_time)
    else:
        elaborations = elaborations.order_by('submission_time')
    request.session['elaborations'] = serializers.serialize('json', elaborations)

    return evaluation(request, course_short_title)
Exemplo n.º 2
0
def missing_reviews(request, course_short_title=None):
    course = Course.get_or_raise_404(short_title=course_short_title)
    elaborations = Elaboration.get_missing_reviews(course)

    # sort elaborations by submission time
    if type(elaborations) == list:
        elaborations.sort(key=lambda elaboration: elaboration.submission_time)
    else:
        elaborations = elaborations.order_by('submission_time')

    # store selected elaborations in session
    request.session['elaborations'] = serializers.serialize(
        'json', elaborations)
    request.session['selection'] = 'missing_reviews'
    request.session['count'] = len(elaborations)

    return render_to_response('evaluation.html',
                              {'overview': render_to_string('overview.html', {'elaborations': elaborations, 'course': course},
                                                            RequestContext(request)),
                               'count_missing_reviews': request.session.get('count', '0'),
                               'stabilosiert_missing_reviews': 'stabilosiert',
                               'selection': request.session['selection'],
                               'course': course
                               },
                              context_instance=RequestContext(request))
Exemplo n.º 3
0
def back(request, course_short_title=None):
    selection = request.session.get('selection', 'error')
    course = Course.get_or_raise_404(short_title=course_short_title)

    if selection == "search":
        return HttpResponse()
    if selection == "missing_reviews":
        elaborations = Elaboration.get_missing_reviews(course)
    if selection == "top_level_tasks":
        elaborations = Elaboration.get_top_level_tasks(course)
    if selection == "non_adequate_work":
        elaborations = Elaboration.get_non_adequate_work(course)
    if selection == "complaints":
        elaborations = Elaboration.get_complaints(course)
    if selection == "awesome":
        elaborations = Elaboration.get_awesome(course)
    if selection == "evaluated_non_adequate_work":
        elaborations = Elaboration.get_evaluated_non_adequate_work(course)

    # update overview
    if type(elaborations) == list:
        elaborations.sort(key=lambda elaboration: elaboration.submission_time)
    else:
        elaborations = elaborations.order_by('submission_time')
    request.session['elaborations'] = serializers.serialize(
        'json', elaborations)

    return evaluation(request, course_short_title)
Exemplo n.º 4
0
def missing_reviews(request, course_short_title=None):
    course = Course.get_or_raise_404(short_title=course_short_title)
    elaborations = Elaboration.get_missing_reviews(course)

    # sort elaborations by submission time
    if type(elaborations) == list:
        elaborations.sort(key=lambda elaboration: elaboration.submission_time)
    else:
        elaborations = elaborations.order_by('submission_time')

    # store selected elaborations in session
    request.session['elaborations'] = serializers.serialize(
        'json', elaborations)
    request.session['selection'] = 'missing_reviews'
    request.session['count'] = len(elaborations)

    return render_to_response('evaluation.html', {
        'overview':
        render_to_string('overview.html', {
            'elaborations': elaborations,
            'course': course
        }, RequestContext(request)),
        'count_missing_reviews':
        request.session.get('count', '0'),
        'stabilosiert_missing_reviews':
        'stabilosiert',
        'selection':
        request.session['selection'],
        'course':
        course
    },
                              context_instance=RequestContext(request))
Exemplo n.º 5
0
def missing_reviews(request, course_short_title=None):
    course = Course.get_or_raise_404(short_title=course_short_title)
    elaborations = Elaboration.get_missing_reviews(course)

    # sort elaborations by submission time
    if type(elaborations) == list:
        elaborations.sort(key=lambda elaboration: elaboration.submission_time)
    else:
        elaborations = elaborations.order_by("submission_time")

    # store selected elaborations in session
    request.session["elaborations"] = serializers.serialize("json", elaborations)
    request.session["selection"] = "missing_reviews"
    request.session["count"] = len(elaborations)

    return render_to_response(
        "evaluation.html",
        {
            "overview": render_to_string(
                "overview.html", {"elaborations": elaborations, "course": course}, RequestContext(request)
            ),
            "count_missing_reviews": request.session.get("count", "0"),
            "stabilosiert_missing_reviews": "stabilosiert",
            "selection": request.session["selection"],
            "course": course,
        },
        context_instance=RequestContext(request),
    )
Exemplo n.º 6
0
def review_answer(request, course_short_title=None):
    course = Course.get_or_raise_404(short_title=course_short_title)

    data = request.body.decode(encoding='UTF-8')
    data = json.loads(data)

    user = request.user
    answers = data['answers']
    elab_id_from_client = data['elab']

    review = Review.objects.create(
        elaboration_id=elab_id_from_client, reviewer_id=user.id)

    review.appraisal = data['appraisal']
    review.submission_time = datetime.now()
    review.save()
    for answer in answers:
        question_id = answer['question_id']
        text = answer['answer']
        review_question = ReviewQuestion.objects.get(pk=question_id)
        ReviewAnswer(
            review=review, review_question=review_question, text=text).save()
    if review.appraisal == review.NOTHING:
        Notification.bad_review(review)
    else:
        Notification.enough_peer_reviews(review)
    # update overview
    elaborations = Elaboration.get_missing_reviews(course)
    if type(elaborations) == list:
        elaborations.sort(key=lambda elaboration: elaboration.submission_time)
    else:
        elaborations = elaborations.order_by('submission_time')
    request.session['elaborations'] = serializers.serialize(
        'json', elaborations)

    if review.elaboration.is_reviewed_2times():
        evaluation_url = reverse('Evaluation:home', args=[course_short_title])
    else:
        evaluation_url = reverse('Evaluation:detail', args=[course_short_title])\
            + "?elaboration_id=" + str(review.elaboration.id)

    return HttpResponse(evaluation_url)
Exemplo n.º 7
0
def review_answer(request, course_short_title=None):
    course = Course.get_or_raise_404(short_title=course_short_title)

    data = request.body.decode(encoding='UTF-8')
    data = json.loads(data)

    user = RequestContext(request)['user']
    answers = data['answers']

    review = Review.objects.create(elaboration_id=request.session.get(
        'elaboration_id', ''),
                                   reviewer_id=user.id)

    review.appraisal = data['appraisal']
    review.submission_time = datetime.now()
    review.save()
    for answer in answers:
        question_id = answer['question_id']
        text = answer['answer']
        review_question = ReviewQuestion.objects.get(pk=question_id)
        ReviewAnswer(review=review, review_question=review_question,
                     text=text).save()
    if review.appraisal == review.NOTHING:
        Notification.bad_review(review)
    else:
        Notification.enough_peer_reviews(review)
    # update overview
    elaborations = Elaboration.get_missing_reviews(course)
    if type(elaborations) == list:
        elaborations.sort(key=lambda elaboration: elaboration.submission_time)
    else:
        elaborations = elaborations.order_by('submission_time')
    request.session['elaborations'] = serializers.serialize(
        'json', elaborations)

    if review.elaboration.is_reviewed_2times():
        evaluation_url = reverse('Evaluation:home', args=[course_short_title])
    else:
        evaluation_url = reverse('Evaluation:detail', args=[course_short_title])\
            + "?elaboration_id=" + str(review.elaboration.id)

    return HttpResponse(evaluation_url)
Exemplo n.º 8
0
def review_answer(request, course_short_title=None):
    course = Course.get_or_raise_404(short_title=course_short_title)

    data = request.body.decode(encoding="UTF-8")
    data = json.loads(data)

    user = RequestContext(request)["user"]
    answers = data["answers"]

    review = Review.objects.create(elaboration_id=request.session.get("elaboration_id", ""), reviewer_id=user.id)

    review.appraisal = data["appraisal"]
    review.submission_time = datetime.now()
    review.save()
    for answer in answers:
        question_id = answer["question_id"]
        text = answer["answer"]
        review_question = ReviewQuestion.objects.get(pk=question_id)
        ReviewAnswer(review=review, review_question=review_question, text=text).save()
    if review.appraisal == review.NOTHING:
        Notification.bad_review(review)
    else:
        Notification.enough_peer_reviews(review)
    # update overview
    elaborations = Elaboration.get_missing_reviews(course)
    if type(elaborations) == list:
        elaborations.sort(key=lambda elaboration: elaboration.submission_time)
    else:
        elaborations = elaborations.order_by("submission_time")
    request.session["elaborations"] = serializers.serialize("json", elaborations)

    if review.elaboration.is_reviewed_2times():
        evaluation_url = reverse("Evaluation:home", args=[course_short_title])
    else:
        evaluation_url = (
            reverse("Evaluation:detail", args=[course_short_title]) + "?elaboration_id=" + str(review.elaboration.id)
        )

    return HttpResponse(evaluation_url)