Fix context

This commit is contained in:
Christian Cueni 2024-07-24 11:37:03 +02:00
parent c1e1f38a27
commit 58908bc5c6
3 changed files with 29 additions and 30 deletions

View File

@ -1,5 +1,5 @@
import math import math
from typing import List from typing import List, Tuple
import graphene import graphene
@ -148,7 +148,7 @@ def create_record(
user_selection_ids: List[str] | None, user_selection_ids: List[str] | None,
urql_id_postfix: str = "", urql_id_postfix: str = "",
context=None, context=None,
) -> AssignmentStatisticsRecordType: ) -> Tuple[AssignmentStatisticsRecordType, dict]:
if not context: if not context:
context = {} context = {}
@ -172,7 +172,8 @@ def create_record(
learning_content = course_session_assignment.learning_content learning_content = course_session_assignment.learning_content
return AssignmentStatisticsRecordType( return (
AssignmentStatisticsRecordType(
# make sure it's unique, across all types of assignments! # make sure it's unique, across all types of assignments!
_id=f"{course_session_assignment._meta.model_name}#{course_session_assignment.id}@{urql_id_postfix}", _id=f"{course_session_assignment._meta.model_name}#{course_session_assignment.id}@{urql_id_postfix}",
# noqa # noqa
@ -192,6 +193,8 @@ def create_record(
), ),
details_url=due_date.url_expert, # noqa details_url=due_date.url_expert, # noqa
deadline=due_date.start, # noqa deadline=due_date.start, # noqa
),
context,
) )
@ -204,7 +207,6 @@ def assignments(
) -> AssignmentsStatisticsType: ) -> AssignmentsStatisticsType:
if urql_id is None: if urql_id is None:
urql_id = str(course_id) urql_id = str(course_id)
course_sessions = CourseSession.objects.filter( course_sessions = CourseSession.objects.filter(
id__in=course_session_selection_ids, id__in=course_session_selection_ids,
) )
@ -215,13 +217,13 @@ def assignments(
csets = query_competence_course_session_edoniq_tests(course_sessions, circle_ids) csets = query_competence_course_session_edoniq_tests(course_sessions, circle_ids)
for csa in csas: for csa in csas:
record = create_record( record, context = create_record(
csa, user_selection_ids, urql_id_postfix=urql_id, context=context csa, user_selection_ids, urql_id_postfix=urql_id, context=context
) )
records.append(record) records.append(record)
for cset in csets: for cset in csets:
record = create_record( record, context = create_record(
cset, user_selection_ids, urql_id_postfix=urql_id, context=context cset, user_selection_ids, urql_id_postfix=urql_id, context=context
) )
records.append(record) records.append(record)

View File

@ -1,13 +1,10 @@
from typing import List, Tuple from typing import List, Tuple
import graphene import graphene
import structlog
from wagtail.models import Page from wagtail.models import Page
from vbv_lernwelt.course.models import CourseCompletion, CourseCompletionStatus from vbv_lernwelt.course.models import CourseCompletion, CourseCompletionStatus
logger = structlog.get_logger(__name__)
class CompetencePerformanceStatisticsSummaryType(graphene.ObjectType): class CompetencePerformanceStatisticsSummaryType(graphene.ObjectType):
_id = graphene.ID(required=True) _id = graphene.ID(required=True)

View File

@ -311,8 +311,8 @@ def get_dashboard_due_dates(request):
# Fetch future due dates in a single query using Q objects for complex filtering # Fetch future due dates in a single query using Q objects for complex filtering
future_due_dates = DueDate.objects.filter( future_due_dates = DueDate.objects.filter(
Q(course_session_id__in=course_session_ids), Q(course_session_id__in=course_session_ids),
Q(end__gte=today) | Q(start__gte=today) Q(end__gte=today) | Q(start__gte=today),
).select_related('course_session') ).select_related("course_session")
result_due_dates = [] result_due_dates = []
course_session_map = {cs.id: cs for cs in course_sessions} course_session_map = {cs.id: cs for cs in course_sessions}