Пример #1
0
    def process_complete_tasks(self, student, complete_task_ids,
                               completed_date):
        """Add coursework for any tasks that do not have it."""
        has_work_to_grade = False
        existing_complete_task_ids = set(
            Coursework.objects.filter(
                student=student,
                course_task__in=complete_task_ids).values_list(
                    "course_task_id", flat=True))
        newly_complete_task_ids = set(
            complete_task_ids) - existing_complete_task_ids
        if newly_complete_task_ids:
            new_coursework = []
            for task_id in newly_complete_task_ids:
                new_coursework.append(
                    Coursework(
                        student=student,
                        course_task_id=task_id,
                        completed_date=completed_date,
                    ))
            Coursework.objects.bulk_create(new_coursework)

            graded_work_ids = set(
                GradedWork.objects.filter(
                    course_task__in=newly_complete_task_ids).values_list(
                        "id", flat=True))
            already_graded_work_ids = set(
                Grade.objects.filter(
                    student=student,
                    graded_work__in=graded_work_ids).values_list(
                        "graded_work_id", flat=True))
            has_work_to_grade = bool(graded_work_ids - already_graded_work_ids)

        return has_work_to_grade
Пример #2
0
 def process_complete_tasks(self, student, complete_task_ids,
                            completed_date):
     """Add coursework for any tasks that do not have it."""
     existing_complete_task_ids = set(
         Coursework.objects.filter(
             student=student,
             course_task__in=complete_task_ids).values_list(
                 "course_task_id", flat=True))
     newly_complete_task_ids = set(
         complete_task_ids) - existing_complete_task_ids
     if newly_complete_task_ids:
         new_coursework = []
         for task_id in newly_complete_task_ids:
             new_coursework.append(
                 Coursework(
                     student=student,
                     course_task_id=task_id,
                     completed_date=completed_date,
                 ))
         Coursework.objects.bulk_create(new_coursework)
Пример #3
0
    def process_complete_tasks(self, student, complete_task_ids, completed_date):
        """Add coursework for any tasks that do not have it."""
        has_work_to_grade = False
        existing_complete_task_ids = set(
            Coursework.objects.filter(
                student=student, course_task__in=complete_task_ids
            ).values_list("course_task_id", flat=True)
        )
        newly_complete_task_ids = set(complete_task_ids) - existing_complete_task_ids
        if newly_complete_task_ids:
            new_coursework = []
            for task_id in newly_complete_task_ids:
                new_coursework.append(
                    Coursework(
                        student=student,
                        course_task_id=task_id,
                        completed_date=completed_date,
                    )
                )
            Coursework.objects.bulk_create(new_coursework)

            pluralized = pluralize(len(newly_complete_task_ids))
            message = "Completed {} task{} for {}.".format(
                len(newly_complete_task_ids), pluralized, student.full_name
            )
            messages.add_message(self.request, messages.SUCCESS, message)

            graded_work_ids = set(
                GradedWork.objects.filter(
                    course_task__in=newly_complete_task_ids
                ).values_list("id", flat=True)
            )
            already_graded_work_ids = set(
                Grade.objects.filter(
                    student=student, graded_work__in=graded_work_ids
                ).values_list("graded_work_id", flat=True)
            )
            has_work_to_grade = bool(graded_work_ids - already_graded_work_ids)

        return has_work_to_grade