Remove `evaluation_grade` and set `evaluation_points` and `evaluation_passed` fields

This commit is contained in:
Daniel Egger 2023-09-28 11:20:51 +02:00
parent 884fc8d5b0
commit 589453a8dc
25 changed files with 469 additions and 87 deletions

View File

@ -14,10 +14,10 @@ import type { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-
*/
const documents = {
"\n mutation AttendanceCheckMutation(\n $attendanceCourseId: ID!\n $attendanceUserList: [AttendanceUserInputType]!\n ) {\n update_course_session_attendance_course_users(\n id: $attendanceCourseId\n attendance_user_list: $attendanceUserList\n ) {\n course_session_attendance_course {\n id\n attendance_user_list {\n user_id\n first_name\n last_name\n email\n status\n }\n }\n }\n }\n": types.AttendanceCheckMutationDocument,
"\n mutation UpsertAssignmentCompletion(\n $assignmentId: ID!\n $courseSessionId: ID!\n $learningContentId: ID\n $assignmentUserId: UUID\n $completionStatus: AssignmentCompletionStatus!\n $completionDataString: String!\n $evaluationGrade: Float\n $evaluationPoints: Float\n $initializeCompletion: Boolean\n ) {\n upsert_assignment_completion(\n assignment_id: $assignmentId\n course_session_id: $courseSessionId\n learning_content_page_id: $learningContentId\n assignment_user_id: $assignmentUserId\n completion_status: $completionStatus\n completion_data_string: $completionDataString\n evaluation_grade: $evaluationGrade\n evaluation_points: $evaluationPoints\n initialize_completion: $initializeCompletion\n ) {\n assignment_completion {\n id\n completion_status\n submitted_at\n evaluation_submitted_at\n evaluation_grade\n evaluation_points\n completion_data\n }\n }\n }\n": types.UpsertAssignmentCompletionDocument,
"\n mutation UpsertAssignmentCompletion(\n $assignmentId: ID!\n $courseSessionId: ID!\n $learningContentId: ID\n $assignmentUserId: UUID\n $completionStatus: AssignmentCompletionStatus!\n $completionDataString: String!\n $evaluationPoints: Float\n $initializeCompletion: Boolean\n ) {\n upsert_assignment_completion(\n assignment_id: $assignmentId\n course_session_id: $courseSessionId\n learning_content_page_id: $learningContentId\n assignment_user_id: $assignmentUserId\n completion_status: $completionStatus\n completion_data_string: $completionDataString\n evaluation_points: $evaluationPoints\n initialize_completion: $initializeCompletion\n ) {\n assignment_completion {\n id\n completion_status\n submitted_at\n evaluation_submitted_at\n evaluation_points\n completion_data\n }\n }\n }\n": types.UpsertAssignmentCompletionDocument,
"\n fragment CoursePageFields on CoursePageInterface {\n title\n id\n slug\n content_type\n frontend_url\n }\n": types.CoursePageFieldsFragmentDoc,
"\n query attendanceCheckQuery($courseSessionId: ID!) {\n course_session_attendance_course(id: $courseSessionId) {\n id\n attendance_user_list {\n user_id\n status\n }\n }\n }\n": types.AttendanceCheckQueryDocument,
"\n query assignmentCompletionQuery(\n $assignmentId: ID!\n $courseSessionId: ID!\n $learningContentId: ID\n $assignmentUserId: UUID\n ) {\n assignment(id: $assignmentId) {\n assignment_type\n max_points\n content_type\n effort_required\n evaluation_description\n evaluation_document_url\n evaluation_tasks\n id\n intro_text\n performance_objectives\n slug\n tasks\n title\n translation_key\n competence_certificate {\n ...CoursePageFields\n }\n }\n assignment_completion(\n assignment_id: $assignmentId\n course_session_id: $courseSessionId\n assignment_user_id: $assignmentUserId\n learning_content_page_id: $learningContentId\n ) {\n id\n completion_status\n submitted_at\n evaluation_submitted_at\n evaluation_user {\n id\n }\n assignment_user {\n id\n }\n evaluation_grade\n evaluation_points\n completion_data\n }\n }\n": types.AssignmentCompletionQueryDocument,
"\n query assignmentCompletionQuery(\n $assignmentId: ID!\n $courseSessionId: ID!\n $learningContentId: ID\n $assignmentUserId: UUID\n ) {\n assignment(id: $assignmentId) {\n assignment_type\n max_points\n content_type\n effort_required\n evaluation_description\n evaluation_document_url\n evaluation_tasks\n id\n intro_text\n performance_objectives\n slug\n tasks\n title\n translation_key\n competence_certificate {\n ...CoursePageFields\n }\n }\n assignment_completion(\n assignment_id: $assignmentId\n course_session_id: $courseSessionId\n assignment_user_id: $assignmentUserId\n learning_content_page_id: $learningContentId\n ) {\n id\n completion_status\n submitted_at\n evaluation_submitted_at\n evaluation_user {\n id\n }\n assignment_user {\n id\n }\n evaluation_points\n evaluation_max_points\n evaluation_passed\n completion_data\n }\n }\n": types.AssignmentCompletionQueryDocument,
"\n query courseQuery($courseId: Int!) {\n course(id: $courseId) {\n id\n slug\n title\n category_name\n learning_path {\n id\n }\n }\n }\n": types.CourseQueryDocument,
"\n query competenceCertificateQuery($courseSlug: String!, $courseSessionId: ID!) {\n competence_certificate_list(course_slug: $courseSlug) {\n ...CoursePageFields\n competence_certificates {\n ...CoursePageFields\n assignments {\n ...CoursePageFields\n assignment_type\n max_points\n completion(course_session_id: $courseSessionId) {\n id\n completion_status\n submitted_at\n evaluation_points\n }\n learning_content {\n title\n id\n slug\n content_type\n frontend_url\n circle {\n ...CoursePageFields\n }\n }\n }\n }\n }\n }\n": types.CompetenceCertificateQueryDocument,
"\n mutation SendFeedbackMutation(\n $courseSessionId: ID!\n $learningContentId: ID!\n $data: GenericScalar!\n $submitted: Boolean\n ) {\n send_feedback(\n course_session_id: $courseSessionId\n learning_content_page_id: $learningContentId\n data: $data\n submitted: $submitted\n ) {\n feedback_response {\n id\n data\n submitted\n }\n errors {\n field\n messages\n }\n }\n }\n": types.SendFeedbackMutationDocument,
@ -44,7 +44,7 @@ export function graphql(source: "\n mutation AttendanceCheckMutation(\n $att
/**
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
*/
export function graphql(source: "\n mutation UpsertAssignmentCompletion(\n $assignmentId: ID!\n $courseSessionId: ID!\n $learningContentId: ID\n $assignmentUserId: UUID\n $completionStatus: AssignmentCompletionStatus!\n $completionDataString: String!\n $evaluationGrade: Float\n $evaluationPoints: Float\n $initializeCompletion: Boolean\n ) {\n upsert_assignment_completion(\n assignment_id: $assignmentId\n course_session_id: $courseSessionId\n learning_content_page_id: $learningContentId\n assignment_user_id: $assignmentUserId\n completion_status: $completionStatus\n completion_data_string: $completionDataString\n evaluation_grade: $evaluationGrade\n evaluation_points: $evaluationPoints\n initialize_completion: $initializeCompletion\n ) {\n assignment_completion {\n id\n completion_status\n submitted_at\n evaluation_submitted_at\n evaluation_grade\n evaluation_points\n completion_data\n }\n }\n }\n"): (typeof documents)["\n mutation UpsertAssignmentCompletion(\n $assignmentId: ID!\n $courseSessionId: ID!\n $learningContentId: ID\n $assignmentUserId: UUID\n $completionStatus: AssignmentCompletionStatus!\n $completionDataString: String!\n $evaluationGrade: Float\n $evaluationPoints: Float\n $initializeCompletion: Boolean\n ) {\n upsert_assignment_completion(\n assignment_id: $assignmentId\n course_session_id: $courseSessionId\n learning_content_page_id: $learningContentId\n assignment_user_id: $assignmentUserId\n completion_status: $completionStatus\n completion_data_string: $completionDataString\n evaluation_grade: $evaluationGrade\n evaluation_points: $evaluationPoints\n initialize_completion: $initializeCompletion\n ) {\n assignment_completion {\n id\n completion_status\n submitted_at\n evaluation_submitted_at\n evaluation_grade\n evaluation_points\n completion_data\n }\n }\n }\n"];
export function graphql(source: "\n mutation UpsertAssignmentCompletion(\n $assignmentId: ID!\n $courseSessionId: ID!\n $learningContentId: ID\n $assignmentUserId: UUID\n $completionStatus: AssignmentCompletionStatus!\n $completionDataString: String!\n $evaluationPoints: Float\n $initializeCompletion: Boolean\n ) {\n upsert_assignment_completion(\n assignment_id: $assignmentId\n course_session_id: $courseSessionId\n learning_content_page_id: $learningContentId\n assignment_user_id: $assignmentUserId\n completion_status: $completionStatus\n completion_data_string: $completionDataString\n evaluation_points: $evaluationPoints\n initialize_completion: $initializeCompletion\n ) {\n assignment_completion {\n id\n completion_status\n submitted_at\n evaluation_submitted_at\n evaluation_points\n completion_data\n }\n }\n }\n"): (typeof documents)["\n mutation UpsertAssignmentCompletion(\n $assignmentId: ID!\n $courseSessionId: ID!\n $learningContentId: ID\n $assignmentUserId: UUID\n $completionStatus: AssignmentCompletionStatus!\n $completionDataString: String!\n $evaluationPoints: Float\n $initializeCompletion: Boolean\n ) {\n upsert_assignment_completion(\n assignment_id: $assignmentId\n course_session_id: $courseSessionId\n learning_content_page_id: $learningContentId\n assignment_user_id: $assignmentUserId\n completion_status: $completionStatus\n completion_data_string: $completionDataString\n evaluation_points: $evaluationPoints\n initialize_completion: $initializeCompletion\n ) {\n assignment_completion {\n id\n completion_status\n submitted_at\n evaluation_submitted_at\n evaluation_points\n completion_data\n }\n }\n }\n"];
/**
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
*/
@ -56,7 +56,7 @@ export function graphql(source: "\n query attendanceCheckQuery($courseSessionId
/**
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
*/
export function graphql(source: "\n query assignmentCompletionQuery(\n $assignmentId: ID!\n $courseSessionId: ID!\n $learningContentId: ID\n $assignmentUserId: UUID\n ) {\n assignment(id: $assignmentId) {\n assignment_type\n max_points\n content_type\n effort_required\n evaluation_description\n evaluation_document_url\n evaluation_tasks\n id\n intro_text\n performance_objectives\n slug\n tasks\n title\n translation_key\n competence_certificate {\n ...CoursePageFields\n }\n }\n assignment_completion(\n assignment_id: $assignmentId\n course_session_id: $courseSessionId\n assignment_user_id: $assignmentUserId\n learning_content_page_id: $learningContentId\n ) {\n id\n completion_status\n submitted_at\n evaluation_submitted_at\n evaluation_user {\n id\n }\n assignment_user {\n id\n }\n evaluation_grade\n evaluation_points\n completion_data\n }\n }\n"): (typeof documents)["\n query assignmentCompletionQuery(\n $assignmentId: ID!\n $courseSessionId: ID!\n $learningContentId: ID\n $assignmentUserId: UUID\n ) {\n assignment(id: $assignmentId) {\n assignment_type\n max_points\n content_type\n effort_required\n evaluation_description\n evaluation_document_url\n evaluation_tasks\n id\n intro_text\n performance_objectives\n slug\n tasks\n title\n translation_key\n competence_certificate {\n ...CoursePageFields\n }\n }\n assignment_completion(\n assignment_id: $assignmentId\n course_session_id: $courseSessionId\n assignment_user_id: $assignmentUserId\n learning_content_page_id: $learningContentId\n ) {\n id\n completion_status\n submitted_at\n evaluation_submitted_at\n evaluation_user {\n id\n }\n assignment_user {\n id\n }\n evaluation_grade\n evaluation_points\n completion_data\n }\n }\n"];
export function graphql(source: "\n query assignmentCompletionQuery(\n $assignmentId: ID!\n $courseSessionId: ID!\n $learningContentId: ID\n $assignmentUserId: UUID\n ) {\n assignment(id: $assignmentId) {\n assignment_type\n max_points\n content_type\n effort_required\n evaluation_description\n evaluation_document_url\n evaluation_tasks\n id\n intro_text\n performance_objectives\n slug\n tasks\n title\n translation_key\n competence_certificate {\n ...CoursePageFields\n }\n }\n assignment_completion(\n assignment_id: $assignmentId\n course_session_id: $courseSessionId\n assignment_user_id: $assignmentUserId\n learning_content_page_id: $learningContentId\n ) {\n id\n completion_status\n submitted_at\n evaluation_submitted_at\n evaluation_user {\n id\n }\n assignment_user {\n id\n }\n evaluation_points\n evaluation_max_points\n evaluation_passed\n completion_data\n }\n }\n"): (typeof documents)["\n query assignmentCompletionQuery(\n $assignmentId: ID!\n $courseSessionId: ID!\n $learningContentId: ID\n $assignmentUserId: UUID\n ) {\n assignment(id: $assignmentId) {\n assignment_type\n max_points\n content_type\n effort_required\n evaluation_description\n evaluation_document_url\n evaluation_tasks\n id\n intro_text\n performance_objectives\n slug\n tasks\n title\n translation_key\n competence_certificate {\n ...CoursePageFields\n }\n }\n assignment_completion(\n assignment_id: $assignmentId\n course_session_id: $courseSessionId\n assignment_user_id: $assignmentUserId\n learning_content_page_id: $learningContentId\n ) {\n id\n completion_status\n submitted_at\n evaluation_submitted_at\n evaluation_user {\n id\n }\n assignment_user {\n id\n }\n evaluation_points\n evaluation_max_points\n evaluation_passed\n completion_data\n }\n }\n"];
/**
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
*/

View File

@ -78,7 +78,8 @@ export type AssignmentCompletionObjectType = {
completion_data?: Maybe<Scalars['GenericScalar']['output']>;
completion_status: AssignmentAssignmentCompletionCompletionStatusChoices;
created_at: Scalars['DateTime']['output'];
evaluation_grade?: Maybe<Scalars['Float']['output']>;
evaluation_max_points?: Maybe<Scalars['Float']['output']>;
evaluation_passed?: Maybe<Scalars['Boolean']['output']>;
evaluation_points?: Maybe<Scalars['Float']['output']>;
evaluation_submitted_at?: Maybe<Scalars['DateTime']['output']>;
evaluation_user?: Maybe<UserType>;
@ -561,7 +562,7 @@ export type MutationUpsertAssignmentCompletionArgs = {
completion_data_string?: InputMaybe<Scalars['String']['input']>;
completion_status?: InputMaybe<AssignmentCompletionStatus>;
course_session_id: Scalars['ID']['input'];
evaluation_grade?: InputMaybe<Scalars['Float']['input']>;
evaluation_passed?: InputMaybe<Scalars['Boolean']['input']>;
evaluation_points?: InputMaybe<Scalars['Float']['input']>;
initialize_completion?: InputMaybe<Scalars['Boolean']['input']>;
learning_content_page_id?: InputMaybe<Scalars['ID']['input']>;
@ -691,13 +692,12 @@ export type UpsertAssignmentCompletionMutationVariables = Exact<{
assignmentUserId?: InputMaybe<Scalars['UUID']['input']>;
completionStatus: AssignmentCompletionStatus;
completionDataString: Scalars['String']['input'];
evaluationGrade?: InputMaybe<Scalars['Float']['input']>;
evaluationPoints?: InputMaybe<Scalars['Float']['input']>;
initializeCompletion?: InputMaybe<Scalars['Boolean']['input']>;
}>;
export type UpsertAssignmentCompletionMutation = { __typename?: 'Mutation', upsert_assignment_completion?: { __typename?: 'AssignmentCompletionMutation', assignment_completion?: { __typename?: 'AssignmentCompletionObjectType', id: any, completion_status: AssignmentAssignmentCompletionCompletionStatusChoices, submitted_at?: any | null, evaluation_submitted_at?: any | null, evaluation_grade?: number | null, evaluation_points?: number | null, completion_data?: any | null } | null } | null };
export type UpsertAssignmentCompletionMutation = { __typename?: 'Mutation', upsert_assignment_completion?: { __typename?: 'AssignmentCompletionMutation', assignment_completion?: { __typename?: 'AssignmentCompletionObjectType', id: any, completion_status: AssignmentAssignmentCompletionCompletionStatusChoices, submitted_at?: any | null, evaluation_submitted_at?: any | null, evaluation_points?: number | null, completion_data?: any | null } | null } | null };
type CoursePageFieldsAssignmentObjectTypeFragment = { __typename?: 'AssignmentObjectType', title?: string | null, id?: string | null, slug?: string | null, content_type?: string | null, frontend_url?: string | null } & { ' $fragmentName'?: 'CoursePageFieldsAssignmentObjectTypeFragment' };
@ -735,7 +735,7 @@ export type AssignmentCompletionQueryQueryVariables = Exact<{
export type AssignmentCompletionQueryQuery = { __typename?: 'Query', assignment?: { __typename?: 'AssignmentObjectType', assignment_type: AssignmentAssignmentAssignmentTypeChoices, max_points?: number | null, content_type?: string | null, effort_required: string, evaluation_description: string, evaluation_document_url: string, evaluation_tasks?: any | null, id?: string | null, intro_text: string, performance_objectives?: any | null, slug?: string | null, tasks?: any | null, title?: string | null, translation_key?: string | null, competence_certificate?: (
{ __typename?: 'CompetenceCertificateObjectType' }
& { ' $fragmentRefs'?: { 'CoursePageFieldsCompetenceCertificateObjectTypeFragment': CoursePageFieldsCompetenceCertificateObjectTypeFragment } }
) | null } | null, assignment_completion?: { __typename?: 'AssignmentCompletionObjectType', id: any, completion_status: AssignmentAssignmentCompletionCompletionStatusChoices, submitted_at?: any | null, evaluation_submitted_at?: any | null, evaluation_grade?: number | null, evaluation_points?: number | null, completion_data?: any | null, evaluation_user?: { __typename?: 'UserType', id: any } | null, assignment_user: { __typename?: 'UserType', id: any } } | null };
) | null } | null, assignment_completion?: { __typename?: 'AssignmentCompletionObjectType', id: any, completion_status: AssignmentAssignmentCompletionCompletionStatusChoices, submitted_at?: any | null, evaluation_submitted_at?: any | null, evaluation_points?: number | null, evaluation_max_points?: number | null, evaluation_passed?: boolean | null, completion_data?: any | null, evaluation_user?: { __typename?: 'UserType', id: any } | null, assignment_user: { __typename?: 'UserType', id: any } } | null };
export type CourseQueryQueryVariables = Exact<{
courseId: Scalars['Int']['input'];
@ -803,9 +803,9 @@ export type SendFeedbackMutationMutation = { __typename?: 'Mutation', send_feedb
export const CoursePageFieldsFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"CoursePageFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoursePageInterface"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"slug"}},{"kind":"Field","name":{"kind":"Name","value":"content_type"}},{"kind":"Field","name":{"kind":"Name","value":"frontend_url"}}]}}]} as unknown as DocumentNode<CoursePageFieldsFragment, unknown>;
export const AttendanceCheckMutationDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"AttendanceCheckMutation"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"attendanceCourseId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"attendanceUserList"}},"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NamedType","name":{"kind":"Name","value":"AttendanceUserInputType"}}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"update_course_session_attendance_course_users"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"attendanceCourseId"}}},{"kind":"Argument","name":{"kind":"Name","value":"attendance_user_list"},"value":{"kind":"Variable","name":{"kind":"Name","value":"attendanceUserList"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"course_session_attendance_course"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"attendance_user_list"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"user_id"}},{"kind":"Field","name":{"kind":"Name","value":"first_name"}},{"kind":"Field","name":{"kind":"Name","value":"last_name"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"status"}}]}}]}}]}}]}}]} as unknown as DocumentNode<AttendanceCheckMutationMutation, AttendanceCheckMutationMutationVariables>;
export const UpsertAssignmentCompletionDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpsertAssignmentCompletion"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"assignmentId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"courseSessionId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"learningContentId"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"assignmentUserId"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"completionStatus"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"AssignmentCompletionStatus"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"completionDataString"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"evaluationGrade"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Float"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"evaluationPoints"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Float"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"initializeCompletion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Boolean"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"upsert_assignment_completion"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"assignment_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"assignmentId"}}},{"kind":"Argument","name":{"kind":"Name","value":"course_session_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"courseSessionId"}}},{"kind":"Argument","name":{"kind":"Name","value":"learning_content_page_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"learningContentId"}}},{"kind":"Argument","name":{"kind":"Name","value":"assignment_user_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"assignmentUserId"}}},{"kind":"Argument","name":{"kind":"Name","value":"completion_status"},"value":{"kind":"Variable","name":{"kind":"Name","value":"completionStatus"}}},{"kind":"Argument","name":{"kind":"Name","value":"completion_data_string"},"value":{"kind":"Variable","name":{"kind":"Name","value":"completionDataString"}}},{"kind":"Argument","name":{"kind":"Name","value":"evaluation_grade"},"value":{"kind":"Variable","name":{"kind":"Name","value":"evaluationGrade"}}},{"kind":"Argument","name":{"kind":"Name","value":"evaluation_points"},"value":{"kind":"Variable","name":{"kind":"Name","value":"evaluationPoints"}}},{"kind":"Argument","name":{"kind":"Name","value":"initialize_completion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"initializeCompletion"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"assignment_completion"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"completion_status"}},{"kind":"Field","name":{"kind":"Name","value":"submitted_at"}},{"kind":"Field","name":{"kind":"Name","value":"evaluation_submitted_at"}},{"kind":"Field","name":{"kind":"Name","value":"evaluation_grade"}},{"kind":"Field","name":{"kind":"Name","value":"evaluation_points"}},{"kind":"Field","name":{"kind":"Name","value":"completion_data"}}]}}]}}]}}]} as unknown as DocumentNode<UpsertAssignmentCompletionMutation, UpsertAssignmentCompletionMutationVariables>;
export const UpsertAssignmentCompletionDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpsertAssignmentCompletion"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"assignmentId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"courseSessionId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"learningContentId"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"assignmentUserId"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"completionStatus"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"AssignmentCompletionStatus"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"completionDataString"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"evaluationPoints"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Float"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"initializeCompletion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Boolean"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"upsert_assignment_completion"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"assignment_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"assignmentId"}}},{"kind":"Argument","name":{"kind":"Name","value":"course_session_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"courseSessionId"}}},{"kind":"Argument","name":{"kind":"Name","value":"learning_content_page_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"learningContentId"}}},{"kind":"Argument","name":{"kind":"Name","value":"assignment_user_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"assignmentUserId"}}},{"kind":"Argument","name":{"kind":"Name","value":"completion_status"},"value":{"kind":"Variable","name":{"kind":"Name","value":"completionStatus"}}},{"kind":"Argument","name":{"kind":"Name","value":"completion_data_string"},"value":{"kind":"Variable","name":{"kind":"Name","value":"completionDataString"}}},{"kind":"Argument","name":{"kind":"Name","value":"evaluation_points"},"value":{"kind":"Variable","name":{"kind":"Name","value":"evaluationPoints"}}},{"kind":"Argument","name":{"kind":"Name","value":"initialize_completion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"initializeCompletion"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"assignment_completion"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"completion_status"}},{"kind":"Field","name":{"kind":"Name","value":"submitted_at"}},{"kind":"Field","name":{"kind":"Name","value":"evaluation_submitted_at"}},{"kind":"Field","name":{"kind":"Name","value":"evaluation_points"}},{"kind":"Field","name":{"kind":"Name","value":"completion_data"}}]}}]}}]}}]} as unknown as DocumentNode<UpsertAssignmentCompletionMutation, UpsertAssignmentCompletionMutationVariables>;
export const AttendanceCheckQueryDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"attendanceCheckQuery"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"courseSessionId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"course_session_attendance_course"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"courseSessionId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"attendance_user_list"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"user_id"}},{"kind":"Field","name":{"kind":"Name","value":"status"}}]}}]}}]}}]} as unknown as DocumentNode<AttendanceCheckQueryQuery, AttendanceCheckQueryQueryVariables>;
export const AssignmentCompletionQueryDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"assignmentCompletionQuery"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"assignmentId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"courseSessionId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"learningContentId"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"assignmentUserId"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"assignment"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"assignmentId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"assignment_type"}},{"kind":"Field","name":{"kind":"Name","value":"max_points"}},{"kind":"Field","name":{"kind":"Name","value":"content_type"}},{"kind":"Field","name":{"kind":"Name","value":"effort_required"}},{"kind":"Field","name":{"kind":"Name","value":"evaluation_description"}},{"kind":"Field","name":{"kind":"Name","value":"evaluation_document_url"}},{"kind":"Field","name":{"kind":"Name","value":"evaluation_tasks"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"intro_text"}},{"kind":"Field","name":{"kind":"Name","value":"performance_objectives"}},{"kind":"Field","name":{"kind":"Name","value":"slug"}},{"kind":"Field","name":{"kind":"Name","value":"tasks"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"translation_key"}},{"kind":"Field","name":{"kind":"Name","value":"competence_certificate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"CoursePageFields"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"assignment_completion"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"assignment_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"assignmentId"}}},{"kind":"Argument","name":{"kind":"Name","value":"course_session_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"courseSessionId"}}},{"kind":"Argument","name":{"kind":"Name","value":"assignment_user_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"assignmentUserId"}}},{"kind":"Argument","name":{"kind":"Name","value":"learning_content_page_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"learningContentId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"completion_status"}},{"kind":"Field","name":{"kind":"Name","value":"submitted_at"}},{"kind":"Field","name":{"kind":"Name","value":"evaluation_submitted_at"}},{"kind":"Field","name":{"kind":"Name","value":"evaluation_user"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"assignment_user"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evaluation_grade"}},{"kind":"Field","name":{"kind":"Name","value":"evaluation_points"}},{"kind":"Field","name":{"kind":"Name","value":"completion_data"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"CoursePageFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoursePageInterface"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"slug"}},{"kind":"Field","name":{"kind":"Name","value":"content_type"}},{"kind":"Field","name":{"kind":"Name","value":"frontend_url"}}]}}]} as unknown as DocumentNode<AssignmentCompletionQueryQuery, AssignmentCompletionQueryQueryVariables>;
export const AssignmentCompletionQueryDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"assignmentCompletionQuery"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"assignmentId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"courseSessionId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"learningContentId"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"assignmentUserId"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"assignment"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"assignmentId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"assignment_type"}},{"kind":"Field","name":{"kind":"Name","value":"max_points"}},{"kind":"Field","name":{"kind":"Name","value":"content_type"}},{"kind":"Field","name":{"kind":"Name","value":"effort_required"}},{"kind":"Field","name":{"kind":"Name","value":"evaluation_description"}},{"kind":"Field","name":{"kind":"Name","value":"evaluation_document_url"}},{"kind":"Field","name":{"kind":"Name","value":"evaluation_tasks"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"intro_text"}},{"kind":"Field","name":{"kind":"Name","value":"performance_objectives"}},{"kind":"Field","name":{"kind":"Name","value":"slug"}},{"kind":"Field","name":{"kind":"Name","value":"tasks"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"translation_key"}},{"kind":"Field","name":{"kind":"Name","value":"competence_certificate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"CoursePageFields"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"assignment_completion"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"assignment_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"assignmentId"}}},{"kind":"Argument","name":{"kind":"Name","value":"course_session_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"courseSessionId"}}},{"kind":"Argument","name":{"kind":"Name","value":"assignment_user_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"assignmentUserId"}}},{"kind":"Argument","name":{"kind":"Name","value":"learning_content_page_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"learningContentId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"completion_status"}},{"kind":"Field","name":{"kind":"Name","value":"submitted_at"}},{"kind":"Field","name":{"kind":"Name","value":"evaluation_submitted_at"}},{"kind":"Field","name":{"kind":"Name","value":"evaluation_user"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"assignment_user"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evaluation_points"}},{"kind":"Field","name":{"kind":"Name","value":"evaluation_max_points"}},{"kind":"Field","name":{"kind":"Name","value":"evaluation_passed"}},{"kind":"Field","name":{"kind":"Name","value":"completion_data"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"CoursePageFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoursePageInterface"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"slug"}},{"kind":"Field","name":{"kind":"Name","value":"content_type"}},{"kind":"Field","name":{"kind":"Name","value":"frontend_url"}}]}}]} as unknown as DocumentNode<AssignmentCompletionQueryQuery, AssignmentCompletionQueryQueryVariables>;
export const CourseQueryDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"courseQuery"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"courseId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"course"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"courseId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"slug"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"category_name"}},{"kind":"Field","name":{"kind":"Name","value":"learning_path"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}}]}}]}}]} as unknown as DocumentNode<CourseQueryQuery, CourseQueryQueryVariables>;
export const CompetenceCertificateQueryDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"competenceCertificateQuery"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"courseSlug"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"courseSessionId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"competence_certificate_list"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"course_slug"},"value":{"kind":"Variable","name":{"kind":"Name","value":"courseSlug"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"CoursePageFields"}},{"kind":"Field","name":{"kind":"Name","value":"competence_certificates"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"CoursePageFields"}},{"kind":"Field","name":{"kind":"Name","value":"assignments"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"CoursePageFields"}},{"kind":"Field","name":{"kind":"Name","value":"assignment_type"}},{"kind":"Field","name":{"kind":"Name","value":"max_points"}},{"kind":"Field","name":{"kind":"Name","value":"completion"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"course_session_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"courseSessionId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"completion_status"}},{"kind":"Field","name":{"kind":"Name","value":"submitted_at"}},{"kind":"Field","name":{"kind":"Name","value":"evaluation_points"}}]}},{"kind":"Field","name":{"kind":"Name","value":"learning_content"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"slug"}},{"kind":"Field","name":{"kind":"Name","value":"content_type"}},{"kind":"Field","name":{"kind":"Name","value":"frontend_url"}},{"kind":"Field","name":{"kind":"Name","value":"circle"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"CoursePageFields"}}]}}]}}]}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"CoursePageFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoursePageInterface"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"slug"}},{"kind":"Field","name":{"kind":"Name","value":"content_type"}},{"kind":"Field","name":{"kind":"Name","value":"frontend_url"}}]}}]} as unknown as DocumentNode<CompetenceCertificateQueryQuery, CompetenceCertificateQueryQueryVariables>;
export const SendFeedbackMutationDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"SendFeedbackMutation"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"courseSessionId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"learningContentId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"data"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"GenericScalar"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"submitted"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Boolean"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"send_feedback"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"course_session_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"courseSessionId"}}},{"kind":"Argument","name":{"kind":"Name","value":"learning_content_page_id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"learningContentId"}}},{"kind":"Argument","name":{"kind":"Name","value":"data"},"value":{"kind":"Variable","name":{"kind":"Name","value":"data"}}},{"kind":"Argument","name":{"kind":"Name","value":"submitted"},"value":{"kind":"Variable","name":{"kind":"Name","value":"submitted"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"feedback_response"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"data"}},{"kind":"Field","name":{"kind":"Name","value":"submitted"}}]}},{"kind":"Field","name":{"kind":"Name","value":"errors"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"field"}},{"kind":"Field","name":{"kind":"Name","value":"messages"}}]}}]}}]}}]} as unknown as DocumentNode<SendFeedbackMutationMutation, SendFeedbackMutationMutationVariables>;

View File

@ -296,8 +296,9 @@ type AssignmentCompletionObjectType {
submitted_at: DateTime
evaluation_submitted_at: DateTime
evaluation_user: UserType
evaluation_grade: Float
evaluation_points: Float
evaluation_max_points: Float
evaluation_passed: Boolean
assignment_user: UserType!
assignment: AssignmentObjectType!
completion_status: AssignmentAssignmentCompletionCompletionStatusChoices!
@ -548,7 +549,7 @@ type CompetenceCertificateListObjectType implements CoursePageInterface {
type Mutation {
send_feedback(course_session_id: ID!, data: GenericScalar, learning_content_page_id: ID!, submitted: Boolean = false): SendFeedbackMutation
update_course_session_attendance_course_users(attendance_user_list: [AttendanceUserInputType]!, id: ID!): AttendanceCourseUserMutation
upsert_assignment_completion(assignment_id: ID!, assignment_user_id: UUID, completion_data_string: String, completion_status: AssignmentCompletionStatus, course_session_id: ID!, evaluation_grade: Float, evaluation_points: Float, initialize_completion: Boolean, learning_content_page_id: ID): AssignmentCompletionMutation
upsert_assignment_completion(assignment_id: ID!, assignment_user_id: UUID, completion_data_string: String, completion_status: AssignmentCompletionStatus, course_session_id: ID!, evaluation_passed: Boolean, evaluation_points: Float, initialize_completion: Boolean, learning_content_page_id: ID): AssignmentCompletionMutation
}
type SendFeedbackMutation {

View File

@ -47,7 +47,6 @@ export const graphqlClient = new Client({
JSON.parse(args.completion_data_string || "{}")
),
completion_status: args.completion_status,
evaluation_grade: args.evaluation_grade,
evaluation_points: args.evaluation_points,
},
};

View File

@ -31,7 +31,6 @@ export const UPSERT_ASSIGNMENT_COMPLETION_MUTATION = graphql(`
$assignmentUserId: UUID
$completionStatus: AssignmentCompletionStatus!
$completionDataString: String!
$evaluationGrade: Float
$evaluationPoints: Float
$initializeCompletion: Boolean
) {
@ -42,7 +41,6 @@ export const UPSERT_ASSIGNMENT_COMPLETION_MUTATION = graphql(`
assignment_user_id: $assignmentUserId
completion_status: $completionStatus
completion_data_string: $completionDataString
evaluation_grade: $evaluationGrade
evaluation_points: $evaluationPoints
initialize_completion: $initializeCompletion
) {
@ -51,7 +49,6 @@ export const UPSERT_ASSIGNMENT_COMPLETION_MUTATION = graphql(`
completion_status
submitted_at
evaluation_submitted_at
evaluation_grade
evaluation_points
completion_data
}

View File

@ -65,8 +65,9 @@ export const ASSIGNMENT_COMPLETION_QUERY = graphql(`
assignment_user {
id
}
evaluation_grade
evaluation_points
evaluation_max_points
evaluation_passed
completion_data
}
}

View File

@ -17,6 +17,7 @@
"Feedback anschauen": "Feedback anschauen",
"Feedback: Feedback zum Lehrgang": "Feedback: Feedback zum Lehrgang",
"Freigabetermin Bewertungen:": "Freigabetermin Bewertungen:",
"Hier überprüfst und bestätigst du die Anwesenheit deiner Teilnehmenden": [],
"MS Teams öffnen": "MS Teams öffnen",
"Nächste Termine": "Nächste Termine",
"Passwort": "Passwort",
@ -29,26 +30,44 @@
"Wissens - und Verständnisfragen": "Wissens - und Verständnisfragen",
"Zur Zeit sind keine Termine vorhanden": "Zur Zeit sind keine Termine vorhanden",
"a": {
"Alle aufklappen": "Alle aufklappen",
"AlleTermine": "a.AlleTermine",
"Begründung": "Begründung",
"Beurteilungsinstrument anzeigen": "Beurteilungsinstrument anzeigen",
"Beurteilungskriterium": "Beurteilungskriterium",
"Bewertung": "Bewertung",
"Bewertung fortsetzen": "a.Bewertung fortsetzen",
"Bewertung freigegeben": "Bewertung freigegeben",
"Datum": "a.Datum",
"Bewertung starten": "Bewertung starten",
"Circle": "Circle",
"Datum": "Datum",
"Details anzeigen": "Details anzeigen",
"Ergebnisse": "Ergebnisse",
"Ergebnisse abgegeben": "Ergebnisse abgegeben",
"Ergebnisse anschauen": "Ergebnisse anschauen",
"Geleitete Fallarbeit": "Geleitete Fallarbeit",
"Gesamtpunktzahl": "Gesamtpunktzahl",
"Handlungskompetenzen": "a.Handlungskompetenzen",
"Handlungskompetenzen": "Handlungskompetenzen",
"Höchstpunktzahl": "Höchstpunktzahl",
"Kein Circle verfügbar oder ausgewählt": [],
"KompetenzNavi": "KompetenzNavi",
"Kompetenznachweis": "Kompetenznachweis",
"Kompetenznachweise": "Kompetenznachweise",
"Mediathek": "a.Mediathek",
"Leistungsziele": "Leistungsziele",
"Mediathek": "Mediathek",
"Punkte": "Punkte",
"Selbsteinschätzung": "a.Selbsteinschätzung",
"Selbsteinschätzung": "Selbsteinschätzung",
"Selbsteinschätzung anschauen": "a.Selbsteinschätzung anschauen",
"Selbsteinschätzungen": "Selbsteinschätzungen",
"Standort": "a.Standort",
"Trainer": "a.Trainer",
"Standort": "Standort",
"Trainer": "Trainer",
"VorschauTeilnehmer": "Vorschau Teilnehmer",
"Zwischenstand": "Zwischenstand",
"competenceCertificateNoUserPoints": "a.competenceCertificateNoUserPoints",
"competenceCertificateNoUserPoints": "Der Punktestand wird zu einem späteren Zeitpunkt berechnet.",
"Übersicht": "Übersicht"
},
"assignment": {
"Du musst die Bewertung bis am x um y Uhr abschliessen und freigeben": "Du musst die Bewertung bis am {{x}} um {{y}} Uhr abschliessen und freigeben.",
"acceptConditionsDisclaimer": "Bedingungen akzeptieren und Ergebnisse abgeben",
"assessmentDocumentDisclaimer": "Diese geleitete Fallarbeit wird auf Grund des folgenden Beurteilungsinstrument bewertet:",
"assessmentTitle": "Bewertung",
@ -61,7 +80,9 @@
"dueDateSubmission": "Abgabetermin",
"edit": "Bearbeiten",
"effortTitle": "Zeitaufwand",
"evaluationInstrumentDescriptionText": "Die Gesamtpunktzahl und die daraus resultierende Note wird auf Grund des hinterlegeten Beurteilungsinstrument berechnet.",
"initialSituationTitle": "Ausgangslage",
"justificationRequiredText": "Hier muss zwingend eine Begründung erfasst werden.",
"lastChangesNotSaved": "Die letzte Änderung konnte nicht gespeichert werden.",
"performanceObjectivesTitle": "Leistungsziele",
"showAssessmentDocument": "Bewertungsinstrument anzeigen",
@ -70,12 +91,13 @@
"taskDefinition": "Bearbeite die Teilaufgaben und dokumentiere deine Ergebnisse.",
"taskDefinitionTitle": "Aufgabenstellung",
"von x Punkten": "von {{x}} Punkten",
"x hat die Ergebnisse am y um z Uhr abgegeben": "{{x}} hat die Ergebnisse am {{y}} um {{z}} Uhr abgegeben",
"x von y Arbeiten abgeschlossen": "{{x}} von {{y}} Arbeiten abgeschlossen",
"x von y Kompetenznachweis-Elementen abgeschlossen": "assignment.x von y Kompetenznachweis-Elementen abgeschlossen"
"x von y Kompetenznachweis-Elementen abgeschlossen": "{{x}} von {{y}} Kompetenznachweis-Elementen abgeschlossen"
},
"circlePage": {
"Dieser Inhalt gehört zu x": "circlePage.Dieser Inhalt gehört zu x",
"Im KompetenzNavi anschauen": "circlePage.Im KompetenzNavi anschauen",
"Dieser Inhalt gehört zu x": "Dieser Inhalt gehört zu «{{x}}»",
"Im KompetenzNavi anschauen": "Im KompetenzNavi anzeigen",
"circleContentBoxTitle": "Das lernst du in diesem Circle",
"contactExpertButton": "Trainer/-in kontaktieren",
"contactExpertDescription": "Tausche dich mit der Trainer/-in für den Circle {{circleName}} aus.",
@ -117,11 +139,14 @@
"title": "Cockpit",
"trainerFilesText": "Hier findest du die Trainerunterlagen (Lösungsblätter, Präsentationen etc.) für deinen Circle."
},
"competence": {
"listPageDescription": "competence.listPageDescription"
},
"competenceCertificate": {
"mainTitle": "competenceCertificate.mainTitle"
"mainTitle": "Kompetenznachweis"
},
"competenceCertificates": {
"mainTitle": "competenceCertificates.mainTitle"
"mainTitle": "Kompetenznachweise"
},
"competences": {
"assessAgain": "Selbsteinschätzung im Circle «{{x}}» anschauen",
@ -152,7 +177,8 @@
},
"edoniqTest": {
"qualifiesForExtendedTime": "Ich bestätige, dass ich Anrecht auf einen Test mit Nachteilsausgleich habe.",
"qualifiesForExtendedTimeTitle": "Lernende mit Nachteilsausgleich (bewilligungspflichtig)"
"qualifiesForExtendedTimeTitle": "Lernende mit Nachteilsausgleich (bewilligungspflichtig)",
"startTest": "Test starten"
},
"feedback": {
"answers": "Antworten",

View File

@ -1,4 +1,5 @@
{
"Alle": "Tout",
"Anwesenheit Präsenzkurse": "Présence aux cours",
"Anwesenheit bestätigen": "Confirmer la présence",
"Anwesenheit prüfen": "Vérifier la présence",
@ -7,29 +8,55 @@
"Ergebnisse anschauen": "Consulter les résultats",
"Feedback": "Feedback",
"Feedback anschauen": "Consulter le feedback",
"Hier überprüfst und bestätigst du die Anwesenheit deiner Teilnehmenden": [],
"MS Teams öffnen": "Ouvrir MS Teams ",
"Nächste Termine": "Prochaines dates",
"Passwort": "Mot de passe",
"Sehr unzufrieden": "très insatisfait",
"Sehr zufrieden": "très satisfait",
"Status anschauen": "Consulter le statut",
"TODO: Nächste Termine": "TODO: prochaines dates",
"Trainerunterlagen": "Documents du formateur / de la formatrice",
"Wissens - und Verständnisfragen": "Questions de connaissance et de compréhension ",
"Zur Zeit sind keine Termine vorhanden": "Aucune réunion nest prévue pour le moment",
"a": {
"Alle aufklappen": "Tout déplier",
"Begründung": "Justification",
"Beurteilungsinstrument anzeigen": "Afficher l'outil d'évaluation",
"Beurteilungskriterium": "Critère d'évaluation",
"Bewertung": "Évaluation",
"Bewertung fortsetzen": "Continuer l'évaluation",
"Bewertung freigegeben": "Évaluations validée/s",
"Bewertung starten": "Continuer l'évaluation",
"Circle": "Cercle",
"Datum": "Date",
"Details anzeigen": "Afficher les détails",
"Ergebnisse": "Résultats",
"Ergebnisse abgegeben": "Résultats remis",
"Ergebnisse anschauen": "Voir les résultats",
"Geleitete Fallarbeit": "Étude de cas dirigée",
"Gesamtpunktzahl": "Score total",
"Handlungskompetenzen": "Compétences opérationnelles",
"Höchstpunktzahl": "Score maximum",
"Kein Circle verfügbar oder ausgewählt": [],
"KompetenzNavi": "NaviCompétence",
"Kompetenznachweis": "Contrôle de compétences",
"Kompetenznachweise": "Contrôles de compétences",
"Kompetenznachweise": "Contrôles de compétences",
"Leistungsziele": "Objectif évaluateur",
"Mediathek": "Médiathèque",
"Punkte": "points",
"Selbsteinschätzung": "Auto-évaluation",
"Selbsteinschätzung anschauen": "Voir l'auto-évaluation",
"Selbsteinschätzungen": "Auto-évaluations",
"Standort": "Emplacement",
"Trainer": "Formateur / Formatrice",
"VorschauTeilnehmer": "Aperçu participant",
"Zwischenstand": "Point intermédiaire",
"competenceCertificateNoUserPoints": "Le score sera calculé à un moment ultérieur.",
"Übersicht": "Aperçu"
},
"assignment": {
"Du musst die Bewertung bis am x um y Uhr abschliessen und freigeben": "Vous devez terminer et valider l'évaluation avant le {{x}} à {{y}} heures.",
"acceptConditionsDisclaimer": "Accepter les conditions et remettre les résultats",
"assessmentDocumentDisclaimer": "Cette étude de cas dirigée est évaluée par loutil suivant :",
"assessmentTitle": "Évaluation",
@ -42,7 +69,9 @@
"dueDateSubmission": "Date de remise",
"edit": "Traiter",
"effortTitle": "Temps nécessaire",
"evaluationInstrumentDescriptionText": "Le score total et la note en résultant sont calculés sur la base de l'outil d'évaluation enregistré.",
"initialSituationTitle": "Situation initiale",
"justificationRequiredText": "Ici, une justification doit impérativement être saisie.",
"lastChangesNotSaved": "La dernière modification na pas pu être enregistrée.",
"performanceObjectivesTitle": "Objectifs",
"showAssessmentDocument": "Afficher loutil dévaluation",
@ -51,9 +80,13 @@
"taskDefinition": "Résous les exercices et documente tes résultats.",
"taskDefinitionTitle": "Énoncé du problème",
"von x Punkten": "sur {{x}} points",
"x von y Arbeiten abgeschlossen": "{{x}} sur {{y}} épreuves terminées"
"x hat die Ergebnisse am y um z Uhr abgegeben": "{{x}} a soumis les résultats le {{y}} à {{z}} heures",
"x von y Arbeiten abgeschlossen": "{{x}} sur {{y}} épreuves terminées",
"x von y Kompetenznachweis-Elementen abgeschlossen": "{{x}} sur {{y}} éléments de contrôle de compétences terminés"
},
"circlePage": {
"Dieser Inhalt gehört zu x": "Ce contenu appartient à «{{x}}»",
"Im KompetenzNavi anschauen": "Afficher dans le \"KompetenzNavi\"",
"circleContentBoxTitle": "Ce que tu vas apprendre dans ce cercle",
"contactExpertButton": "Contacter le formateur / la formatrice",
"contactExpertDescription": "Échanger avec le formateur / la formatrice si tu as des questions sur le cercle {{circleName}}.",
@ -95,6 +128,12 @@
"title": "Cockpit",
"trainerFilesText": "Tu trouves ici les documents de formation (feuilles de solution, présentations, etc.) pour ton cercle."
},
"competenceCertificate": {
"mainTitle": "Contrôle de compétences"
},
"competenceCertificates": {
"mainTitle": "Contrôles de compétences"
},
"competences": {
"assessAgain": "Voir l'auto-évaluation dans le cercle «{{x}}»",
"assessment": "Évaluations",
@ -124,7 +163,8 @@
},
"edoniqTest": {
"qualifiesForExtendedTime": "Je confirme que j'ai droit à un test avec compensation des inégalités.",
"qualifiesForExtendedTimeTitle": "Apprenti-e-s avec compensation des inégalités (soumis à autorisation)"
"qualifiesForExtendedTimeTitle": "Apprenti-e-s avec compensation des inégalités (soumis à autorisation)",
"startTest": "Démarrer l'essai"
},
"feedback": {
"answers": "Réponses",
@ -315,8 +355,10 @@
"welcome": "Tout s'est bien passé, tu es maintenant inscrit/e à l'environnement d'apprentissage numérique de l'Association pour la formation professionnelle en assurance (AFA) !"
}
},
"unzufrieden": "insatisfait",
"x von y Bewertungen freigegeben": "{{x}} de {{y}} évaluations validée/s",
"x von y Ergebnisse abgegeben": "{{x}} de {{y}} résultats remis",
"x von y Feedbacks abgegeben": "{{x}} de {{y}} feedbacks remis",
"x von y abgeschlossen": "{{x}} de {{y}} achevée/s"
"x von y abgeschlossen": "{{x}} de {{y}} achevée/s",
"zufrieden": "satisfait"
}

View File

@ -1,4 +1,5 @@
{
"Alle": "Tutto",
"Anwesenheit Präsenzkurse": "Presenza ai corsi",
"Anwesenheit bestätigen": "Confermare la presenza",
"Anwesenheit prüfen": "Verificare la presenza",
@ -7,29 +8,55 @@
"Ergebnisse anschauen": "Vedere i risultati",
"Feedback": "Feedback",
"Feedback anschauen": "Vedere il feedback",
"Hier überprüfst und bestätigst du die Anwesenheit deiner Teilnehmenden": [],
"MS Teams öffnen": "Aprire MS Teams",
"Nächste Termine": "Prossime date",
"Passwort": "Password",
"Sehr unzufrieden": "molto insoddisfatto",
"Sehr zufrieden": "molto soddisfatto",
"Status anschauen": "Vedere lo stato",
"TODO: Nächste Termine": "TODO: prossime date",
"Trainerunterlagen": "Documenti del/della trainer",
"Wissens - und Verständnisfragen": "Domande di conoscenza e di comprensione",
"Zur Zeit sind keine Termine vorhanden": "Al momento non ci sono scadenze",
"a": {
"Alle aufklappen": "Apri tutto",
"Begründung": "Motivazione",
"Beurteilungsinstrument anzeigen": "Mostra lo strumento di valutazione",
"Beurteilungskriterium": "Criterio di valutazione",
"Bewertung": "Valutazione",
"Bewertung fortsetzen": "Continua la valutazione",
"Bewertung freigegeben": "Valutazioni approvate/a",
"Bewertung starten": "Continua la valutazione",
"Circle": "Cerchio",
"Datum": "Data",
"Details anzeigen": "Mostrare i dettagli",
"Ergebnisse": "Risultati",
"Ergebnisse abgegeben": "Risultati consegnati",
"Ergebnisse anschauen": "Guarda i risultati",
"Geleitete Fallarbeit": "Caso di studio guidato",
"Gesamtpunktzahl": "Punteggio totale",
"Handlungskompetenzen": "Competenze operative",
"Höchstpunktzahl": "Punteggio massimo",
"Kein Circle verfügbar oder ausgewählt": [],
"KompetenzNavi": "NaviCompetenze",
"Kompetenznachweis": "Controllo delle competenze",
"Kompetenznachweise": "Controlli delle competenze",
"Kompetenznachweise": "Controlli delle competenze",
"Leistungsziele": "Obiettivo di valutazione",
"Mediathek": "Mediateca",
"Punkte": "punti",
"Selbsteinschätzung": "Auto-valutazione",
"Selbsteinschätzung anschauen": "Guarda l'auto-valutazione",
"Selbsteinschätzungen": "Auto-valutaziones",
"Standort": "Posizione",
"Trainer": "Trainer",
"VorschauTeilnehmer": "Anteprima partecipante",
"Zwischenstand": "Punto intermedio",
"competenceCertificateNoUserPoints": "Il punteggio verrà calcolato in un momento successivo.",
"Übersicht": "Panoramica"
},
"assignment": {
"Du musst die Bewertung bis am x um y Uhr abschliessen und freigeben": " Devi completare e rilasciare la valutazione entro il {{x}} alle ore {{y}}.",
"acceptConditionsDisclaimer": "Accettare le condizioni e consegnare i risultati",
"assessmentDocumentDisclaimer": "Questa analisi guidata del caso viene valutata sulla base del seguente strumento di valutazione:",
"assessmentTitle": "Valutazione",
@ -42,7 +69,9 @@
"dueDateSubmission": "Termine di consegna",
"edit": "Modificare",
"effortTitle": "Tempo richiesto",
"evaluationInstrumentDescriptionText": "Il punteggio totale e il voto risultante vengono calcolati sulla base dello strumento di valutazione archiviato.",
"initialSituationTitle": "Situazione di partenza",
"justificationRequiredText": "Qui è assolutamente necessario inserire una motivazione.",
"lastChangesNotSaved": "Non è stato possibile salvare lultima modifica.",
"performanceObjectivesTitle": "Obiettivi di valutazione",
"showAssessmentDocument": "Mostrare lo strumento di valutazione",
@ -51,9 +80,13 @@
"taskDefinition": "Svolgi le attività parziali e documenta i tuoi risultati.",
"taskDefinitionTitle": "Compito",
"von x Punkten": "di {{x}} punti",
"x von y Arbeiten abgeschlossen": "{{x}} di {{y}} compiti completati"
"x hat die Ergebnisse am y um z Uhr abgegeben": "{{x}} ha consegnato i risultati il {{y}} alle ore {{z}}",
"x von y Arbeiten abgeschlossen": "{{x}} di {{y}} compiti completati",
"x von y Kompetenznachweis-Elementen abgeschlossen": "{{x}} su {{y}} elementi del controllo delle competenze completati"
},
"circlePage": {
"Dieser Inhalt gehört zu x": "Questo contenuto appartiene a «{{x}}»",
"Im KompetenzNavi anschauen": "Mostra nel \"KompetenzNavi\"",
"circleContentBoxTitle": "Cosa apprenderai in questo Circle",
"contactExpertButton": "Contattare il/la trainer",
"contactExpertDescription": "Confrontati con il/la trainer per il Circle {{circleName}}.",
@ -95,6 +128,12 @@
"title": "Cockpit",
"trainerFilesText": "Qui trovi i documenti del/della trainer (soluzioni, presentazioni ecc.) per il tuo Circle."
},
"competenceCertificate": {
"mainTitle": "Controllo delle competenze"
},
"competenceCertificates": {
"mainTitle": "Controlli delle competenze"
},
"competences": {
"assessAgain": "Guarda l'autovalutazione nel cerchio «{{x}}»",
"assessment": "Valutazioni",
@ -124,7 +163,8 @@
},
"edoniqTest": {
"qualifiesForExtendedTime": "Confermo di avere diritto a un test con compensazione delli ineguaglianze",
"qualifiesForExtendedTimeTitle": "Impiegati con compensazione delli ineguaglianze (soggetto ad approvazione)"
"qualifiesForExtendedTimeTitle": "Impiegati con compensazione delli ineguaglianze (soggetto ad approvazione)",
"startTest": "Inizia la prova"
},
"feedback": {
"answers": "Risposte",
@ -315,8 +355,10 @@
"welcome": "Tutto ha funzionato, ora sei registrata/o nell'ambiente di apprendimento digitale dell'Associazione per la formazione professionale nell'assicurazione (AFA)!"
}
},
"unzufrieden": "insoddisfatto",
"x von y Bewertungen freigegeben": "{{x}} di {{y}} valutazioni approvate/a",
"x von y Ergebnisse abgegeben": "{{x}} di {{y}} risultati consegnati/o",
"x von y Feedbacks abgegeben": "{{x}} di {{y}} feedback consegnati/o",
"x von y abgeschlossen": "{{x}} di {{y}} completate/a"
"x von y abgeschlossen": "{{x}} di {{y}} completate/a",
"zufrieden": "soddisfatto"
}

View File

@ -4,7 +4,6 @@ import { useCurrentCourseSession } from "@/composables";
import { UPSERT_ASSIGNMENT_COMPLETION_MUTATION } from "@/graphql/mutations";
import {
maxAssignmentPoints,
pointsToGrade,
userAssignmentPoints,
} from "@/services/assignmentService";
import type {
@ -47,7 +46,6 @@ async function submitEvaluation() {
assignmentUserId: props.assignmentUser.user_id.toString(),
completionStatus: "EVALUATION_SUBMITTED",
completionDataString: JSON.stringify({}),
evaluationGrade: grade.value ?? 1,
evaluationPoints: userPoints.value,
// next line used for urql
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
@ -78,12 +76,6 @@ const maxPoints = computed(() => maxAssignmentPoints(props.assignment));
const userPoints = computed(() =>
userAssignmentPoints(props.assignment, props.assignmentCompletion)
);
const grade = computed(() => {
if (props.assignmentCompletion.completion_status === "EVALUATION_SUBMITTED") {
return props.assignmentCompletion.evaluation_grade;
}
return pointsToGrade(userPoints.value, maxPoints.value);
});
const evaluationUser = computed(() => {
if (props.assignmentCompletion.evaluation_user) {
@ -102,14 +94,14 @@ const evaluationUser = computed(() => {
<h3 v-if="evaluationUser && props.showEvaluationUser" class="mb-6">
Bewertung von {{ evaluationUser.first_name }} {{ evaluationUser.last_name }}
</h3>
<h3 v-else class="mb-6">{{ $t("a.Bewertung Freigabe") }}</h3>
<h3 v-else class="mb-6" data-cy="sub-title">{{ $t("a.Bewertung Freigabe") }}</h3>
<section class="mb-6 border p-6">
<section class="mb-6 border p-6" data-cy="result-section">
<section class="flex items-center">
<div class="heading-1 py-4">
<div class="heading-1 py-4" data-cy="user-points">
{{ userPoints }}
</div>
<div class="pl-2">
<div class="pl-2" data-cy="total-points">
{{ $t("assignment.von x Punkten", { x: maxPoints }) }}
</div>
</section>
@ -140,7 +132,11 @@ const evaluationUser = computed(() => {
Uhr
</div>
<div v-else>
<button class="btn-primary text-large" @click="submitEvaluation()">
<button
class="btn-primary text-large"
data-cy="submit-evaluation"
@click="submitEvaluation()"
>
{{ $t("a.Bewertung freigeben") }}
</button>
</div>

View File

@ -16,7 +16,6 @@ import pick from "lodash/pick";
export interface GradedUser {
user: CourseSessionUser;
grade: number;
points: number;
}
@ -64,7 +63,6 @@ export async function loadAssignmentCompletionStatusData(
if (userAssignmentStatus?.completion_status === "EVALUATION_SUBMITTED") {
gradedUsers.push({
user: csu,
grade: userAssignmentStatus.evaluation_grade ?? 0,
points: userAssignmentStatus.evaluation_points ?? 0,
});
}
@ -123,10 +121,3 @@ export function userAssignmentPoints(
)
);
}
export function pointsToGrade(points: number, maxPoints: number) {
// round to half-grades
const grade = Math.round((points / maxPoints) * 10);
const halfGrade = grade / 2;
return Math.min(halfGrade, 5) + 1;
}

View File

@ -595,8 +595,9 @@ export interface AssignmentCompletion {
completion_status: AssignmentCompletionStatus;
evaluation_user: string | null;
completion_data: AssignmentCompletionData;
evaluation_grade: number | null;
evaluation_points: number | null;
evaluation_max_points: number | null;
evaluation_passed: boolean | null;
}
export type UpsertUserAssignmentCompletion = {
@ -608,15 +609,15 @@ export type UpsertUserAssignmentCompletion = {
export type EvaluationCompletionData = UpsertUserAssignmentCompletion & {
assignment_user_id: string;
evaluation_grade?: number;
evaluation_points?: number;
evaluation_max_points?: number;
evaluation_passed?: boolean;
};
export interface UserAssignmentCompletionStatus {
id: string;
assignment_user_id: string;
completion_status: AssignmentCompletionStatus;
evaluation_grade: number | null;
evaluation_points: number | null;
learning_content_page_id: number;
}

View File

@ -1,3 +1,4 @@
import { TEST_STUDENT1_USER_ID } from "../../consts";
import { login } from "../helpers";
describe("assignmentStudent.cy.js", () => {
@ -109,4 +110,134 @@ describe("assignmentStudent.cy.js", () => {
);
});
});
it.only("can make complete assignment", () => {
cy.learningContentMultiLayoutNextStep();
cy.testLearningContentTitle(
"Teilaufgabe 1: Beispiel einer Versicherungspolice finden"
);
// Click confirmation
cy.get('[data-cy="it-checkbox-confirmation-1"]').click();
cy.learningContentMultiLayoutNextStep();
// step 2
cy.testLearningContentTitle(
"Teilaufgabe 2: Kundensituation und Ausgangslage"
);
cy.get('[data-cy="it-textarea-user-text-input-1"]')
.clear()
.type("Hallo Teilaufgabe 2");
// wait because of input debounce
cy.wait(550);
cy.learningContentMultiLayoutNextStep();
// check that results are stored on server
// load AssignmentCompletion from DB and check
cy.loadAssignmentCompletion(
"assignment_user_id",
TEST_STUDENT1_USER_ID
).then((ac) => {
expect(ac.completion_status).to.equal("IN_PROGRESS");
expect(JSON.stringify(ac.completion_data)).to.include(
"Hallo Teilaufgabe 2"
);
});
// step 3
cy.testLearningContentTitle("Teilaufgabe 3: Aktuelle Versicherung");
cy.get('[data-cy="it-textarea-user-text-input-1"]')
.clear()
.type("Hallo Teilaufgabe 3");
// wait because of input debounce
cy.wait(550);
cy.learningContentMultiLayoutNextStep();
// step 4
cy.testLearningContentTitle("Teilaufgabe 4: Deine Empfehlungen");
cy.get('[data-cy="it-textarea-user-text-input-1"]')
.clear()
.type("Hallo Teilaufgabe 4.1");
cy.wait(550);
cy.get('[data-cy="it-textarea-user-text-input-2"]')
.clear()
.type("Hallo Teilaufgabe 4.2");
cy.wait(550);
cy.get('[data-cy="it-textarea-user-text-input-3"]')
.clear()
.type("Hallo Teilaufgabe 4.3");
// wait because of input debounce
cy.wait(550);
cy.learningContentMultiLayoutNextStep();
// step 5
cy.testLearningContentTitle("Teilaufgabe 5: Reflexion");
cy.get('[data-cy="it-textarea-user-text-input-1"]')
.clear()
.type("Hallo Teilaufgabe 5.1");
cy.wait(550);
cy.get('[data-cy="it-textarea-user-text-input-2"]')
.clear()
.type("Hallo Teilaufgabe 5.2");
cy.wait(550);
cy.get('[data-cy="it-textarea-user-text-input-3"]')
.clear()
.type("Hallo Teilaufgabe 5.3");
// wait because of input debounce
cy.wait(550);
cy.learningContentMultiLayoutNextStep();
// step 6
cy.testLearningContentTitle("Teilaufgabe 6: Learnings");
cy.get('[data-cy="it-textarea-user-text-input-1"]')
.clear()
.type("Hallo Teilaufgabe 6.1");
cy.wait(550);
cy.get('[data-cy="it-textarea-user-text-input-2"]')
.clear()
.type("Hallo Teilaufgabe 6.2");
// wait because of input debounce
cy.wait(550);
cy.learningContentMultiLayoutNextStep();
cy.get('[data-cy="confirm-submit-results"]').click();
cy.get('[data-cy="confirm-submit-person"]').click();
cy.get('[data-cy="submit-assignment"]').click();
cy.get('[data-cy="success-text"]').should("exist");
// app goes back to circle view -> check if assignment is marked as completed
cy.url().should((url) => {
expect(url).to.match(/\/fahrzeug#lu-transfer?$/);
});
cy.reload();
cy.get(
'[data-cy="test-lehrgang-lp-circle-fahrzeug-lc-überprüfen-einer-motorfahrzeug-versicherungspolice-checkbox"]'
).should("have.class", "cy-checked");
// reopening page should get directly to last step
cy.visit(
"/course/test-lehrgang/learn/fahrzeug/überprüfen-einer-motorfahrzeug-versicherungspolice"
);
cy.url().should("include", "step=7");
// load AssignmentCompletion from DB and check
cy.loadAssignmentCompletion(
"assignment_user_id",
TEST_STUDENT1_USER_ID
).then((ac) => {
expect(ac.completion_status).to.equal("SUBMITTED");
expect(ac.evaluation_max_points).to.equal(24);
const completionString = JSON.stringify(ac.completion_data);
console.log(completionString);
expect(completionString).to.include("Hallo Teilaufgabe 2");
expect(completionString).to.include("Hallo Teilaufgabe 3");
expect(completionString).to.include("Hallo Teilaufgabe 4.1");
expect(completionString).to.include("Hallo Teilaufgabe 4.2");
expect(completionString).to.include("Hallo Teilaufgabe 4.3");
expect(completionString).to.include("Hallo Teilaufgabe 5.1");
expect(completionString).to.include("Hallo Teilaufgabe 5.2");
expect(completionString).to.include("Hallo Teilaufgabe 5.3");
expect(completionString).to.include("Hallo Teilaufgabe 6.1");
expect(completionString).to.include("Hallo Teilaufgabe 6.2");
});
});
});

View File

@ -90,4 +90,108 @@ describe("assignmentTrainer.cy.js", () => {
});
});
});
it.only("can make complete evaluation", () => {
cy.visit("/course/test-lehrgang/cockpit");
cy.get(
'[data-cy="show-details-btn-test-lehrgang-lp-circle-fahrzeug-lc-überprüfen-einer-motorfahrzeug-versicherungspolice"]'
).click();
cy.get('[data-cy="Student1"]').find('[data-cy="show-results"]').click();
cy.get('[data-cy="start-evaluation"]').click();
// step 1
cy.get('[data-cy="evaluation-task"]').should(
"contain",
"Beurteilungskriterium 1 / 5"
);
cy.get('[data-cy="subtask-6"]').click();
cy.get('[data-cy="reason-text"]').type("Begründung Schritt 1");
// wait for debounce
cy.wait(500);
cy.get('[data-cy="next-step"]').click();
// step 2
cy.get('[data-cy="evaluation-task"]').should(
"contain",
"Beurteilungskriterium 2 / 5"
);
cy.get('[data-cy="subtask-4"]').click();
cy.get('[data-cy="reason-text"]').type("Begründung Schritt 2");
cy.wait(500);
cy.get('[data-cy="next-step"]').click();
// step 3
cy.get('[data-cy="evaluation-task"]').should(
"contain",
"Beurteilungskriterium 3 / 5"
);
cy.get('[data-cy="subtask-2"]').click();
cy.get('[data-cy="reason-text"]').type("Begründung Schritt 3");
cy.wait(500);
cy.get('[data-cy="next-step"]').click();
// step 4
cy.get('[data-cy="evaluation-task"]').should(
"contain",
"Beurteilungskriterium 4 / 5"
);
cy.get('[data-cy="subtask-3"]').click();
cy.get('[data-cy="reason-text"]').type("Begründung Schritt 4");
cy.wait(500);
cy.get('[data-cy="next-step"]').click();
// step 5
cy.get('[data-cy="evaluation-task"]').should(
"contain",
"Beurteilungskriterium 5 / 5"
);
cy.get('[data-cy="subtask-2"]').click();
cy.get('[data-cy="reason-text"]').type("Begründung Schritt 5");
cy.wait(500);
cy.get('[data-cy="next-step"]').click();
// freigabe
cy.get('[data-cy="sub-title"]').should("contain", "Bewertung Freigabe");
cy.get('[data-cy="user-points"]').should("contain", "17");
cy.get('[data-cy="total-points"]').should("contain", "24");
cy.get('[data-cy="submit-evaluation"]').click();
cy.get('[data-cy="result-section"]').should(
"contain",
"Deine Bewertung für Test Student1 wurde freigegeben"
);
// going back to cockpit should show points for student
cy.visit("/course/test-lehrgang/cockpit");
cy.reload();
cy.get(
'[data-cy="show-details-btn-test-lehrgang-lp-circle-fahrzeug-lc-überprüfen-einer-motorfahrzeug-versicherungspolice"]'
).click();
cy.get('[data-cy="Student1"]').should("contain", "Bewertung freigegeben");
cy.get('[data-cy="Student1"]').should("contain", "17 Punkte");
// clicking on results page will go to last step
cy.get('[data-cy="Student1"]').find('[data-cy="show-results"]').click();
cy.url().should("include", "step=6");
// load AssignmentCompletion from DB and check
cy.loadAssignmentCompletion(
"assignment_user_id",
TEST_STUDENT1_USER_ID
).then((ac) => {
expect(ac.completion_status).to.equal("EVALUATION_SUBMITTED");
expect(ac.evaluation_points).to.equal(17);
expect(ac.evaluation_max_points).to.equal(24);
expect(ac.evaluation_passed).to.equal(true);
const completionString = JSON.stringify(ac.completion_data);
expect(completionString).to.include("Begründung Schritt 1");
expect(completionString).to.include("Begründung Schritt 2");
expect(completionString).to.include("Begründung Schritt 3");
expect(completionString).to.include("Begründung Schritt 4");
expect(completionString).to.include("Begründung Schritt 5");
});
});
});

View File

@ -133,6 +133,7 @@ describe("feedbackStudent.cy.js", () => {
// reopening page should get directly to last step
cy.visit("/course/test-lehrgang/learn/fahrzeug/feedback");
cy.url().should("include", "step=11");
// check stored data
cy.loadFeedbackResponse("feedback_user_id", TEST_STUDENT1_USER_ID).then(

View File

@ -29,8 +29,8 @@ class AssignmentCompletionMutation(graphene.Mutation):
)
completion_data_string = graphene.String()
evaluation_grade = graphene.Float()
evaluation_points = graphene.Float()
evaluation_passed = graphene.Boolean()
initialize_completion = graphene.Boolean(required=False)
@classmethod
@ -44,8 +44,8 @@ class AssignmentCompletionMutation(graphene.Mutation):
assignment_user_id=None,
completion_status: AssignmentCompletionStatus = AssignmentCompletionStatus.IN_PROGRESS,
completion_data_string="{}",
evaluation_grade=None,
evaluation_points=None,
evaluation_passed=None,
initialize_completion=False,
):
if assignment_user_id is None:
@ -97,8 +97,8 @@ class AssignmentCompletionMutation(graphene.Mutation):
evaluation_data = {
"evaluation_user": info.context.user,
"evaluation_grade": evaluation_grade,
"evaluation_points": evaluation_points,
"evaluation_passed": evaluation_passed,
}
ac = update_assignment_completion(

View File

@ -31,8 +31,9 @@ class AssignmentCompletionObjectType(DjangoObjectType):
"completion_data",
"evaluation_user",
"additional_json_data",
"evaluation_grade",
"evaluation_points",
"evaluation_passed",
"evaluation_max_points",
)

View File

@ -0,0 +1,40 @@
# Generated by Django 3.2.20 on 2023-09-28 10:54
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("assignment", "0007_auto_20230901_1112"),
]
operations = [
migrations.RemoveField(
model_name="assignmentcompletion",
name="evaluation_grade",
),
migrations.RemoveField(
model_name="assignmentcompletionauditlog",
name="evaluation_grade",
),
migrations.AddField(
model_name="assignmentcompletion",
name="evaluation_max_points",
field=models.FloatField(blank=True, null=True),
),
migrations.AddField(
model_name="assignmentcompletion",
name="evaluation_passed",
field=models.BooleanField(blank=True, null=True),
),
migrations.AddField(
model_name="assignmentcompletionauditlog",
name="evaluation_max_points",
field=models.FloatField(blank=True, null=True),
),
migrations.AddField(
model_name="assignmentcompletionauditlog",
name="evaluation_passed",
field=models.BooleanField(blank=True, null=True),
),
]

View File

@ -316,8 +316,9 @@ class AssignmentCompletion(models.Model):
blank=True,
related_name="+",
)
evaluation_grade = models.FloatField(null=True, blank=True)
evaluation_points = models.FloatField(null=True, blank=True)
evaluation_max_points = models.FloatField(null=True, blank=True)
evaluation_passed = models.BooleanField(null=True, blank=True)
assignment_user = models.ForeignKey(User, on_delete=models.CASCADE)
assignment = models.ForeignKey(Assignment, on_delete=models.CASCADE)
@ -395,5 +396,6 @@ class AssignmentCompletionAuditLog(models.Model):
assignment_user_email = models.CharField(max_length=255)
assignment_slug = models.CharField(max_length=255)
evaluation_user_email = models.CharField(max_length=255, blank=True, default="")
evaluation_grade = models.FloatField(null=True, blank=True)
evaluation_points = models.FloatField(null=True, blank=True)
evaluation_max_points = models.FloatField(null=True, blank=True)
evaluation_passed = models.BooleanField(null=True, blank=True)

View File

@ -19,6 +19,7 @@ class AssignmentCompletionSerializer(serializers.ModelSerializer):
"completion_data",
"evaluation_user",
"additional_json_data",
"evaluation_grade",
"evaluation_points",
"evaluation_max_points",
"evaluation_passed",
]

View File

@ -26,8 +26,8 @@ def update_assignment_completion(
completion_data=None,
completion_status: AssignmentCompletionStatus = AssignmentCompletionStatus.IN_PROGRESS,
evaluation_user: User | None = None,
evaluation_grade: float | None = None,
evaluation_points: float | None = None,
evaluation_passed: bool | None = None,
validate_completion_status_change: bool = True,
copy_task_data: bool = False,
initialize_completion: bool = False,
@ -119,12 +119,6 @@ def update_assignment_completion(
ac.evaluation_user = evaluation_user
if completion_status == AssignmentCompletionStatus.EVALUATION_SUBMITTED:
if evaluation_grade is None:
raise serializers.ValidationError(
{
"evaluation_grade": "evaluation_grade is required for EVALUATION_SUBMITTED status"
}
)
if evaluation_points is None:
raise serializers.ValidationError(
{
@ -132,9 +126,15 @@ def update_assignment_completion(
}
)
ac.evaluation_grade = evaluation_grade
ac.evaluation_max_points = assignment.get_max_points()
ac.evaluation_points = evaluation_points
# if no evaluation_passed is provided, we calculate it from the points
if evaluation_passed is None and evaluation_points is not None:
# if more or equal than 60% of the points are reached, the assignment is passed
# TODO: check with VBV if this is correct
ac.evaluation_passed = (evaluation_points / ac.evaluation_max_points) >= 0.6
if completion_status == AssignmentCompletionStatus.SUBMITTED:
ac.submitted_at = timezone.now()
if evaluation_user:
@ -192,6 +192,9 @@ def update_assignment_completion(
assignment_user_email=assignment_user.email,
assignment_slug=assignment.slug,
completion_data=deepcopy(ac.completion_data),
evaluation_points=evaluation_points,
evaluation_max_points=ac.evaluation_max_points,
evaluation_passed=ac.evaluation_passed,
)
if evaluation_user:
acl.evaluation_user_email = evaluation_user.email

View File

@ -330,7 +330,6 @@ class AttendanceCourseUserMutationTestCase(GraphQLTestCase):
course_session_id: {self.course_session.id}
completion_status: EVALUATION_SUBMITTED
completion_data_string: "{completion_data_string}"
evaluation_grade: 4.5,
evaluation_points: 16,
) {{
assignment_completion {{
@ -370,8 +369,9 @@ class AttendanceCourseUserMutationTestCase(GraphQLTestCase):
assignment_id=self.assignment.id,
)
self.assertEqual(db_entry.completion_status, "EVALUATION_SUBMITTED")
self.assertEqual(db_entry.evaluation_grade, 4.5)
self.assertEqual(db_entry.evaluation_points, 16)
self.assertEqual(db_entry.evaluation_max_points, 24)
self.assertTrue(db_entry.evaluation_passed)
self.assertDictEqual(
db_entry.completion_data,
{
@ -440,6 +440,9 @@ class AttendanceCourseUserMutationTestCase(GraphQLTestCase):
},
},
)
self.assertEqual(acl.evaluation_points, 16)
self.assertEqual(acl.evaluation_max_points, 24)
self.assertTrue(acl.evaluation_passed)
def test_student_can_upsert_reflection(self):
"""

View File

@ -478,7 +478,6 @@ class UpdateAssignmentCompletionTestCase(TestCase):
completion_data={},
completion_status=AssignmentCompletionStatus.EVALUATION_SUBMITTED,
evaluation_user=self.trainer,
evaluation_grade=None,
evaluation_points=None,
)
@ -489,7 +488,6 @@ class UpdateAssignmentCompletionTestCase(TestCase):
completion_data={},
completion_status=AssignmentCompletionStatus.EVALUATION_SUBMITTED,
evaluation_user=self.trainer,
evaluation_grade=4.5,
evaluation_points=16,
)
@ -500,8 +498,9 @@ class UpdateAssignmentCompletionTestCase(TestCase):
)
self.assertEqual(ac.completion_status, "EVALUATION_SUBMITTED")
self.assertEqual(ac.evaluation_grade, 4.5)
self.assertEqual(ac.evaluation_points, 16)
self.assertEqual(ac.evaluation_max_points, 24)
self.assertTrue(ac.evaluation_passed)
trainer_input = ac.completion_data[evaluation_task["id"]]
self.assertDictEqual(
trainer_input["expert_data"], {"points": 2, "text": "Gut gemacht!"}
@ -532,6 +531,9 @@ class UpdateAssignmentCompletionTestCase(TestCase):
self.assertDictEqual(
user_input["user_data"], {"text": "Ich würde nichts weiteres empfehlen."}
)
self.assertEqual(acl.evaluation_points, 16)
self.assertEqual(acl.evaluation_max_points, 24)
self.assertTrue(acl.evaluation_passed)
# AssignmentCompletionAuditLog entry will remain event after deletion of foreign keys
ac.delete()

View File

@ -20,8 +20,8 @@ def request_assignment_completion_status(request, assignment_id, course_session_
"id",
"assignment_user_id",
"completion_status",
"evaluation_grade",
"evaluation_points",
"evaluation_passed",
"learning_content_page_id",
)
return Response(status=200, data=qs)

View File

@ -271,7 +271,6 @@ def create_test_assignment_evaluation_data(
completion_data={},
completion_status=AssignmentCompletionStatus.EVALUATION_SUBMITTED,
evaluation_user=evaluation_user,
evaluation_grade=6,
evaluation_points=evaluation_points,
)
@ -288,7 +287,6 @@ def create_edoniq_test_result_data(
completion_data={},
completion_status=AssignmentCompletionStatus.EVALUATION_SUBMITTED,
evaluation_user=User.objects.get(username="admin"),
evaluation_grade=6,
evaluation_points=points,
)