Frontend: "Vorbereitungsauftrag"
This commit is contained in:
parent
951d9b42e6
commit
9be0ce9d39
|
|
@ -3,7 +3,7 @@
|
||||||
<div v-if="label" class="mb-2 block">{{ label }}</div>
|
<div v-if="label" class="mb-2 block">{{ label }}</div>
|
||||||
<textarea
|
<textarea
|
||||||
:value="modelValue"
|
:value="modelValue"
|
||||||
class="h-40 w-full border-gray-500"
|
class="h-40 w-full border-gray-500 placeholder-gray-800 placeholder-opacity-100"
|
||||||
:data-cy="`it-textarea-${cyKey}`"
|
:data-cy="`it-textarea-${cyKey}`"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:placeholder="placeholder"
|
:placeholder="placeholder"
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ import type { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-
|
||||||
const documents = {
|
const documents = {
|
||||||
"\n mutation SendFeedbackMutation($input: SendFeedbackInput!) {\n send_feedback(input: $input) {\n feedback_response {\n id\n }\n errors {\n field\n messages\n }\n }\n }\n": types.SendFeedbackMutationDocument,
|
"\n mutation SendFeedbackMutation($input: SendFeedbackInput!) {\n send_feedback(input: $input) {\n feedback_response {\n id\n }\n errors {\n field\n messages\n }\n }\n }\n": types.SendFeedbackMutationDocument,
|
||||||
"\n mutation UpsertAssignmentCompletion(\n $assignmentId: ID!\n $courseSessionId: ID!\n $assignmentUserId: ID\n $completionStatus: String!\n $completionDataString: String!\n $evaluationGrade: Float\n $evaluationPoints: Float\n ) {\n upsert_assignment_completion(\n assignment_id: $assignmentId\n course_session_id: $courseSessionId\n assignment_user_id: $assignmentUserId\n completion_status: $completionStatus\n completion_data_string: $completionDataString\n evaluation_grade: $evaluationGrade\n evaluation_points: $evaluationPoints\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 $assignmentUserId: ID\n $completionStatus: String!\n $completionDataString: String!\n $evaluationGrade: Float\n $evaluationPoints: Float\n ) {\n upsert_assignment_completion(\n assignment_id: $assignmentId\n course_session_id: $courseSessionId\n assignment_user_id: $assignmentUserId\n completion_status: $completionStatus\n completion_data_string: $completionDataString\n evaluation_grade: $evaluationGrade\n evaluation_points: $evaluationPoints\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 query assignmentCompletionQuery(\n $assignmentId: ID!\n $courseSessionId: ID!\n $assignmentUserId: ID\n ) {\n assignment(id: $assignmentId) {\n id\n content_type\n evaluation_description\n evaluation_document_url\n evaluation_tasks\n performance_objectives\n starting_position\n tasks\n title\n translation_key\n slug\n }\n assignment_completion(\n assignment_id: $assignmentId\n course_session_id: $courseSessionId\n assignment_user_id: $assignmentUserId\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 $assignmentUserId: ID\n ) {\n assignment(id: $assignmentId) {\n assignment_type\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 }\n assignment_completion(\n assignment_id: $assignmentId\n course_session_id: $courseSessionId\n assignment_user_id: $assignmentUserId\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 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 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,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -44,7 +44,7 @@ export function graphql(source: "\n mutation UpsertAssignmentCompletion(\n $
|
||||||
/**
|
/**
|
||||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
* 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 $assignmentUserId: ID\n ) {\n assignment(id: $assignmentId) {\n id\n content_type\n evaluation_description\n evaluation_document_url\n evaluation_tasks\n performance_objectives\n starting_position\n tasks\n title\n translation_key\n slug\n }\n assignment_completion(\n assignment_id: $assignmentId\n course_session_id: $courseSessionId\n assignment_user_id: $assignmentUserId\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 $assignmentUserId: ID\n ) {\n assignment(id: $assignmentId) {\n id\n content_type\n evaluation_description\n evaluation_document_url\n evaluation_tasks\n performance_objectives\n starting_position\n tasks\n title\n translation_key\n slug\n }\n assignment_completion(\n assignment_id: $assignmentId\n course_session_id: $courseSessionId\n assignment_user_id: $assignmentUserId\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 $assignmentUserId: ID\n ) {\n assignment(id: $assignmentId) {\n assignment_type\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 }\n assignment_completion(\n assignment_id: $assignmentId\n course_session_id: $courseSessionId\n assignment_user_id: $assignmentUserId\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 $assignmentUserId: ID\n ) {\n assignment(id: $assignmentId) {\n assignment_type\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 }\n assignment_completion(\n assignment_id: $assignmentId\n course_session_id: $courseSessionId\n assignment_user_id: $assignmentUserId\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"];
|
||||||
/**
|
/**
|
||||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,16 @@ export type Scalars = {
|
||||||
JSONString: any;
|
JSONString: any;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** An enumeration. */
|
||||||
|
export enum AssignmentAssignmentAssignmentTypeChoices {
|
||||||
|
/** CASEWORK */
|
||||||
|
Casework = 'CASEWORK',
|
||||||
|
/** PREP_ASSIGNMENT */
|
||||||
|
PrepAssignment = 'PREP_ASSIGNMENT',
|
||||||
|
/** REFLECTION */
|
||||||
|
Reflection = 'REFLECTION'
|
||||||
|
}
|
||||||
|
|
||||||
/** An enumeration. */
|
/** An enumeration. */
|
||||||
export enum AssignmentAssignmentCompletionCompletionStatusChoices {
|
export enum AssignmentAssignmentCompletionCompletionStatusChoices {
|
||||||
/** EVALUATION_IN_PROGRESS */
|
/** EVALUATION_IN_PROGRESS */
|
||||||
|
|
@ -70,6 +80,7 @@ export type AssignmentCompletionType = {
|
||||||
|
|
||||||
export type AssignmentType = CoursePageInterface & {
|
export type AssignmentType = CoursePageInterface & {
|
||||||
__typename?: 'AssignmentType';
|
__typename?: 'AssignmentType';
|
||||||
|
assignment_type: AssignmentAssignmentAssignmentTypeChoices;
|
||||||
content_type?: Maybe<Scalars['String']>;
|
content_type?: Maybe<Scalars['String']>;
|
||||||
/** Zeitaufwand als Text */
|
/** Zeitaufwand als Text */
|
||||||
effort_required: Scalars['String'];
|
effort_required: Scalars['String'];
|
||||||
|
|
@ -80,11 +91,11 @@ export type AssignmentType = CoursePageInterface & {
|
||||||
evaluation_tasks?: Maybe<Scalars['JSONStreamField']>;
|
evaluation_tasks?: Maybe<Scalars['JSONStreamField']>;
|
||||||
frontend_url?: Maybe<Scalars['String']>;
|
frontend_url?: Maybe<Scalars['String']>;
|
||||||
id?: Maybe<Scalars['ID']>;
|
id?: Maybe<Scalars['ID']>;
|
||||||
|
/** Erläuterung der Ausgangslage */
|
||||||
|
intro_text: Scalars['String'];
|
||||||
live?: Maybe<Scalars['Boolean']>;
|
live?: Maybe<Scalars['Boolean']>;
|
||||||
performance_objectives?: Maybe<Scalars['JSONStreamField']>;
|
performance_objectives?: Maybe<Scalars['JSONStreamField']>;
|
||||||
slug?: Maybe<Scalars['String']>;
|
slug?: Maybe<Scalars['String']>;
|
||||||
/** Erläuterung der Ausgangslage */
|
|
||||||
starting_position: Scalars['String'];
|
|
||||||
tasks?: Maybe<Scalars['JSONStreamField']>;
|
tasks?: Maybe<Scalars['JSONStreamField']>;
|
||||||
title?: Maybe<Scalars['String']>;
|
title?: Maybe<Scalars['String']>;
|
||||||
translation_key?: Maybe<Scalars['String']>;
|
translation_key?: Maybe<Scalars['String']>;
|
||||||
|
|
@ -273,7 +284,7 @@ export type AssignmentCompletionQueryQueryVariables = Exact<{
|
||||||
}>;
|
}>;
|
||||||
|
|
||||||
|
|
||||||
export type AssignmentCompletionQueryQuery = { __typename?: 'Query', assignment?: { __typename?: 'AssignmentType', id?: string | null, content_type?: string | null, evaluation_description: string, evaluation_document_url: string, evaluation_tasks?: any | null, performance_objectives?: any | null, starting_position: string, tasks?: any | null, title?: string | null, translation_key?: string | null, slug?: string | null } | null, assignment_completion?: { __typename?: 'AssignmentCompletionType', id: string, 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: string } | null, assignment_user: { __typename?: 'UserType', id: string } } | null };
|
export type AssignmentCompletionQueryQuery = { __typename?: 'Query', assignment?: { __typename?: 'AssignmentType', assignment_type: AssignmentAssignmentAssignmentTypeChoices, 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 } | null, assignment_completion?: { __typename?: 'AssignmentCompletionType', id: string, 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: string } | null, assignment_user: { __typename?: 'UserType', id: string } } | null };
|
||||||
|
|
||||||
export type CourseQueryQueryVariables = Exact<{
|
export type CourseQueryQueryVariables = Exact<{
|
||||||
courseId: Scalars['Int'];
|
courseId: Scalars['Int'];
|
||||||
|
|
@ -285,5 +296,5 @@ export type CourseQueryQuery = { __typename?: 'Query', course?: { __typename?: '
|
||||||
|
|
||||||
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":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"SendFeedbackInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"send_feedback"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"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":"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>;
|
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":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"SendFeedbackInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"send_feedback"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"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":"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>;
|
||||||
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":"assignmentUserId"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"completionStatus"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"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"}}}],"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":"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"}}}],"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":"assignmentUserId"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"completionStatus"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"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"}}}],"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":"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"}}}],"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 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":"assignmentUserId"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}],"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":"id"}},{"kind":"Field","name":{"kind":"Name","value":"content_type"}},{"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":"performance_objectives"}},{"kind":"Field","name":{"kind":"Name","value":"starting_position"}},{"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":"slug"}}]}},{"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"}}}],"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"}}]}}]}}]} 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":"assignmentUserId"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}],"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":"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":"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"}}}],"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"}}]}}]}}]} 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 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>;
|
||||||
|
|
@ -97,8 +97,10 @@ enum CoreUserLanguageChoices {
|
||||||
}
|
}
|
||||||
|
|
||||||
type AssignmentType implements CoursePageInterface {
|
type AssignmentType implements CoursePageInterface {
|
||||||
|
assignment_type: AssignmentAssignmentAssignmentTypeChoices!
|
||||||
|
|
||||||
"""Erläuterung der Ausgangslage"""
|
"""Erläuterung der Ausgangslage"""
|
||||||
starting_position: String!
|
intro_text: String!
|
||||||
|
|
||||||
"""Zeitaufwand als Text"""
|
"""Zeitaufwand als Text"""
|
||||||
effort_required: String!
|
effort_required: String!
|
||||||
|
|
@ -120,6 +122,18 @@ type AssignmentType implements CoursePageInterface {
|
||||||
performance_objectives: JSONStreamField
|
performance_objectives: JSONStreamField
|
||||||
}
|
}
|
||||||
|
|
||||||
|
"""An enumeration."""
|
||||||
|
enum AssignmentAssignmentAssignmentTypeChoices {
|
||||||
|
"""CASEWORK"""
|
||||||
|
CASEWORK
|
||||||
|
|
||||||
|
"""PREP_ASSIGNMENT"""
|
||||||
|
PREP_ASSIGNMENT
|
||||||
|
|
||||||
|
"""REFLECTION"""
|
||||||
|
REFLECTION
|
||||||
|
}
|
||||||
|
|
||||||
scalar JSONStreamField
|
scalar JSONStreamField
|
||||||
|
|
||||||
type AssignmentCompletionType {
|
type AssignmentCompletionType {
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,19 @@ export const ASSIGNMENT_COMPLETION_QUERY = graphql(`
|
||||||
$assignmentUserId: ID
|
$assignmentUserId: ID
|
||||||
) {
|
) {
|
||||||
assignment(id: $assignmentId) {
|
assignment(id: $assignmentId) {
|
||||||
id
|
assignment_type
|
||||||
content_type
|
content_type
|
||||||
|
effort_required
|
||||||
evaluation_description
|
evaluation_description
|
||||||
evaluation_document_url
|
evaluation_document_url
|
||||||
evaluation_tasks
|
evaluation_tasks
|
||||||
|
id
|
||||||
|
intro_text
|
||||||
performance_objectives
|
performance_objectives
|
||||||
starting_position
|
slug
|
||||||
tasks
|
tasks
|
||||||
title
|
title
|
||||||
translation_key
|
translation_key
|
||||||
slug
|
|
||||||
}
|
}
|
||||||
assignment_completion(
|
assignment_completion(
|
||||||
assignment_id: $assignmentId
|
assignment_id: $assignmentId
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,11 @@ async function startEvaluation() {
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<button class="btn-primary" data-cy="start-evaluation" @click="startEvaluation()">
|
<button
|
||||||
|
class="btn-primary text-large"
|
||||||
|
data-cy="start-evaluation"
|
||||||
|
@click="startEvaluation()"
|
||||||
|
>
|
||||||
<span
|
<span
|
||||||
v-if="
|
v-if="
|
||||||
props.assignmentCompletion.completion_status === 'EVALUATION_IN_PROGRESS'
|
props.assignmentCompletion.completion_status === 'EVALUATION_IN_PROGRESS'
|
||||||
|
|
|
||||||
|
|
@ -137,7 +137,7 @@ const evaluationUser = computed(() => {
|
||||||
Uhr
|
Uhr
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<button class="btn-primary" @click="submitEvaluation()">
|
<button class="btn-primary text-large" @click="submitEvaluation()">
|
||||||
Bewertung freigeben
|
Bewertung freigeben
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -153,7 +153,7 @@ const evaluationUser = computed(() => {
|
||||||
<div v-for="(task, index) in props.assignment.evaluation_tasks" :key="task.id">
|
<div v-for="(task, index) in props.assignment.evaluation_tasks" :key="task.id">
|
||||||
<article class="border-t py-4">
|
<article class="border-t py-4">
|
||||||
<div class="flex flex-row justify-between">
|
<div class="flex flex-row justify-between">
|
||||||
<div class="mb-4">
|
<div class="mb-4 text-gray-900">
|
||||||
Bewertungskriterium {{ index + 1 }}: {{ task.value.title }}
|
Bewertungskriterium {{ index + 1 }}: {{ task.value.title }}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
|
|
|
||||||
|
|
@ -66,9 +66,9 @@ const assignmentDetail = computed(() =>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<router-link :to="props.assignment.frontend_url" class="link">
|
<a :href="props.assignment.frontend_url" class="link" target="_blank">
|
||||||
Im Circle anzeigen
|
Im Circle anzeigen
|
||||||
</router-link>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mt-4">
|
<div class="mt-4">
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ onMounted(async () => {
|
||||||
{{ props.assignment.title }}
|
{{ props.assignment.title }}
|
||||||
</div>
|
</div>
|
||||||
<div><ItProgress :status-count="state.progressStatusCount" /></div>
|
<div><ItProgress :status-count="state.progressStatusCount" /></div>
|
||||||
<div>
|
<div class="text-gray-900" :class="{ 'text-gray-900': showTitle }">
|
||||||
{{ state.progressStatusCount.success || 0 }} von
|
{{ state.progressStatusCount.success || 0 }} von
|
||||||
{{
|
{{
|
||||||
(state.progressStatusCount.success || 0) +
|
(state.progressStatusCount.success || 0) +
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ const assignments = computed(() => {
|
||||||
<div>Geleitete Fallarbeiten</div>
|
<div>Geleitete Fallarbeiten</div>
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<div v-for="assignment in assignments" :key="assignment.id">
|
<div v-for="assignment in assignments" :key="assignment.id" class="mb-4">
|
||||||
<AssignmentSubmissionProgress
|
<AssignmentSubmissionProgress
|
||||||
:show-title="true"
|
:show-title="true"
|
||||||
:course-session="props.courseSession"
|
:course-session="props.courseSession"
|
||||||
|
|
|
||||||
|
|
@ -17,30 +17,25 @@ const step = useRouteQuery("step");
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<!-- eslint-disable vue/no-v-html -->
|
<!-- eslint-disable vue/no-v-html -->
|
||||||
<h3 class="mt-8">{{ $t("assignment.initialSituationTitle") }}</h3>
|
|
||||||
|
|
||||||
<p
|
<p
|
||||||
v-if="props.assignment.starting_position"
|
v-if="props.assignment.intro_text"
|
||||||
class="default-wagtail-rich-text text-large"
|
class="default-wagtail-rich-text text-large"
|
||||||
v-html="props.assignment.starting_position"
|
v-html="props.assignment.intro_text"
|
||||||
></p>
|
></p>
|
||||||
|
|
||||||
<h3 class="mt-8">{{ $t("assignment.taskDefinitionTitle") }}</h3>
|
<h3 class="mb-4 mt-8">{{ $t("assignment.taskDefinitionTitle") }}</h3>
|
||||||
<p class="text-large">
|
<p class="text-large">
|
||||||
{{ $t("assignment.taskDefinition") }}
|
{{ $t("assignment.taskDefinition") }}
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li v-for="(task, index) in props.assignment.tasks" :key="task.id">
|
<li v-for="(task, index) in props.assignment.tasks" :key="task.id" class="py-1">
|
||||||
<button
|
<button class="text-large link" @click="step = (index + 1).toString()">
|
||||||
class="text-large text-left underline"
|
|
||||||
@click="step = (index + 1).toString()"
|
|
||||||
>
|
|
||||||
- {{ task.value.title }}
|
- {{ task.value.title }}
|
||||||
</button>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h3 class="mt-8">{{ $t("assignment.dueDateTitle") }}</h3>
|
<h3 class="mb-4 mt-8">{{ $t("assignment.dueDateTitle") }}</h3>
|
||||||
<p v-if="props.dueDate" class="text-large">
|
<p v-if="props.dueDate" class="text-large">
|
||||||
{{
|
{{
|
||||||
$t("assignment.dueDateIntroduction", {
|
$t("assignment.dueDateIntroduction", {
|
||||||
|
|
@ -53,31 +48,44 @@ const step = useRouteQuery("step");
|
||||||
{{ $t("assignment.dueDateNotSet") }}
|
{{ $t("assignment.dueDateNotSet") }}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3 class="mt-8">{{ $t("assignment.effortTitle") }}</h3>
|
<div v-if="props.assignment.effort_required">
|
||||||
<p class="text-large">{{ props.assignment.effort_required }}</p>
|
<h3 class="mb-4 mt-8">{{ $t("assignment.effortTitle") }}</h3>
|
||||||
|
<p class="text-large">{{ props.assignment.effort_required }}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
<h3 class="mt-8 border-b border-gray-500 pb-2">
|
<div v-if="props.assignment.performance_objectives.length">
|
||||||
{{ $t("assignment.performanceObjectivesTitle") }}
|
<h3 class="mt-8 border-b border-gray-500 pb-4">
|
||||||
</h3>
|
{{ $t("assignment.performanceObjectivesTitle") }}
|
||||||
<p
|
</h3>
|
||||||
v-for="performance_objective in props.assignment.performance_objectives"
|
<p
|
||||||
:key="performance_objective.id"
|
v-for="performance_objective in props.assignment.performance_objectives"
|
||||||
class="text-large border-b border-gray-500 py-4"
|
:key="performance_objective.id"
|
||||||
>
|
class="text-large border-b border-gray-500 py-4"
|
||||||
{{ performance_objective.value.text }}
|
>
|
||||||
</p>
|
{{ performance_objective.value.text }}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
<h3 class="mt-8">{{ $t("assignment.assessmentTitle") }}</h3>
|
<div
|
||||||
<p
|
v-if="
|
||||||
v-if="props.assignment.evaluation_description"
|
props.assignment.evaluation_description ||
|
||||||
class="default-wagtail-rich-text text-large"
|
props.assignment.evaluation_document_url
|
||||||
v-html="props.assignment.evaluation_description"
|
"
|
||||||
></p>
|
|
||||||
<a
|
|
||||||
:href="props.assignment.evaluation_document_url"
|
|
||||||
target="_blank"
|
|
||||||
class="text-large link"
|
|
||||||
>
|
>
|
||||||
{{ $t("assignment.showAssessmentDocument") }}
|
<h3 class="mb-4 mt-8">{{ $t("assignment.assessmentTitle") }}</h3>
|
||||||
</a>
|
<p
|
||||||
|
v-if="props.assignment.evaluation_description"
|
||||||
|
class="default-wagtail-rich-text text-large"
|
||||||
|
v-html="props.assignment.evaluation_description"
|
||||||
|
></p>
|
||||||
|
<p v-if="props.assignment.evaluation_document_url">
|
||||||
|
<a
|
||||||
|
:href="props.assignment.evaluation_document_url"
|
||||||
|
target="_blank"
|
||||||
|
class="text-large link"
|
||||||
|
>
|
||||||
|
{{ $t("assignment.showAssessmentDocument") }}
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import AssignmentIntroductionView from "@/pages/learningPath/learningContentPage
|
||||||
import AssignmentSubmissionView from "@/pages/learningPath/learningContentPage/assignment/AssignmentSubmissionView.vue";
|
import AssignmentSubmissionView from "@/pages/learningPath/learningContentPage/assignment/AssignmentSubmissionView.vue";
|
||||||
import AssignmentTaskView from "@/pages/learningPath/learningContentPage/assignment/AssignmentTaskView.vue";
|
import AssignmentTaskView from "@/pages/learningPath/learningContentPage/assignment/AssignmentTaskView.vue";
|
||||||
import LearningContentMultiLayout from "@/pages/learningPath/learningContentPage/layouts/LearningContentMultiLayout.vue";
|
import LearningContentMultiLayout from "@/pages/learningPath/learningContentPage/layouts/LearningContentMultiLayout.vue";
|
||||||
|
import { useCourseSessionsStore } from "@/stores/courseSessions";
|
||||||
import { useUserStore } from "@/stores/user";
|
import { useUserStore } from "@/stores/user";
|
||||||
import type {
|
import type {
|
||||||
Assignment,
|
Assignment,
|
||||||
|
|
@ -75,6 +76,10 @@ onMounted(async () => {
|
||||||
props.learningContent
|
props.learningContent
|
||||||
);
|
);
|
||||||
|
|
||||||
|
state.courseSessionAssignmentDetails = useCourseSessionsStore().findAssignmentDetails(
|
||||||
|
props.learningContent.id
|
||||||
|
);
|
||||||
|
|
||||||
// create initial `AssignmentCompletion` first, so that it exists and we don't
|
// create initial `AssignmentCompletion` first, so that it exists and we don't
|
||||||
// have reactivity problem accessing it.
|
// have reactivity problem accessing it.
|
||||||
// noinspection TypeScriptValidateTypes
|
// noinspection TypeScriptValidateTypes
|
||||||
|
|
@ -102,7 +107,12 @@ onMounted(async () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
const numTasks = computed(() => assignment.value?.tasks?.length ?? 0);
|
const numTasks = computed(() => assignment.value?.tasks?.length ?? 0);
|
||||||
const numPages = computed(() => numTasks.value + 2);
|
const numPages = computed(() => {
|
||||||
|
if (assignmentType.value === "PREP_ASSIGNMENT") {
|
||||||
|
return numTasks.value + 1;
|
||||||
|
}
|
||||||
|
return numTasks.value + 2;
|
||||||
|
});
|
||||||
const showPreviousButton = computed(() => stepIndex.value != 0);
|
const showPreviousButton = computed(() => stepIndex.value != 0);
|
||||||
const showNextButton = computed(() => stepIndex.value + 1 < numPages.value);
|
const showNextButton = computed(() => stepIndex.value + 1 < numPages.value);
|
||||||
const showExitButton = computed(() => numPages.value === stepIndex.value + 1);
|
const showExitButton = computed(() => numPages.value === stepIndex.value + 1);
|
||||||
|
|
@ -144,17 +154,42 @@ const jumpToTask = (task: AssignmentTask) => {
|
||||||
const getTitle = () => {
|
const getTitle = () => {
|
||||||
if (0 === stepIndex.value) {
|
if (0 === stepIndex.value) {
|
||||||
return t("general.introduction");
|
return t("general.introduction");
|
||||||
} else if (stepIndex.value === numPages.value - 1) {
|
} else if (
|
||||||
|
assignmentType.value === "CASEWORK" &&
|
||||||
|
stepIndex.value === numPages.value - 1
|
||||||
|
) {
|
||||||
return t("general.submission");
|
return t("general.submission");
|
||||||
}
|
}
|
||||||
return currentTask?.value?.value.title ?? "Unknown";
|
return currentTask?.value?.value.title ?? "Unknown";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const assignmentType = computed(() => {
|
||||||
|
return assignment.value?.assignment_type ?? "CASEWORK";
|
||||||
|
});
|
||||||
|
|
||||||
|
const subTitle = computed(() => {
|
||||||
|
if (assignment.value) {
|
||||||
|
let prefix = "Geleitete Fallarbeit";
|
||||||
|
if (assignmentType.value === "PREP_ASSIGNMENT") {
|
||||||
|
prefix = "Vorbereitungsauftrag";
|
||||||
|
}
|
||||||
|
return `${prefix}: ${assignment.value?.title ?? ""}`;
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
});
|
||||||
|
|
||||||
const assignmentUser = computed(() => {
|
const assignmentUser = computed(() => {
|
||||||
return courseSession.value.users.find(
|
return courseSession.value.users.find(
|
||||||
(user) => user.user_id === Number(userStore.id)
|
(user) => user.user_id === Number(userStore.id)
|
||||||
) as CourseSessionUser;
|
) as CourseSessionUser;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const endBadgeText = computed(() => {
|
||||||
|
if (assignmentType.value === "PREP_ASSIGNMENT") {
|
||||||
|
return "Aufgaben";
|
||||||
|
}
|
||||||
|
return "Abgabe";
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
|
@ -162,7 +197,7 @@ const assignmentUser = computed(() => {
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
<LearningContentMultiLayout
|
<LearningContentMultiLayout
|
||||||
:current-step="stepIndex"
|
:current-step="stepIndex"
|
||||||
:subtitle="assignment.title ?? ''"
|
:subtitle="subTitle"
|
||||||
:title="getTitle()"
|
:title="getTitle()"
|
||||||
:learning-content-type="props.learningContent.content_type"
|
:learning-content-type="props.learningContent.content_type"
|
||||||
:steps-count="numPages"
|
:steps-count="numPages"
|
||||||
|
|
@ -173,7 +208,7 @@ const assignmentUser = computed(() => {
|
||||||
:base-url="props.learningContent.frontend_url"
|
:base-url="props.learningContent.frontend_url"
|
||||||
step-query-param="step"
|
step-query-param="step"
|
||||||
start-badge-text="Einleitung"
|
start-badge-text="Einleitung"
|
||||||
end-badge-text="Abgabe"
|
:end-badge-text="endBadgeText"
|
||||||
close-button-variant="close"
|
close-button-variant="close"
|
||||||
@previous="handleBack()"
|
@previous="handleBack()"
|
||||||
@next="handleContinue()"
|
@next="handleContinue()"
|
||||||
|
|
@ -186,13 +221,13 @@ const assignmentUser = computed(() => {
|
||||||
:assignment="assignment"
|
:assignment="assignment"
|
||||||
></AssignmentIntroductionView>
|
></AssignmentIntroductionView>
|
||||||
<AssignmentTaskView
|
<AssignmentTaskView
|
||||||
v-if="currentTask"
|
v-else-if="currentTask"
|
||||||
:task="currentTask"
|
:task="currentTask"
|
||||||
:assignment-id="props.learningContent.content_assignment_id"
|
:assignment-id="props.learningContent.content_assignment_id"
|
||||||
:assignment-completion="assignmentCompletion"
|
:assignment-completion="assignmentCompletion"
|
||||||
></AssignmentTaskView>
|
></AssignmentTaskView>
|
||||||
<AssignmentSubmissionView
|
<AssignmentSubmissionView
|
||||||
v-if="stepIndex + 1 === numPages"
|
v-else-if="assignmentType === 'CASEWORK' && stepIndex + 1 === numPages"
|
||||||
:due-date="dueDate"
|
:due-date="dueDate"
|
||||||
:assignment="assignment"
|
:assignment="assignment"
|
||||||
:assignment-completion="assignmentCompletion"
|
:assignment-completion="assignmentCompletion"
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ const emit = defineEmits(["previous", "next", "exit"]);
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h2 v-if="props.title" class="pb-6 text-3xl" data-cy="lc-title">
|
<h2 v-if="props.title" class="mb-6 text-3xl" data-cy="lc-title">
|
||||||
{{ props.title }}
|
{{ props.title }}
|
||||||
</h2>
|
</h2>
|
||||||
<ItNavigationProgress
|
<ItNavigationProgress
|
||||||
|
|
@ -61,7 +61,7 @@ const emit = defineEmits(["previous", "next", "exit"]);
|
||||||
:end-badge-text="props.endBadgeText"
|
:end-badge-text="props.endBadgeText"
|
||||||
:base-url="props.baseUrl"
|
:base-url="props.baseUrl"
|
||||||
:query-param="props.stepQueryParam"
|
:query-param="props.stepQueryParam"
|
||||||
class="overflow-hidden pb-12"
|
class="mb-8 overflow-hidden"
|
||||||
></ItNavigationProgress>
|
></ItNavigationProgress>
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,9 @@ export function calcAssignmentLearningContents(learningPath?: LearningPath) {
|
||||||
|
|
||||||
return learningPath.circles.flatMap((circle) => {
|
return learningPath.circles.flatMap((circle) => {
|
||||||
const learningContents = circle.flatLearningContents.filter(
|
const learningContents = circle.flatLearningContents.filter(
|
||||||
(lc) => lc.content_type === "learnpath.LearningContentAssignment"
|
(lc) =>
|
||||||
|
lc.content_type === "learnpath.LearningContentAssignment" &&
|
||||||
|
lc.assignment_type === "CASEWORK"
|
||||||
) as LearningContentAssignment[];
|
) as LearningContentAssignment[];
|
||||||
return learningContents.map((lc) => {
|
return learningContents.map((lc) => {
|
||||||
return {
|
return {
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,7 @@ export interface LearningContentInterface extends BaseCourseWagtailPage {
|
||||||
export interface LearningContentAssignment extends LearningContentInterface {
|
export interface LearningContentAssignment extends LearningContentInterface {
|
||||||
readonly content_type: "learnpath.LearningContentAssignment";
|
readonly content_type: "learnpath.LearningContentAssignment";
|
||||||
readonly content_assignment_id: number;
|
readonly content_assignment_id: number;
|
||||||
|
readonly assignment_type: AssignmentType;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface LearningContentAttendanceCourse extends LearningContentInterface {
|
export interface LearningContentAttendanceCourse extends LearningContentInterface {
|
||||||
|
|
@ -326,9 +327,12 @@ export interface AssignmentEvaluationTask {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export type AssignmentType = "CASEWORK" | "PREP_ASSIGNMENT" | "REFLECTION";
|
||||||
|
|
||||||
export interface Assignment extends BaseCourseWagtailPage {
|
export interface Assignment extends BaseCourseWagtailPage {
|
||||||
readonly content_type: "assignment.Assignment";
|
readonly content_type: "assignment.Assignment";
|
||||||
readonly starting_position: string;
|
readonly assignment_type: AssignmentType;
|
||||||
|
readonly intro_text: string;
|
||||||
readonly effort_required: string;
|
readonly effort_required: string;
|
||||||
readonly performance_objectives: AssignmentPerformanceObjective[];
|
readonly performance_objectives: AssignmentPerformanceObjective[];
|
||||||
readonly evaluation_description: string;
|
readonly evaluation_description: string;
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ export function learningContentTypeData(
|
||||||
): LearningContentIdentifier {
|
): LearningContentIdentifier {
|
||||||
switch (t) {
|
switch (t) {
|
||||||
case "learnpath.LearningContentAssignment":
|
case "learnpath.LearningContentAssignment":
|
||||||
return { title: "Transferauftrag", icon: "it-icon-lc-assignment" };
|
return { title: "Geleitete Fallarbeit", icon: "it-icon-lc-assignment" };
|
||||||
case "learnpath.LearningContentAttendanceCourse":
|
case "learnpath.LearningContentAttendanceCourse":
|
||||||
return { title: "Präsenzkurs", icon: "it-icon-lc-training" };
|
return { title: "Präsenzkurs", icon: "it-icon-lc-training" };
|
||||||
case "learnpath.LearningContentLearningModule":
|
case "learnpath.LearningContentLearningModule":
|
||||||
|
|
|
||||||
|
|
@ -29,12 +29,18 @@ body {
|
||||||
|
|
||||||
.default-wagtail-rich-text h3 {
|
.default-wagtail-rich-text h3 {
|
||||||
margin-bottom: 1em;
|
margin-bottom: 1em;
|
||||||
|
margin-top: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.default-wagtail-rich-text p {
|
.default-wagtail-rich-text p {
|
||||||
margin-bottom: 0.5em;
|
margin-bottom: 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.default-wagtail-rich-text a {
|
||||||
|
text-decoration-line: underline;
|
||||||
|
text-underline-offset: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
.default-wagtail-rich-text ul {
|
.default-wagtail-rich-text ul {
|
||||||
list-style-type: disc;
|
list-style-type: disc;
|
||||||
margin-left: 24px;
|
margin-left: 24px;
|
||||||
|
|
@ -129,7 +135,7 @@ textarea {
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-secondary {
|
.btn-secondary {
|
||||||
@apply inline-block border-2 border-blue-900 bg-white px-4
|
@apply inline-block border-2 border-blue-900 bg-transparent px-4
|
||||||
py-2 align-middle font-semibold text-blue-900
|
py-2 align-middle font-semibold text-blue-900
|
||||||
hover:bg-gray-200
|
hover:bg-gray-200
|
||||||
disabled:cursor-not-allowed disabled:opacity-50;
|
disabled:cursor-not-allowed disabled:opacity-50;
|
||||||
|
|
|
||||||
|
|
@ -27,13 +27,16 @@ def create_uk_casework(assignment_list_page, course_id=COURSE_UK):
|
||||||
parent=assignment_list_page,
|
parent=assignment_list_page,
|
||||||
title="Überprüfen einer Motorfahrzeugs-Versicherungspolice",
|
title="Überprüfen einer Motorfahrzeugs-Versicherungspolice",
|
||||||
effort_required="ca. 5 Stunden",
|
effort_required="ca. 5 Stunden",
|
||||||
starting_position=replace_whitespace(
|
intro_text=replace_whitespace(
|
||||||
"""
|
"""
|
||||||
|
<h3>Ausgangslage</h3>
|
||||||
|
<p>
|
||||||
Jemand aus deiner Familie oder aus deinem Freundeskreis möchte sein
|
Jemand aus deiner Familie oder aus deinem Freundeskreis möchte sein
|
||||||
Versicherungspolice überprüfen lassen. Diese Person kommt nun mit ihrer Police auf dich zu
|
Versicherungspolice überprüfen lassen. Diese Person kommt nun mit ihrer Police auf dich zu
|
||||||
und bittet dich als Versicherungsprofi, diese kritisch zu überprüfen und ihr ggf. Anpassungsvorschläge
|
und bittet dich als Versicherungsprofi, diese kritisch zu überprüfen und ihr ggf. Anpassungsvorschläge
|
||||||
zu unterbreiten. In diesem Kompetenznachweis kannst du nun dein Wissen und Können im Bereich
|
zu unterbreiten. In diesem Kompetenznachweis kannst du nun dein Wissen und Können im Bereich
|
||||||
der Motorfahrzeugversicherung unter Beweis stellen.
|
der Motorfahrzeugversicherung unter Beweis stellen.
|
||||||
|
</p>
|
||||||
"""
|
"""
|
||||||
),
|
),
|
||||||
performance_objectives=[
|
performance_objectives=[
|
||||||
|
|
@ -466,7 +469,7 @@ def create_test_assignment(course_id=COURSE_TEST_ID):
|
||||||
parent=assignment_page,
|
parent=assignment_page,
|
||||||
title="Überprüfen einer Motorfahrzeugs-Versicherungspolice",
|
title="Überprüfen einer Motorfahrzeugs-Versicherungspolice",
|
||||||
effort_required="ca. 5 Stunden",
|
effort_required="ca. 5 Stunden",
|
||||||
starting_position=replace_whitespace(
|
intro_text=replace_whitespace(
|
||||||
"""
|
"""
|
||||||
Jemand aus deiner Familie oder aus deinem Freundeskreis möchte sein
|
Jemand aus deiner Familie oder aus deinem Freundeskreis möchte sein
|
||||||
Versicherungspolice überprüfen lassen. Diese Person kommt nun mit ihrer Police auf dich zu
|
Versicherungspolice überprüfen lassen. Diese Person kommt nun mit ihrer Police auf dich zu
|
||||||
|
|
@ -901,7 +904,7 @@ def create_uk_prep_assignment(assignment_list_page, course_id=COURSE_UK):
|
||||||
assignment_type=AssignmentType.PREP_ASSIGNMENT.name,
|
assignment_type=AssignmentType.PREP_ASSIGNMENT.name,
|
||||||
title="Fahrzeug - Mein erstes Auto",
|
title="Fahrzeug - Mein erstes Auto",
|
||||||
effort_required="ca. 3 Stunden",
|
effort_required="ca. 3 Stunden",
|
||||||
starting_position=replace_whitespace(
|
intro_text=replace_whitespace(
|
||||||
"""
|
"""
|
||||||
<h3>Handlungskompetenzen, Arbeitssituationen & Leistungsziele</h3>
|
<h3>Handlungskompetenzen, Arbeitssituationen & Leistungsziele</h3>
|
||||||
<p>
|
<p>
|
||||||
|
|
@ -1128,6 +1131,76 @@ def create_uk_prep_assignment(assignment_list_page, course_id=COURSE_UK):
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
assignment.tasks.append(
|
||||||
|
(
|
||||||
|
"task",
|
||||||
|
TaskBlockFactory(
|
||||||
|
title="Aufgaben zum Vorbereitungsauftrag",
|
||||||
|
content=StreamValue(
|
||||||
|
TaskContentStreamBlock(),
|
||||||
|
stream_data=[
|
||||||
|
(
|
||||||
|
"explanation",
|
||||||
|
ExplanationBlockFactory(
|
||||||
|
text=RichText(
|
||||||
|
"Schnappt euch euren Vorbereitungsauftrag und setzt euch zu dritt zusammen. Diskutiert miteinander die folgenden Fragen."
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"user_text_input",
|
||||||
|
UserTextInputBlockFactory(
|
||||||
|
text=RichText(
|
||||||
|
"Wie seid ihr bei der Erstellung der Offerte vorgegangen?"
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"user_text_input",
|
||||||
|
UserTextInputBlockFactory(
|
||||||
|
text=RichText(
|
||||||
|
"Welches waren die Schwierigkeiten bei der Erstellung der Offerte? Wie hast du die Schwierigkeiten gelöst?"
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"user_text_input",
|
||||||
|
UserTextInputBlockFactory(
|
||||||
|
text=RichText(
|
||||||
|
"Welche Angaben sind zwingend notwendig, um eine saubere Motorfahrzeugofferte erstellen zu können?"
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"user_text_input",
|
||||||
|
UserTextInputBlockFactory(
|
||||||
|
text=RichText(
|
||||||
|
"Welche zusätzlichen Deckungen hast du gewählt? Was waren die Überlegungen dazu?"
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"user_text_input",
|
||||||
|
UserTextInputBlockFactory(
|
||||||
|
text=RichText(
|
||||||
|
"Welche Faktoren/Elemente bestimmen hauptsächlich die Höhe der Prämie?"
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"user_text_input",
|
||||||
|
UserTextInputBlockFactory(
|
||||||
|
text=RichText(
|
||||||
|
"Wenn ihr mit der Diskussion und dem Vergleich fertig seid, schreibt doch die Prämie eurer eigenen Offerte jeweils auf den Flipchart/Whiteboard/Wandtafel."
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
assignment.save()
|
assignment.save()
|
||||||
|
|
||||||
return assignment
|
return assignment
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,8 @@ class AssignmentType(DjangoObjectType):
|
||||||
model = Assignment
|
model = Assignment
|
||||||
interfaces = (CoursePageInterface,)
|
interfaces = (CoursePageInterface,)
|
||||||
fields = (
|
fields = (
|
||||||
"starting_position",
|
"assignment_type",
|
||||||
|
"intro_text",
|
||||||
"effort_required",
|
"effort_required",
|
||||||
"evaluation_description",
|
"evaluation_description",
|
||||||
"evaluation_document_url",
|
"evaluation_document_url",
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
initial = True
|
initial = True
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
|
@ -30,7 +29,7 @@ class Migration(migrations.Migration):
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
"starting_position",
|
"intro_text",
|
||||||
wagtail.fields.RichTextField(
|
wagtail.fields.RichTextField(
|
||||||
help_text="Erläuterung der Ausgangslage"
|
help_text="Erläuterung der Ausgangslage"
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,7 @@ AssignmentType = Enum(
|
||||||
|
|
||||||
class Assignment(CourseBasePage):
|
class Assignment(CourseBasePage):
|
||||||
serialize_field_names = [
|
serialize_field_names = [
|
||||||
"starting_position",
|
"intro_text",
|
||||||
"effort_required",
|
"effort_required",
|
||||||
"performance_objectives",
|
"performance_objectives",
|
||||||
"evaluation_description",
|
"evaluation_description",
|
||||||
|
|
@ -134,7 +134,7 @@ class Assignment(CourseBasePage):
|
||||||
default=AssignmentType.CASEWORK.name,
|
default=AssignmentType.CASEWORK.name,
|
||||||
)
|
)
|
||||||
|
|
||||||
starting_position = RichTextField(
|
intro_text = RichTextField(
|
||||||
help_text="Erläuterung der Ausgangslage",
|
help_text="Erläuterung der Ausgangslage",
|
||||||
features=DEFAULT_RICH_TEXT_FEATURES_WITH_HEADER,
|
features=DEFAULT_RICH_TEXT_FEATURES_WITH_HEADER,
|
||||||
)
|
)
|
||||||
|
|
@ -182,7 +182,7 @@ class Assignment(CourseBasePage):
|
||||||
|
|
||||||
content_panels = Page.content_panels + [
|
content_panels = Page.content_panels + [
|
||||||
FieldPanel("assignment_type"),
|
FieldPanel("assignment_type"),
|
||||||
FieldPanel("starting_position"),
|
FieldPanel("intro_text"),
|
||||||
FieldPanel("effort_required"),
|
FieldPanel("effort_required"),
|
||||||
FieldPanel("performance_objectives"),
|
FieldPanel("performance_objectives"),
|
||||||
FieldPanel("tasks"),
|
FieldPanel("tasks"),
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,7 @@ class PerformanceObjectiveBlockFactory(wagtail_factories.StructBlockFactory):
|
||||||
|
|
||||||
class AssignmentFactory(wagtail_factories.PageFactory):
|
class AssignmentFactory(wagtail_factories.PageFactory):
|
||||||
title = "Auftrag"
|
title = "Auftrag"
|
||||||
starting_position = replace_whitespace(
|
intro_text = replace_whitespace(
|
||||||
"""
|
"""
|
||||||
Jemand aus deiner Familie oder aus deinem Freundeskreis möchte sein
|
Jemand aus deiner Familie oder aus deinem Freundeskreis möchte sein
|
||||||
Versicherungspolice überprüfen lassen. Diese Person kommt nun mit ihrer Police auf dich zu
|
Versicherungspolice überprüfen lassen. Diese Person kommt nun mit ihrer Police auf dich zu
|
||||||
|
|
|
||||||
|
|
@ -225,10 +225,14 @@ damit du erfolgreich mit deinem Lernpfad (durch-)starten kannst.
|
||||||
),
|
),
|
||||||
content_url=f"/course/{lp.get_course().slug}/media/category/{slugify(title)}",
|
content_url=f"/course/{lp.get_course().slug}/media/category/{slugify(title)}",
|
||||||
)
|
)
|
||||||
LearningContentPlaceholderFactory(
|
LearningContentAssignmentFactory(
|
||||||
title="Vorbereitungsauftrag",
|
title="Fahrzeug - Mein erstes Auto",
|
||||||
|
assignment_type="PREP_ASSIGNMENT",
|
||||||
parent=circle,
|
parent=circle,
|
||||||
)
|
content_assignment=Assignment.objects.get(
|
||||||
|
slug__startswith="überbetriebliche-kurse-assignment-fahrzeug-mein-erstes-auto"
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
PerformanceCriteriaFactory(
|
PerformanceCriteriaFactory(
|
||||||
parent=CompetencePage.objects.get(competence_id="X1"),
|
parent=CompetencePage.objects.get(competence_id="X1"),
|
||||||
|
|
|
||||||
|
|
@ -187,7 +187,14 @@ def create_course_uk_de():
|
||||||
).id,
|
).id,
|
||||||
"submissionDeadlineDateTimeUtc": "2023-06-13T19:00:00Z",
|
"submissionDeadlineDateTimeUtc": "2023-06-13T19:00:00Z",
|
||||||
"evaluationDeadlineDateTimeUtc": "2023-06-27T19:00:00Z",
|
"evaluationDeadlineDateTimeUtc": "2023-06-27T19:00:00Z",
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
"learningContentId": LearningContentAssignment.objects.get(
|
||||||
|
slug="überbetriebliche-kurse-lp-circle-fahrzeug-lc-fahrzeug-mein-erstes-auto"
|
||||||
|
).id,
|
||||||
|
"submissionDeadlineDateTimeUtc": "2023-06-13T19:00:00Z",
|
||||||
|
"evaluationDeadlineDateTimeUtc": "2023-06-27T19:00:00Z",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -243,10 +243,14 @@ damit du erfolgreich mit deinem Lernpfad (durch-)starten kannst.
|
||||||
),
|
),
|
||||||
content_url=f"/course/überbetriebliche-kurse/media/category/{slugify(title)}",
|
content_url=f"/course/überbetriebliche-kurse/media/category/{slugify(title)}",
|
||||||
)
|
)
|
||||||
LearningContentPlaceholderFactory(
|
LearningContentAssignmentFactory(
|
||||||
title="Vorbereitungsauftrag",
|
title="Fahrzeug - Mein erstes Auto",
|
||||||
|
assignment_type="PREP_ASSIGNMENT",
|
||||||
parent=circle,
|
parent=circle,
|
||||||
)
|
content_assignment=Assignment.objects.get(
|
||||||
|
slug__startswith="überbetriebliche-kurse-assignment-fahrzeug-mein-erstes-auto"
|
||||||
|
),
|
||||||
|
),
|
||||||
LearningSequenceFactory(title="Training", parent=circle)
|
LearningSequenceFactory(title="Training", parent=circle)
|
||||||
LearningUnitFactory(title="Unterlagen", parent=circle)
|
LearningUnitFactory(title="Unterlagen", parent=circle)
|
||||||
LearningContentPlaceholderFactory(
|
LearningContentPlaceholderFactory(
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
# Generated by Django 3.2.13 on 2023-05-19 15:21
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('learnpath', '0002_learningcontentrichtext_text'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='learningcontentassignment',
|
||||||
|
name='assignment_type',
|
||||||
|
field=models.CharField(choices=[('CASEWORK', 'CASEWORK'), ('PREP_ASSIGNMENT', 'PREP_ASSIGNMENT'), ('REFLECTION', 'REFLECTION')], default='CASEWORK', max_length=50),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -6,6 +6,7 @@ from wagtail.admin.panels import FieldPanel, PageChooserPanel
|
||||||
from wagtail.fields import RichTextField
|
from wagtail.fields import RichTextField
|
||||||
from wagtail.models import Page
|
from wagtail.models import Page
|
||||||
|
|
||||||
|
from vbv_lernwelt.assignment.models import AssignmentType
|
||||||
from vbv_lernwelt.core.constants import DEFAULT_RICH_TEXT_FEATURES_WITH_HEADER
|
from vbv_lernwelt.core.constants import DEFAULT_RICH_TEXT_FEATURES_WITH_HEADER
|
||||||
from vbv_lernwelt.core.model_utils import find_available_slug
|
from vbv_lernwelt.core.model_utils import find_available_slug
|
||||||
from vbv_lernwelt.course.models import CourseBasePage, CoursePage
|
from vbv_lernwelt.course.models import CourseBasePage, CoursePage
|
||||||
|
|
@ -322,6 +323,7 @@ class LearningContentRichText(LearningContent):
|
||||||
class LearningContentAssignment(LearningContent):
|
class LearningContentAssignment(LearningContent):
|
||||||
serialize_field_names = LearningContent.serialize_field_names + [
|
serialize_field_names = LearningContent.serialize_field_names + [
|
||||||
"content_assignment_id",
|
"content_assignment_id",
|
||||||
|
"assignment_type",
|
||||||
]
|
]
|
||||||
parent_page_types = ["learnpath.Circle"]
|
parent_page_types = ["learnpath.Circle"]
|
||||||
subpage_types = []
|
subpage_types = []
|
||||||
|
|
@ -332,6 +334,12 @@ class LearningContentAssignment(LearningContent):
|
||||||
related_name="+",
|
related_name="+",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
assignment_type = models.CharField(
|
||||||
|
max_length=50,
|
||||||
|
choices=[(tag.name, tag.name) for tag in AssignmentType],
|
||||||
|
default=AssignmentType.CASEWORK.name,
|
||||||
|
)
|
||||||
|
|
||||||
content_panels = [
|
content_panels = [
|
||||||
FieldPanel("title", classname="full title"),
|
FieldPanel("title", classname="full title"),
|
||||||
FieldPanel("minutes"),
|
FieldPanel("minutes"),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue