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,26 +172,29 @@ def create_record(
learning_content = course_session_assignment.learning_content learning_content = course_session_assignment.learning_content
return AssignmentStatisticsRecordType( return (
# make sure it's unique, across all types of assignments! AssignmentStatisticsRecordType(
_id=f"{course_session_assignment._meta.model_name}#{course_session_assignment.id}@{urql_id_postfix}", # make sure it's unique, across all types of assignments!
# noqa _id=f"{course_session_assignment._meta.model_name}#{course_session_assignment.id}@{urql_id_postfix}",
course_session_id=str(course_session_assignment.course_session.id), # noqa # noqa
circle_id=circle_id, # noqa course_session_id=str(course_session_assignment.course_session.id), # noqa
course_session_assignment_id=str(course_session_assignment.id), # noqa circle_id=circle_id, # noqa
generation=course_session_assignment.course_session.generation, # noqa course_session_assignment_id=str(course_session_assignment.id), # noqa
assignment_type_translation_key=due_date.assignment_type_translation_key, generation=course_session_assignment.course_session.generation, # noqa
# noqa assignment_type_translation_key=due_date.assignment_type_translation_key,
assignment_title=learning_content.content_assignment.title, # noqa # noqa
metrics=get_assignment_completion_metrics( # noqa assignment_title=learning_content.content_assignment.title, # noqa
course_session=course_session_assignment.course_session, # noqa metrics=get_assignment_completion_metrics( # noqa
assignment=learning_content.content_assignment, # noqa course_session=course_session_assignment.course_session, # noqa
user_selection_ids=user_selection_ids, # noqa assignment=learning_content.content_assignment, # noqa
urql_id_postfix=urql_id_postfix, # noqa user_selection_ids=user_selection_ids, # noqa
context=context, # noqa urql_id_postfix=urql_id_postfix, # noqa
context=context, # noqa
),
details_url=due_date.url_expert, # noqa
deadline=due_date.start, # noqa
), ),
details_url=due_date.url_expert, # noqa context,
deadline=due_date.start, # noqa
) )
@ -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}
@ -608,7 +608,7 @@ def _get_course_sessions_with_roles_for_user(
csr csr
for csr in get_course_sessions_with_roles_for_user(user) for csr in get_course_sessions_with_roles_for_user(user)
if any(role in allowed_roles for role in csr.roles) if any(role in allowed_roles for role in csr.roles)
and csr.id in requested_cs_ids and csr.id in requested_cs_ids
] # noqa ] # noqa
return all_cs_roles_for_user return all_cs_roles_for_user