Exemple #1
0
def calculate_peer_review_mark(kq, peer_review_assignment, user):
    from moocng.peerreview.utils import kq_get_peer_review_score

    mark, use_in_total = kq_get_peer_review_score(kq, user,
                                                  peer_review_assignment)
    if mark is not None:
        return (mark * 2.0, use_in_total)  # * 2 due peer_review range is 1-5
    else:
        return (None, False)
Exemple #2
0
def calculate_peer_review_mark(kq, peer_review_assignment, user):
    from moocng.peerreview.utils import kq_get_peer_review_score

    mark, use_in_total = kq_get_peer_review_score(kq, user,
                                                  peer_review_assignment)
    if mark is not None:
        return (mark * 2.0, use_in_total)  # * 2 due peer_review range is 1-5
    else:
        return (None, False)
Exemple #3
0
def calculate_peer_review_mark(kq, peer_review_assignment, user):
    """
    Calculate if the user has done the peer reviewed task. This is done by
    checking if the minimum reviews of the task have been done.

    .. versionadded:: 0.1
    """
    from moocng.peerreview.utils import kq_get_peer_review_score

    mark = kq_get_peer_review_score(kq, user, peer_review_assignment)
    if mark is None:
        mark = 0
    return mark
Exemple #4
0
def calculate_peer_review_mark(kq, peer_review_assignment, user):

    """
    Calculate if the user has done the peer reviewed task. This is done by
    checking if the minimum reviews of the task have been done.

    .. versionadded:: 0.1
    """
    from moocng.peerreview.utils import kq_get_peer_review_score

    mark = kq_get_peer_review_score(kq, user,
                                    peer_review_assignment)
    if mark is None:
        mark = 0
    return mark
Exemple #5
0
def calculate_peer_review_mark(kq, peer_review_assignment, user):
    """
    Calculate if the user has done the peer reviewed task. This is done by
    checking if the minimum reviews of the task have been done.

    .. versionadded:: 0.1
    """
    from moocng.peerreview.utils import kq_get_peer_review_score

    mark, use_in_total = kq_get_peer_review_score(kq, user,
                                                  peer_review_assignment)
    if mark is not None:
        return (mark * 2.0, use_in_total)  # * 2 due peer_review range is 1-5
    else:
        return (None, False)
Exemple #6
0
def calculate_peer_review_mark(kq, peer_review_assignment, user):

    """
    Calculate if the user has done the peer reviewed task. This is done by
    checking if the minimum reviews of the task have been done.

    .. versionadded:: 0.1
    """
    from moocng.peerreview.utils import kq_get_peer_review_score

    mark, use_in_total = kq_get_peer_review_score(kq, user,
                                                  peer_review_assignment)
    if mark is not None:
        return (mark * 2.0, use_in_total)  # * 2 due peer_review range is 1-5
    else:
        return (None, False)
Exemple #7
0
def calculate_kq_mark(kq, user):
    # TODO Optimize per student
    from moocng.courses.models import Question
    from moocng.peerreview.models import PeerReviewAssignment
    from moocng.peerreview.utils import kq_get_peer_review_score
    try:
        db = get_db()
        question = Question.objects.filter(kq=kq)
        if question:
            answers = db.get_collection('answers')
            user_answer_list = answers.find_one({'user': user.id}, safe=True)
            if user_answer_list is not None:
                answer = user_answer_list.get('questions',
                                              {}).get(unicode(question[0].id))
                if answer and question[0].is_correct(answer):
                    return (10.0, True)
                else:
                    if kq.unit.deadline is not None and kq.unit.deadline > datetime.now(
                            kq.unit.deadline.tzinfo):
                        return (0.0, True)
        else:
            peer_review_assignment = PeerReviewAssignment.objects.filter(kq=kq)
            if peer_review_assignment:
                mark, use_in_total = kq_get_peer_review_score(
                    kq, user, peer_review_assignment[0])
                if mark is not None:
                    return (mark * 2.0, use_in_total
                            )  # * 2 due peer_review range is 1-5
                else:
                    return (None, False)
            else:
                activity = db.get_collection('activity')
                user_activity_list = activity.find_one({'user': user.id},
                                                       safe=True)
                if user_activity_list is not None:
                    visited_kqs = user_activity_list.get('courses', {}).get(
                        unicode(kq.unit.course.id), {}).get('kqs', [])
                    if unicode(kq.id) in visited_kqs:
                        return (10.0, True)
                    else:
                        if kq.unit.deadline is not None and kq.unit.deadline > datetime.now(
                                kq.unit.deadline.tzinfo):
                            return (0, True)
    except AttributeError:
        pass
    return (0, True)
Exemple #8
0
def calculate_kq_mark(kq, user):
    # TODO Optimize per student
    from moocng.courses.models import Question
    from moocng.peerreview.models import PeerReviewAssignment
    from moocng.peerreview.utils import kq_get_peer_review_score

    try:
        db = get_db()
        question = Question.objects.filter(kq=kq)
        if question:
            answers = db.get_collection("answers")
            user_answer_list = answers.find_one({"user": user.id}, safe=True)
            if user_answer_list is not None:
                answer = user_answer_list.get("questions", {}).get(unicode(question[0].id))
                if answer and question[0].is_correct(answer):
                    return (10.0, True)
                else:
                    if kq.unit.deadline is not None and kq.unit.deadline > datetime.now(kq.unit.deadline.tzinfo):
                        return (0.0, True)
        else:
            peer_review_assignment = PeerReviewAssignment.objects.filter(kq=kq)
            if peer_review_assignment:
                mark, use_in_total = kq_get_peer_review_score(kq, user, peer_review_assignment[0])
                if mark is not None:
                    return (mark * 2.0, use_in_total)  # * 2 due peer_review range is 1-5
                else:
                    return (None, False)
            else:
                activity = db.get_collection("activity")
                user_activity_list = activity.find_one({"user": user.id}, safe=True)
                if user_activity_list is not None:
                    visited_kqs = (
                        user_activity_list.get("courses", {}).get(unicode(kq.unit.course.id), {}).get("kqs", [])
                    )
                    if unicode(kq.id) in visited_kqs:
                        return (10.0, True)
                    else:
                        if kq.unit.deadline is not None and kq.unit.deadline > datetime.now(kq.unit.deadline.tzinfo):
                            return (0, True)
    except AttributeError:
        pass
    return (0, True)
Exemple #9
0
 def dehydrate_peer_review_score(self, bundle):
     try:
         return kq_get_peer_review_score(bundle.obj, bundle.request.user)
     except ObjectDoesNotExist:
         return None
Exemple #10
0
 def dehydrate_peer_review_score(self, bundle):
     return kq_get_peer_review_score(bundle.obj, bundle.request.user)
Exemple #11
0
 def dehydrate_peer_review_score(self, bundle):
     try:
         return kq_get_peer_review_score(bundle.obj, bundle.request.user)
     except ObjectDoesNotExist:
         return None
Exemple #12
0
 def dehydrate_peer_review_score(self, bundle):
     return kq_get_peer_review_score(bundle.obj, bundle.request.user)