Add result data for edoniq test
This commit is contained in:
parent
428ac294e0
commit
4bc1ca636c
|
|
@ -566,6 +566,7 @@ export type Query = {
|
|||
__typename?: 'Query';
|
||||
assignment?: Maybe<AssignmentObjectType>;
|
||||
assignment_completion?: Maybe<AssignmentCompletionObjectType>;
|
||||
assignment_completions?: Maybe<Array<Maybe<AssignmentCompletionObjectType>>>;
|
||||
circle?: Maybe<CircleObjectType>;
|
||||
competence_certificate?: Maybe<CompetenceCertificateObjectType>;
|
||||
competence_certificate_list?: Maybe<CompetenceCertificateListObjectType>;
|
||||
|
|
@ -599,6 +600,13 @@ export type QueryAssignmentCompletionArgs = {
|
|||
};
|
||||
|
||||
|
||||
export type QueryAssignmentCompletionsArgs = {
|
||||
assignment_ids: Array<InputMaybe<Scalars['ID']['input']>>;
|
||||
assignment_user_id?: InputMaybe<Scalars['UUID']['input']>;
|
||||
course_session_id: Scalars['ID']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type QueryCircleArgs = {
|
||||
id?: InputMaybe<Scalars['ID']['input']>;
|
||||
slug?: InputMaybe<Scalars['String']['input']>;
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ type Query {
|
|||
competence_certificate_list(id: ID, slug: String, course_id: ID, course_slug: String): CompetenceCertificateListObjectType
|
||||
assignment(id: ID, slug: String): AssignmentObjectType
|
||||
assignment_completion(assignment_id: ID!, course_session_id: ID!, learning_content_page_id: ID, assignment_user_id: UUID): AssignmentCompletionObjectType
|
||||
assignment_completions(assignment_ids: [ID]!, course_session_id: ID!, assignment_user_id: UUID): [AssignmentCompletionObjectType]
|
||||
}
|
||||
|
||||
type LearningPathObjectType implements CoursePageInterface {
|
||||
|
|
|
|||
|
|
@ -58,3 +58,33 @@ class AssignmentQuery(object):
|
|||
course_session_id=course_session_id,
|
||||
).first()
|
||||
raise PermissionDenied()
|
||||
|
||||
assignment_completions = graphene.List(
|
||||
AssignmentCompletionObjectType,
|
||||
assignment_ids=graphene.List(graphene.ID, required=True),
|
||||
course_session_id=graphene.ID(required=True),
|
||||
assignment_user_id=graphene.UUID(required=False),
|
||||
)
|
||||
|
||||
def resolve_assignment_completions(
|
||||
root,
|
||||
info,
|
||||
assignment_ids,
|
||||
course_session_id,
|
||||
assignment_user_id=None,
|
||||
**kwargs,
|
||||
):
|
||||
if assignment_user_id is None:
|
||||
assignment_user_id = info.context.user.id
|
||||
|
||||
if str(assignment_user_id) == str(
|
||||
info.context.user.id
|
||||
) or is_course_session_expert(info.context.user, course_session_id):
|
||||
course_id = CourseSession.objects.get(id=course_session_id).course_id
|
||||
if has_course_access(info.context.user, course_id):
|
||||
return AssignmentCompletion.objects.filter(
|
||||
assignment_user_id=assignment_user_id,
|
||||
assignment_id__in=assignment_ids,
|
||||
course_session_id=course_session_id,
|
||||
)
|
||||
raise PermissionDenied()
|
||||
|
|
|
|||
|
|
@ -9,7 +9,8 @@ from vbv_lernwelt.core.constants import (
|
|||
from vbv_lernwelt.core.models import User
|
||||
from vbv_lernwelt.course.creators.test_course import (
|
||||
create_test_assignment_submitted_data,
|
||||
create_test_assignment_evaulation_data,
|
||||
create_test_assignment_evaluation_data,
|
||||
create_edoniq_test_result_data,
|
||||
)
|
||||
from vbv_lernwelt.course.models import CourseCompletion, CourseSession
|
||||
from vbv_lernwelt.notify.models import Notification
|
||||
|
|
@ -26,7 +27,16 @@ from vbv_lernwelt.notify.models import Notification
|
|||
default=False,
|
||||
help="will create assignment evaluation data for test-student1@example.com",
|
||||
)
|
||||
def command(create_assignment_completion, create_assignment_evaluation):
|
||||
@click.option(
|
||||
"--create-edoniq-test-results/--no-create-edoniq-test-results",
|
||||
default=False,
|
||||
help="will create edoniq result data for test-student1@example.com",
|
||||
)
|
||||
def command(
|
||||
create_assignment_completion,
|
||||
create_assignment_evaluation,
|
||||
create_edoniq_test_results,
|
||||
):
|
||||
print("cypress reset data")
|
||||
CourseCompletion.objects.all().delete()
|
||||
Notification.objects.all().delete()
|
||||
|
|
@ -45,7 +55,7 @@ def command(create_assignment_completion, create_assignment_evaluation):
|
|||
)
|
||||
if create_assignment_evaluation:
|
||||
print("create assignment evaulation data for test course")
|
||||
create_test_assignment_evaulation_data(
|
||||
create_test_assignment_evaluation_data(
|
||||
assignment=Assignment.objects.get(
|
||||
slug="test-lehrgang-assignment-überprüfen-einer-motorfahrzeugs-versicherungspolice"
|
||||
),
|
||||
|
|
@ -53,3 +63,13 @@ def command(create_assignment_completion, create_assignment_evaluation):
|
|||
assignment_user=User.objects.get(id=TEST_STUDENT1_USER_ID),
|
||||
evaluation_user=User.objects.get(id=TEST_TRAINER1_USER_ID),
|
||||
)
|
||||
|
||||
if create_edoniq_test_results:
|
||||
print("create edoniq test results")
|
||||
create_edoniq_test_result_data(
|
||||
assignment=Assignment.objects.get(
|
||||
slug="test-lehrgang-assignment-edoniq-wissens-und-verständisfragen-circle-fahrzeug-demo"
|
||||
),
|
||||
course_session=CourseSession.objects.get(id=TEST_COURSE_SESSION_BERN_ID),
|
||||
assignment_user=User.objects.get(id=TEST_STUDENT1_USER_ID),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -229,7 +229,7 @@ def create_test_assignment_submitted_data(assignment, course_session, user):
|
|||
)
|
||||
|
||||
|
||||
def create_test_assignment_evaulation_data(
|
||||
def create_test_assignment_evaluation_data(
|
||||
assignment, course_session, assignment_user, evaluation_user
|
||||
):
|
||||
if assignment and course_session and assignment_user and evaluation_user:
|
||||
|
|
@ -237,13 +237,13 @@ def create_test_assignment_evaulation_data(
|
|||
evaluation_points = 0
|
||||
|
||||
for index, evaluation_task in enumerate(subtasks):
|
||||
evaluation_points += 2
|
||||
evaluation_points += evaluation_task["value"]["max_points"]
|
||||
|
||||
update_assignment_completion(
|
||||
assignment_user=assignment_user,
|
||||
assignment=assignment,
|
||||
course_session=course_session,
|
||||
learning_content_page=assignment.learningcontentassignment_set.first(),
|
||||
learning_content_page=assignment.find_attached_learning_content(),
|
||||
completion_data={
|
||||
evaluation_task["id"]: {
|
||||
"expert_data": {
|
||||
|
|
@ -260,7 +260,7 @@ def create_test_assignment_evaulation_data(
|
|||
assignment_user=assignment_user,
|
||||
assignment=assignment,
|
||||
course_session=course_session,
|
||||
learning_content_page=assignment.learningcontentassignment_set.first(),
|
||||
learning_content_page=assignment.find_attached_learning_content(),
|
||||
completion_data={},
|
||||
completion_status=AssignmentCompletionStatus.EVALUATION_SUBMITTED,
|
||||
evaluation_user=evaluation_user,
|
||||
|
|
@ -269,6 +269,23 @@ def create_test_assignment_evaulation_data(
|
|||
)
|
||||
|
||||
|
||||
def create_edoniq_test_result_data(
|
||||
assignment, course_session, assignment_user, points=24
|
||||
):
|
||||
if assignment and course_session and assignment_user:
|
||||
update_assignment_completion(
|
||||
assignment_user=assignment_user,
|
||||
assignment=assignment,
|
||||
course_session=course_session,
|
||||
learning_content_page=assignment.find_attached_learning_content(),
|
||||
completion_data={},
|
||||
completion_status=AssignmentCompletionStatus.EVALUATION_SUBMITTED,
|
||||
evaluation_user=User.objects.get(username="admin"),
|
||||
evaluation_grade=6,
|
||||
evaluation_points=points,
|
||||
)
|
||||
|
||||
|
||||
def create_test_course_with_categories(apps=None, schema_editor=None):
|
||||
if apps is not None:
|
||||
Course = apps.get_model("course", "Course")
|
||||
|
|
|
|||
Loading…
Reference in New Issue