from vbv_lernwelt.assignment.models import AssignmentType from vbv_lernwelt.course_session.models import ( CourseSessionAssignment, CourseSessionEdoniqTest, ) def query_competence_course_session_assignments(course_session_ids, circle_ids=None): if circle_ids is None: circle_ids = [] result = [] for csa in CourseSessionAssignment.objects.filter( course_session_id__in=course_session_ids, learning_content__content_assignment__assignment_type__in=[ AssignmentType.CASEWORK.value, ], learning_content__content_assignment__competence_certificate__isnull=False, ).select_related( "submission_deadline", "learning_content", "course_session", "learning_content__content_assignment", ): if circle_ids and csa.learning_content.get_circle().id not in circle_ids: continue result.append(csa) return result def query_competence_course_session_edoniq_tests(course_session_ids, circle_ids=None): if circle_ids is None: circle_ids = [] result = [] for cset in CourseSessionEdoniqTest.objects.filter( course_session_id__in=course_session_ids, learning_content__content_assignment__competence_certificate__isnull=False, ).select_related( "deadline", "learning_content", "course_session", "learning_content__content_assignment", ): if circle_ids and cset.learning_content.get_circle().id not in circle_ids: continue result.append(cset) return result