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)
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
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)
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)
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)
def dehydrate_peer_review_score(self, bundle): try: return kq_get_peer_review_score(bundle.obj, bundle.request.user) except ObjectDoesNotExist: return None
def dehydrate_peer_review_score(self, bundle): return kq_get_peer_review_score(bundle.obj, bundle.request.user)