55 lines
1.6 KiB
Python
55 lines
1.6 KiB
Python
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,
|
|
learning_content__live=True,
|
|
).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,
|
|
learning_content__live=True,
|
|
).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
|