def dashboard(request): user = request.user # assign new reviewing tasks to this user new_task_count = 0 allow_requesting_more_tasks = False live_review_milestones = ReviewMilestone.objects.filter(assigned_date__lt=datetime.datetime.now(),\ duedate__gt=datetime.datetime.now(), assignment__semester__members__user=user).all() for review_milestone in live_review_milestones: #logging.debug("live reviewing milestone: " + review_milestone) current_tasks = user.tasks.filter(milestone=review_milestone) active_sub = Submission.objects.filter(authors=user, milestone=review_milestone.submit_milestone) try: membership = Member.objects.get(user=user, semester=review_milestone.assignment.semester) if active_sub.count() or not Member.STUDENT in membership.role: #logging.debug("I can have assignments") # user is a student with an existing submission, or isn't a student # allow user to request more tasks manually allow_requesting_more_tasks = True if not current_tasks.count(): # automatically assign new tasks to student ONLY if they don't already have tasks #logging.debug("assigning tasks") new_task_count += assign_tasks(review_milestone, user) except ObjectDoesNotExist: pass return dashboard_for(request, user, new_task_count)
def dashboard(request): user = request.user # assign new reviewing tasks to this user new_task_count = 0 allow_requesting_more_tasks = False live_review_milestones = ReviewMilestone.objects.filter(assigned_date__lt=datetime.datetime.now(),\ duedate__gt=datetime.datetime.now(), assignment__semester__members__user=user).all() for review_milestone in live_review_milestones: #logging.debug("live reviewing milestone: " + review_milestone) current_tasks = user.tasks.filter(milestone=review_milestone) active_sub = Submission.objects.filter( authors=user, milestone=review_milestone.submit_milestone) try: membership = Member.objects.get( user=user, semester=review_milestone.assignment.semester) if active_sub.count() or not Member.STUDENT in membership.role: #logging.debug("I can have assignments") # user is a student with an existing submission, or isn't a student # allow user to request more tasks manually allow_requesting_more_tasks = True if not current_tasks.count(): # automatically assign new tasks to student ONLY if they don't already have tasks #logging.debug("assigning tasks") new_task_count += assign_tasks(review_milestone, user) except ObjectDoesNotExist: pass return dashboard_for(request, user, new_task_count)
def more_work(request): if request.method == 'POST': user = request.user new_task_count = 0 current_tasks = user.tasks.exclude(status='C').exclude(status='U') total = 0 if not current_tasks.count(): live_review_milestones = ReviewMilestone.objects.filter(assigned_date__lt=datetime.datetime.now(),\ duedate__gt=datetime.datetime.now(), assignment__semester__members_user=user).all() for milestone in live_review_milestones: current_tasks = user.tasks.filter(milestone=milestone) active_sub = Submission.objects.filter( name=user.username, milestone=milestone.reviewmilestone.submit_milestone) #do not give tasks to students who got extensions or already have tasks for this assignment if (not current_tasks.count()) and active_sub.count(): open_assignments = True total += assign_tasks(milestone, user, tasks_to_assign=2) active_tasks = user.tasks \ .select_related('chunk__file__submission__milestone__assignment') \ .exclude(status='C') \ .exclude(status='U') \ .annotate(comment_count=Count('chunk__comments', distinct=True), reviewer_count=Count('chunk__tasks', distinct=True)) one = active_tasks.all()[0] two = active_tasks.all()[1] response_json = json.dumps({ 'total': total, 'one': {"task_chunk_name": one.chunk.name, \ "task_comment_count": one.comment_count,\ "task_reviewer_count": one.reviewer_count, \ "task_chunk_generate_snippet": one.chunk.generate_snippet(),\ "task_id": one.id,\ "task_chunk_id": one.chunk.id}, 'two': {"task_chunk_name": two.chunk.name, \ "task_comment_count": two.comment_count,\ "task_reviewer_count": two.reviewer_count, \ "task_chunk_generate_snippet": two.chunk.generate_snippet(),\ "task_id": two.id,\ "task_chunk_id": two.chunk.id}, }) return HttpResponse(response_json, mimetype='application/javascript') return render(request, 'accounts/manage.html', {})
def more_work(request): if request.method == 'POST': user = request.user new_task_count = 0 current_tasks = user.tasks.exclude(status='C').exclude(status='U') total = 0 if not current_tasks.count(): live_review_milestones = ReviewMilestone.objects.filter(assigned_date__lt=datetime.datetime.now(),\ duedate__gt=datetime.datetime.now(), assignment__semester__members_user=user).all() for milestone in live_review_milestones: current_tasks = user.tasks.filter(milestone=milestone) active_sub = Submission.objects.filter(name=user.username, milestone=milestone.reviewmilestone.submit_milestone) #do not give tasks to students who got extensions or already have tasks for this assignment if (not current_tasks.count()) and active_sub.count(): open_assignments = True total += assign_tasks(milestone, user, tasks_to_assign=2) active_tasks = user.tasks \ .select_related('chunk__file__submission__milestone__assignment') \ .exclude(status='C') \ .exclude(status='U') \ .annotate(comment_count=Count('chunk__comments', distinct=True), reviewer_count=Count('chunk__tasks', distinct=True)) one = active_tasks.all()[0] two = active_tasks.all()[1] response_json = json.dumps({ 'total': total, 'one': {"task_chunk_name": one.chunk.name, \ "task_comment_count": one.comment_count,\ "task_reviewer_count": one.reviewer_count, \ "task_chunk_generate_snippet": one.chunk.generate_snippet(),\ "task_id": one.id,\ "task_chunk_id": one.chunk.id}, 'two': {"task_chunk_name": two.chunk.name, \ "task_comment_count": two.comment_count,\ "task_reviewer_count": two.reviewer_count, \ "task_chunk_generate_snippet": two.chunk.generate_snippet(),\ "task_id": two.id,\ "task_chunk_id": two.chunk.id}, }) return HttpResponse(response_json, mimetype='application/javascript') return render(request, 'accounts/manage.html', { })
m.save() semester.members.add(member) semester.save() submission = Submission(milestone=submit_milestone,name="submission_"+m.username) submission.pk = None # submission.milestone_id = submit_milestone.id submission.save() submission.authors.add(m) submission.save() # create 8 files that each have 1 chunk for i in range(8): file = file_to_copy file.pk = None file.submission = submission file.chunks = [] file.path = file.path + str(m.id) + "_" + str(i) file.submission_id = submission.id file.save() chunk = chunk_to_copy chunk.pk = None chunk.name = "chunk_"+m.username+str(i) chunk.file = file chunk.save() file.chunks.add(chunk) file.save() for r in semester_members: rr.assign_tasks(review_milestone, r, tasks_to_assign=None, simulate=False) # delete everything we created in our test # subject.delete()