Add result data for edoniq test
This commit is contained in:
parent
428ac294e0
commit
4bc1ca636c
|
|
@ -566,6 +566,7 @@ export type Query = {
|
||||||
__typename?: 'Query';
|
__typename?: 'Query';
|
||||||
assignment?: Maybe<AssignmentObjectType>;
|
assignment?: Maybe<AssignmentObjectType>;
|
||||||
assignment_completion?: Maybe<AssignmentCompletionObjectType>;
|
assignment_completion?: Maybe<AssignmentCompletionObjectType>;
|
||||||
|
assignment_completions?: Maybe<Array<Maybe<AssignmentCompletionObjectType>>>;
|
||||||
circle?: Maybe<CircleObjectType>;
|
circle?: Maybe<CircleObjectType>;
|
||||||
competence_certificate?: Maybe<CompetenceCertificateObjectType>;
|
competence_certificate?: Maybe<CompetenceCertificateObjectType>;
|
||||||
competence_certificate_list?: Maybe<CompetenceCertificateListObjectType>;
|
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 = {
|
export type QueryCircleArgs = {
|
||||||
id?: InputMaybe<Scalars['ID']['input']>;
|
id?: InputMaybe<Scalars['ID']['input']>;
|
||||||
slug?: InputMaybe<Scalars['String']['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
|
competence_certificate_list(id: ID, slug: String, course_id: ID, course_slug: String): CompetenceCertificateListObjectType
|
||||||
assignment(id: ID, slug: String): AssignmentObjectType
|
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_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 {
|
type LearningPathObjectType implements CoursePageInterface {
|
||||||
|
|
|
||||||
|
|
@ -58,3 +58,33 @@ class AssignmentQuery(object):
|
||||||
course_session_id=course_session_id,
|
course_session_id=course_session_id,
|
||||||
).first()
|
).first()
|
||||||
raise PermissionDenied()
|
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.core.models import User
|
||||||
from vbv_lernwelt.course.creators.test_course import (
|
from vbv_lernwelt.course.creators.test_course import (
|
||||||
create_test_assignment_submitted_data,
|
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.course.models import CourseCompletion, CourseSession
|
||||||
from vbv_lernwelt.notify.models import Notification
|
from vbv_lernwelt.notify.models import Notification
|
||||||
|
|
@ -26,7 +27,16 @@ from vbv_lernwelt.notify.models import Notification
|
||||||
default=False,
|
default=False,
|
||||||
help="will create assignment evaluation data for test-student1@example.com",
|
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")
|
print("cypress reset data")
|
||||||
CourseCompletion.objects.all().delete()
|
CourseCompletion.objects.all().delete()
|
||||||
Notification.objects.all().delete()
|
Notification.objects.all().delete()
|
||||||
|
|
@ -45,7 +55,7 @@ def command(create_assignment_completion, create_assignment_evaluation):
|
||||||
)
|
)
|
||||||
if create_assignment_evaluation:
|
if create_assignment_evaluation:
|
||||||
print("create assignment evaulation data for test course")
|
print("create assignment evaulation data for test course")
|
||||||
create_test_assignment_evaulation_data(
|
create_test_assignment_evaluation_data(
|
||||||
assignment=Assignment.objects.get(
|
assignment=Assignment.objects.get(
|
||||||
slug="test-lehrgang-assignment-überprüfen-einer-motorfahrzeugs-versicherungspolice"
|
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),
|
assignment_user=User.objects.get(id=TEST_STUDENT1_USER_ID),
|
||||||
evaluation_user=User.objects.get(id=TEST_TRAINER1_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
|
assignment, course_session, assignment_user, evaluation_user
|
||||||
):
|
):
|
||||||
if assignment and course_session and assignment_user and 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
|
evaluation_points = 0
|
||||||
|
|
||||||
for index, evaluation_task in enumerate(subtasks):
|
for index, evaluation_task in enumerate(subtasks):
|
||||||
evaluation_points += 2
|
evaluation_points += evaluation_task["value"]["max_points"]
|
||||||
|
|
||||||
update_assignment_completion(
|
update_assignment_completion(
|
||||||
assignment_user=assignment_user,
|
assignment_user=assignment_user,
|
||||||
assignment=assignment,
|
assignment=assignment,
|
||||||
course_session=course_session,
|
course_session=course_session,
|
||||||
learning_content_page=assignment.learningcontentassignment_set.first(),
|
learning_content_page=assignment.find_attached_learning_content(),
|
||||||
completion_data={
|
completion_data={
|
||||||
evaluation_task["id"]: {
|
evaluation_task["id"]: {
|
||||||
"expert_data": {
|
"expert_data": {
|
||||||
|
|
@ -260,7 +260,7 @@ def create_test_assignment_evaulation_data(
|
||||||
assignment_user=assignment_user,
|
assignment_user=assignment_user,
|
||||||
assignment=assignment,
|
assignment=assignment,
|
||||||
course_session=course_session,
|
course_session=course_session,
|
||||||
learning_content_page=assignment.learningcontentassignment_set.first(),
|
learning_content_page=assignment.find_attached_learning_content(),
|
||||||
completion_data={},
|
completion_data={},
|
||||||
completion_status=AssignmentCompletionStatus.EVALUATION_SUBMITTED,
|
completion_status=AssignmentCompletionStatus.EVALUATION_SUBMITTED,
|
||||||
evaluation_user=evaluation_user,
|
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):
|
def create_test_course_with_categories(apps=None, schema_editor=None):
|
||||||
if apps is not None:
|
if apps is not None:
|
||||||
Course = apps.get_model("course", "Course")
|
Course = apps.get_model("course", "Course")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue