Use deducted and final points in frontend
This commit is contained in:
parent
f71e2e6ff3
commit
401c44dbc7
|
|
@ -139,7 +139,7 @@ const userPoints = computed(() =>
|
||||||
{{ $t("assignment.von x Punkten", { x: maxPoints }) }}
|
{{ $t("assignment.von x Punkten", { x: maxPoints }) }}
|
||||||
({{
|
({{
|
||||||
(
|
(
|
||||||
((props.assignmentCompletion?.evaluation_points ?? 0) /
|
((props.assignmentCompletion?.evaluation_points_final ?? 0) /
|
||||||
(props.assignmentCompletion?.evaluation_max_points ?? 1)) *
|
(props.assignmentCompletion?.evaluation_max_points ?? 1)) *
|
||||||
100
|
100
|
||||||
).toFixed(0)
|
).toFixed(0)
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,8 @@ const 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 $evaluationUserId: ID\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 evaluation_user_id: $evaluationUserId\n ) {\n assignment_completion {\n id\n completion_status\n submitted_at\n evaluation_submitted_at\n evaluation_points\n completion_data\n task_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 $evaluationUserId: ID\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 evaluation_user_id: $evaluationUserId\n ) {\n assignment_completion {\n id\n completion_status\n submitted_at\n evaluation_submitted_at\n evaluation_points\n completion_data\n task_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 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 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 needs_expert_evaluation\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 solution_sample {\n id\n url\n }\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 first_name\n last_name\n }\n assignment_user {\n avatar_url\n first_name\n last_name\n id\n }\n evaluation_points\n evaluation_max_points\n evaluation_passed\n edoniq_extended_time_flag\n completion_data\n task_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 needs_expert_evaluation\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 solution_sample {\n id\n url\n }\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 first_name\n last_name\n }\n assignment_user {\n avatar_url\n first_name\n last_name\n id\n }\n evaluation_points\n evaluation_max_points\n evaluation_points_deducted\n evaluation_points_deducted_reason\n evaluation_points_final\n\n evaluation_passed\n edoniq_extended_time_flag\n completion_data\n task_completion_data\n }\n }\n": types.AssignmentCompletionQueryDocument,
|
||||||
"\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 competence_certificate_weight\n completion(course_session_id: $courseSessionId) {\n id\n completion_status\n submitted_at\n evaluation_points\n evaluation_max_points\n evaluation_passed\n }\n learning_content {\n ...CoursePageFields\n circle {\n id\n title\n slug\n }\n }\n }\n }\n }\n }\n": types.CompetenceCertificateQueryDocument,
|
"\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 competence_certificate_weight\n completion(course_session_id: $courseSessionId) {\n id\n completion_status\n submitted_at\n evaluation_points\n evaluation_points_deducted\n evaluation_points_final\n evaluation_max_points\n evaluation_passed\n }\n learning_content {\n ...CoursePageFields\n circle {\n id\n title\n slug\n }\n }\n }\n }\n }\n }\n": types.CompetenceCertificateQueryDocument,
|
||||||
"\n query competenceCertificateForUserQuery(\n $courseSlug: String!\n $courseSessionId: ID!\n $userId: UUID!\n ) {\n competence_certificate_list_for_user(course_slug: $courseSlug, user_id: $userId) {\n ...CoursePageFields\n competence_certificates {\n ...CoursePageFields\n assignments {\n ...CoursePageFields\n assignment_type\n max_points\n competence_certificate_weight\n completion(course_session_id: $courseSessionId) {\n id\n completion_status\n submitted_at\n evaluation_points\n evaluation_max_points\n evaluation_passed\n }\n learning_content {\n ...CoursePageFields\n circle {\n id\n title\n slug\n }\n }\n }\n }\n }\n }\n": types.CompetenceCertificateForUserQueryDocument,
|
"\n query competenceCertificateForUserQuery(\n $courseSlug: String!\n $courseSessionId: ID!\n $userId: UUID!\n ) {\n competence_certificate_list_for_user(course_slug: $courseSlug, user_id: $userId) {\n ...CoursePageFields\n competence_certificates {\n ...CoursePageFields\n assignments {\n ...CoursePageFields\n assignment_type\n max_points\n competence_certificate_weight\n completion(course_session_id: $courseSessionId) {\n id\n completion_status\n submitted_at\n evaluation_points\n evaluation_max_points\n evaluation_passed\n }\n learning_content {\n ...CoursePageFields\n circle {\n id\n title\n slug\n }\n }\n }\n }\n }\n }\n": types.CompetenceCertificateForUserQueryDocument,
|
||||||
"\n query courseSessionDetail($courseSessionId: ID!) {\n course_session(id: $courseSessionId) {\n id\n title\n course {\n id\n title\n slug\n configuration {\n id\n enable_circle_documents\n enable_learning_mentor\n enable_competence_certificates\n }\n }\n users {\n id\n user_id\n first_name\n last_name\n email\n avatar_url\n role\n circles {\n id\n title\n slug\n }\n }\n attendance_courses {\n id\n location\n trainer\n due_date {\n id\n start\n end\n }\n learning_content_id\n learning_content {\n id\n title\n circle {\n id\n title\n slug\n }\n }\n }\n assignments {\n id\n submission_deadline {\n id\n start\n }\n evaluation_deadline {\n id\n start\n }\n learning_content {\n id\n title\n content_assignment {\n id\n title\n assignment_type\n }\n }\n }\n edoniq_tests {\n id\n deadline {\n id\n start\n end\n }\n learning_content {\n id\n title\n content_assignment {\n id\n title\n assignment_type\n }\n }\n }\n }\n }\n": types.CourseSessionDetailDocument,
|
"\n query courseSessionDetail($courseSessionId: ID!) {\n course_session(id: $courseSessionId) {\n id\n title\n course {\n id\n title\n slug\n configuration {\n id\n enable_circle_documents\n enable_learning_mentor\n enable_competence_certificates\n }\n }\n users {\n id\n user_id\n first_name\n last_name\n email\n avatar_url\n role\n circles {\n id\n title\n slug\n }\n }\n attendance_courses {\n id\n location\n trainer\n due_date {\n id\n start\n end\n }\n learning_content_id\n learning_content {\n id\n title\n circle {\n id\n title\n slug\n }\n }\n }\n assignments {\n id\n submission_deadline {\n id\n start\n }\n evaluation_deadline {\n id\n start\n }\n learning_content {\n id\n title\n content_assignment {\n id\n title\n assignment_type\n }\n }\n }\n edoniq_tests {\n id\n deadline {\n id\n start\n end\n }\n learning_content {\n id\n title\n content_assignment {\n id\n title\n assignment_type\n }\n }\n }\n }\n }\n": types.CourseSessionDetailDocument,
|
||||||
"\n query courseQuery($slug: String!) {\n course(slug: $slug) {\n id\n title\n slug\n category_name\n configuration {\n id\n enable_circle_documents\n enable_learning_mentor\n enable_competence_certificates\n is_uk\n }\n action_competences {\n competence_id\n ...CoursePageFields\n performance_criteria {\n competence_id\n learning_unit {\n id\n slug\n evaluate_url\n }\n ...CoursePageFields\n }\n }\n learning_path {\n ...CoursePageFields\n topics {\n is_visible\n ...CoursePageFields\n circles {\n description\n goals\n ...CoursePageFields\n learning_sequences {\n icon\n ...CoursePageFields\n learning_units {\n evaluate_url\n ...CoursePageFields\n performance_criteria {\n ...CoursePageFields\n }\n learning_contents {\n can_user_self_toggle_course_completion\n content_url\n minutes\n description\n ...CoursePageFields\n ... on LearningContentAssignmentObjectType {\n assignment_type\n content_assignment {\n id\n assignment_type\n }\n competence_certificate {\n ...CoursePageFields\n }\n }\n ... on LearningContentEdoniqTestObjectType {\n checkbox_text\n has_extended_time_test\n content_assignment {\n id\n assignment_type\n }\n competence_certificate {\n ...CoursePageFields\n }\n }\n ... on LearningContentRichTextObjectType {\n text\n }\n }\n }\n }\n }\n }\n }\n }\n }\n": types.CourseQueryDocument,
|
"\n query courseQuery($slug: String!) {\n course(slug: $slug) {\n id\n title\n slug\n category_name\n configuration {\n id\n enable_circle_documents\n enable_learning_mentor\n enable_competence_certificates\n is_uk\n }\n action_competences {\n competence_id\n ...CoursePageFields\n performance_criteria {\n competence_id\n learning_unit {\n id\n slug\n evaluate_url\n }\n ...CoursePageFields\n }\n }\n learning_path {\n ...CoursePageFields\n topics {\n is_visible\n ...CoursePageFields\n circles {\n description\n goals\n ...CoursePageFields\n learning_sequences {\n icon\n ...CoursePageFields\n learning_units {\n evaluate_url\n ...CoursePageFields\n performance_criteria {\n ...CoursePageFields\n }\n learning_contents {\n can_user_self_toggle_course_completion\n content_url\n minutes\n description\n ...CoursePageFields\n ... on LearningContentAssignmentObjectType {\n assignment_type\n content_assignment {\n id\n assignment_type\n }\n competence_certificate {\n ...CoursePageFields\n }\n }\n ... on LearningContentEdoniqTestObjectType {\n checkbox_text\n has_extended_time_test\n content_assignment {\n id\n assignment_type\n }\n competence_certificate {\n ...CoursePageFields\n }\n }\n ... on LearningContentRichTextObjectType {\n text\n }\n }\n }\n }\n }\n }\n }\n }\n }\n": types.CourseQueryDocument,
|
||||||
|
|
@ -63,11 +63,11 @@ 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.
|
* 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 needs_expert_evaluation\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 solution_sample {\n id\n url\n }\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 first_name\n last_name\n }\n assignment_user {\n avatar_url\n first_name\n last_name\n id\n }\n evaluation_points\n evaluation_max_points\n evaluation_passed\n edoniq_extended_time_flag\n completion_data\n task_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 needs_expert_evaluation\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 solution_sample {\n id\n url\n }\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 first_name\n last_name\n }\n assignment_user {\n avatar_url\n first_name\n last_name\n id\n }\n evaluation_points\n evaluation_max_points\n evaluation_passed\n edoniq_extended_time_flag\n completion_data\n task_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 needs_expert_evaluation\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 solution_sample {\n id\n url\n }\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 first_name\n last_name\n }\n assignment_user {\n avatar_url\n first_name\n last_name\n id\n }\n evaluation_points\n evaluation_max_points\n evaluation_points_deducted\n evaluation_points_deducted_reason\n evaluation_points_final\n\n evaluation_passed\n edoniq_extended_time_flag\n completion_data\n task_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 needs_expert_evaluation\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 solution_sample {\n id\n url\n }\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 first_name\n last_name\n }\n assignment_user {\n avatar_url\n first_name\n last_name\n id\n }\n evaluation_points\n evaluation_max_points\n evaluation_points_deducted\n evaluation_points_deducted_reason\n evaluation_points_final\n\n evaluation_passed\n edoniq_extended_time_flag\n completion_data\n task_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.
|
||||||
*/
|
*/
|
||||||
export function graphql(source: "\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 competence_certificate_weight\n completion(course_session_id: $courseSessionId) {\n id\n completion_status\n submitted_at\n evaluation_points\n evaluation_max_points\n evaluation_passed\n }\n learning_content {\n ...CoursePageFields\n circle {\n id\n title\n slug\n }\n }\n }\n }\n }\n }\n"): (typeof documents)["\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 competence_certificate_weight\n completion(course_session_id: $courseSessionId) {\n id\n completion_status\n submitted_at\n evaluation_points\n evaluation_max_points\n evaluation_passed\n }\n learning_content {\n ...CoursePageFields\n circle {\n id\n title\n slug\n }\n }\n }\n }\n }\n }\n"];
|
export function graphql(source: "\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 competence_certificate_weight\n completion(course_session_id: $courseSessionId) {\n id\n completion_status\n submitted_at\n evaluation_points\n evaluation_points_deducted\n evaluation_points_final\n evaluation_max_points\n evaluation_passed\n }\n learning_content {\n ...CoursePageFields\n circle {\n id\n title\n slug\n }\n }\n }\n }\n }\n }\n"): (typeof documents)["\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 competence_certificate_weight\n completion(course_session_id: $courseSessionId) {\n id\n completion_status\n submitted_at\n evaluation_points\n evaluation_points_deducted\n evaluation_points_final\n evaluation_max_points\n evaluation_passed\n }\n learning_content {\n ...CoursePageFields\n circle {\n id\n title\n slug\n }\n }\n }\n }\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.
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -560,6 +560,9 @@ type AssignmentCompletionObjectType {
|
||||||
submitted_at: DateTime
|
submitted_at: DateTime
|
||||||
evaluation_submitted_at: DateTime
|
evaluation_submitted_at: DateTime
|
||||||
evaluation_user: UserObjectType
|
evaluation_user: UserObjectType
|
||||||
|
evaluation_points_deducted: Float!
|
||||||
|
evaluation_points_deducted_reason: String!
|
||||||
|
evaluation_points_deducted_user: UserObjectType
|
||||||
evaluation_passed: Boolean
|
evaluation_passed: Boolean
|
||||||
edoniq_extended_time_flag: Boolean!
|
edoniq_extended_time_flag: Boolean!
|
||||||
assignment_user: UserObjectType!
|
assignment_user: UserObjectType!
|
||||||
|
|
@ -571,6 +574,7 @@ type AssignmentCompletionObjectType {
|
||||||
task_completion_data: GenericScalar
|
task_completion_data: GenericScalar
|
||||||
learning_content_page_id: ID
|
learning_content_page_id: ID
|
||||||
evaluation_points: Float
|
evaluation_points: Float
|
||||||
|
evaluation_points_final: Float
|
||||||
evaluation_max_points: Float
|
evaluation_max_points: Float
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -77,6 +77,10 @@ export const ASSIGNMENT_COMPLETION_QUERY = graphql(`
|
||||||
}
|
}
|
||||||
evaluation_points
|
evaluation_points
|
||||||
evaluation_max_points
|
evaluation_max_points
|
||||||
|
evaluation_points_deducted
|
||||||
|
evaluation_points_deducted_reason
|
||||||
|
evaluation_points_final
|
||||||
|
|
||||||
evaluation_passed
|
evaluation_passed
|
||||||
edoniq_extended_time_flag
|
edoniq_extended_time_flag
|
||||||
completion_data
|
completion_data
|
||||||
|
|
@ -101,6 +105,8 @@ export const COMPETENCE_NAVI_CERTIFICATE_QUERY = graphql(`
|
||||||
completion_status
|
completion_status
|
||||||
submitted_at
|
submitted_at
|
||||||
evaluation_points
|
evaluation_points
|
||||||
|
evaluation_points_deducted
|
||||||
|
evaluation_points_final
|
||||||
evaluation_max_points
|
evaluation_max_points
|
||||||
evaluation_passed
|
evaluation_passed
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -81,18 +81,24 @@ const getIconName = () => {
|
||||||
>
|
>
|
||||||
<div class="flex flex-col lg:items-center">
|
<div class="flex flex-col lg:items-center">
|
||||||
<div class="heading-2">
|
<div class="heading-2">
|
||||||
{{ assignment.completion?.evaluation_points }}
|
{{ assignment.completion?.evaluation_points_final }}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
{{ $t("assignment.von x Punkten", { x: assignment.max_points }) }}
|
{{ $t("assignment.von x Punkten", { x: assignment.max_points }) }}
|
||||||
({{
|
({{
|
||||||
(
|
(
|
||||||
((assignment.completion?.evaluation_points ?? 0) /
|
((assignment.completion?.evaluation_points_final ?? 0) /
|
||||||
(assignment.completion?.evaluation_max_points ?? 1)) *
|
(assignment.completion?.evaluation_max_points ?? 1)) *
|
||||||
100
|
100
|
||||||
).toFixed(0)
|
).toFixed(0)
|
||||||
}}%)
|
}}%)
|
||||||
</div>
|
</div>
|
||||||
|
<div
|
||||||
|
v-if="(assignment.completion?.evaluation_points_deducted ?? 0) > 0"
|
||||||
|
class="text-gray-900"
|
||||||
|
>
|
||||||
|
{{ $t("a.mit Abzug") }}
|
||||||
|
</div>
|
||||||
<div
|
<div
|
||||||
v-if="assignment.completion && !assignment.completion.evaluation_passed"
|
v-if="assignment.completion && !assignment.completion.evaluation_passed"
|
||||||
class="my-2 rounded-md bg-error-red-200 px-2.5 py-0.5"
|
class="my-2 rounded-md bg-error-red-200 px-2.5 py-0.5"
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ export function assignmentsUserPoints(assignments: CompetenceCertificateAssignme
|
||||||
return +_.sum(
|
return +_.sum(
|
||||||
assignments
|
assignments
|
||||||
.filter((a) => a.completion?.completion_status === "EVALUATION_SUBMITTED")
|
.filter((a) => a.completion?.completion_status === "EVALUATION_SUBMITTED")
|
||||||
.map((a) => a.completion?.evaluation_points ?? 0)
|
.map((a) => a.completion?.evaluation_points_final ?? 0)
|
||||||
).toFixed(1);
|
).toFixed(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -31,7 +31,7 @@ export function calcCompetenceCertificateGrade(
|
||||||
|
|
||||||
const adjustedResults = evaluatedAssignments.map((a) => {
|
const adjustedResults = evaluatedAssignments.map((a) => {
|
||||||
return (
|
return (
|
||||||
((a.completion?.evaluation_points ?? 0) / a.max_points) *
|
((a.completion?.evaluation_points_final ?? 0) / a.max_points) *
|
||||||
a.competence_certificate_weight
|
a.competence_certificate_weight
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -169,7 +169,7 @@ async function startTest() {
|
||||||
<div class="my-4">
|
<div class="my-4">
|
||||||
{{ $t("a.Resultat") }}:
|
{{ $t("a.Resultat") }}:
|
||||||
<span class="font-bold">
|
<span class="font-bold">
|
||||||
{{ assignmentCompletion.evaluation_points }}
|
{{ assignmentCompletion.evaluation_points_final }}
|
||||||
</span>
|
</span>
|
||||||
{{
|
{{
|
||||||
$t("assignment.von x Punkten", {
|
$t("assignment.von x Punkten", {
|
||||||
|
|
@ -178,7 +178,7 @@ async function startTest() {
|
||||||
}}
|
}}
|
||||||
({{
|
({{
|
||||||
(
|
(
|
||||||
((assignmentCompletion.evaluation_points ?? 0) /
|
((assignmentCompletion.evaluation_points_final ?? 0) /
|
||||||
(assignmentCompletion.evaluation_max_points ?? 1)) *
|
(assignmentCompletion.evaluation_max_points ?? 1)) *
|
||||||
100
|
100
|
||||||
).toFixed(0)
|
).toFixed(0)
|
||||||
|
|
@ -191,6 +191,21 @@ async function startTest() {
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div v-if="assignmentCompletion.evaluation_points_deducted > 0" class="my-4">
|
||||||
|
<div>
|
||||||
|
{{ $t("a.Punkte aus Bewertung") }}:
|
||||||
|
{{ assignmentCompletion.evaluation_points }}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
{{ $t("a.Abgezogene Punkte") }}:
|
||||||
|
{{ assignmentCompletion.evaluation_points_deducted }}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
{{ $t("a.Grund") }}:
|
||||||
|
{{ assignmentCompletion.evaluation_points_deducted_reason }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="mt-4">
|
<div class="mt-4">
|
||||||
<button class="btn-primary inline-flex items-center" @click="startTest()">
|
<button class="btn-primary inline-flex items-center" @click="startTest()">
|
||||||
{{ $t("edoniqTest.viewResults") }}
|
{{ $t("edoniqTest.viewResults") }}
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ export async function loadAssignmentCompletionStatusData(
|
||||||
if (userAssignmentStatus?.completion_status === "EVALUATION_SUBMITTED") {
|
if (userAssignmentStatus?.completion_status === "EVALUATION_SUBMITTED") {
|
||||||
gradedUsers.push({
|
gradedUsers.push({
|
||||||
user: csu,
|
user: csu,
|
||||||
points: userAssignmentStatus.evaluation_points ?? 0,
|
points: userAssignmentStatus.evaluation_points_final ?? 0,
|
||||||
maxPoints: userAssignmentStatus.evaluation_max_points ?? 0,
|
maxPoints: userAssignmentStatus.evaluation_max_points ?? 0,
|
||||||
passed: userAssignmentStatus.evaluation_passed ?? false,
|
passed: userAssignmentStatus.evaluation_passed ?? false,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -403,6 +403,9 @@ export interface CompetenceCertificateAssignment extends BaseCourseWagtailPage {
|
||||||
completion_status: AssignmentCompletionStatus;
|
completion_status: AssignmentCompletionStatus;
|
||||||
evaluation_submitted_at: string | null;
|
evaluation_submitted_at: string | null;
|
||||||
evaluation_points: number | null;
|
evaluation_points: number | null;
|
||||||
|
evaluation_points_final: number | null;
|
||||||
|
evaluation_points_deducted: number | null;
|
||||||
|
evaluation_points_reason: string;
|
||||||
evaluation_max_points: number | null;
|
evaluation_max_points: number | null;
|
||||||
evaluation_passed: boolean | null;
|
evaluation_passed: boolean | null;
|
||||||
} | null;
|
} | null;
|
||||||
|
|
@ -567,6 +570,8 @@ export interface UserAssignmentCompletionStatus {
|
||||||
assignment_user_id: string;
|
assignment_user_id: string;
|
||||||
completion_status: AssignmentCompletionStatus;
|
completion_status: AssignmentCompletionStatus;
|
||||||
evaluation_points: number | null;
|
evaluation_points: number | null;
|
||||||
|
evaluation_points_final: number | null;
|
||||||
|
evaluation_points_deducted: number | null;
|
||||||
evaluation_max_points: number | null;
|
evaluation_max_points: number | null;
|
||||||
evaluation_passed: boolean;
|
evaluation_passed: boolean;
|
||||||
learning_content_page_id: string;
|
learning_content_page_id: string;
|
||||||
|
|
|
||||||
|
|
@ -1,31 +1,38 @@
|
||||||
# Generated by Django 3.2.20 on 2024-05-21 14:52
|
# Generated by Django 3.2.20 on 2024-05-21 14:52
|
||||||
|
|
||||||
|
import django.db.models.deletion
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
('assignment', '0013_assignment_competence_certificate_weight'),
|
("assignment", "0013_assignment_competence_certificate_weight"),
|
||||||
]
|
]
|
||||||
|
|
||||||
operations = [
|
operations = [
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='assignmentcompletion',
|
model_name="assignmentcompletion",
|
||||||
name='evaluation_points_deducted',
|
name="evaluation_points_deducted",
|
||||||
field=models.FloatField(default=0.0, verbose_name='Punkteabzug'),
|
field=models.FloatField(default=0.0, verbose_name="Punkteabzug"),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='assignmentcompletion',
|
model_name="assignmentcompletion",
|
||||||
name='evaluation_points_deducted_reason',
|
name="evaluation_points_deducted_reason",
|
||||||
field=models.TextField(blank=True, default='', verbose_name='Punkteabzug Begründung'),
|
field=models.TextField(
|
||||||
|
blank=True, default="", verbose_name="Punkteabzug Begründung"
|
||||||
|
),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='assignmentcompletion',
|
model_name="assignmentcompletion",
|
||||||
name='evaluation_points_deducted_user',
|
name="evaluation_points_deducted_user",
|
||||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL),
|
field=models.ForeignKey(
|
||||||
|
blank=True,
|
||||||
|
null=True,
|
||||||
|
on_delete=django.db.models.deletion.SET_NULL,
|
||||||
|
related_name="+",
|
||||||
|
to=settings.AUTH_USER_MODEL,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -384,7 +384,7 @@ class AssignmentCompletion(models.Model):
|
||||||
default=AssignmentCompletionStatus.IN_PROGRESS.value,
|
default=AssignmentCompletionStatus.IN_PROGRESS.value,
|
||||||
)
|
)
|
||||||
|
|
||||||
completion_data = models.JSONField(default=dict)
|
completion_data = models.JSONField(default=dict, blank=True)
|
||||||
additional_json_data = models.JSONField(default=dict, blank=True)
|
additional_json_data = models.JSONField(default=dict, blank=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,8 @@ from vbv_lernwelt.assignment.models import (
|
||||||
AssignmentCompletionAuditLog,
|
AssignmentCompletionAuditLog,
|
||||||
AssignmentCompletionStatus,
|
AssignmentCompletionStatus,
|
||||||
AssignmentType,
|
AssignmentType,
|
||||||
is_valid_assignment_completion_status, recalculate_assignment_passed,
|
is_valid_assignment_completion_status,
|
||||||
|
recalculate_assignment_passed,
|
||||||
)
|
)
|
||||||
from vbv_lernwelt.core.models import User
|
from vbv_lernwelt.core.models import User
|
||||||
from vbv_lernwelt.core.utils import find_first
|
from vbv_lernwelt.core.utils import find_first
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ def request_assignment_completion_status(request, assignment_id, course_session_
|
||||||
"assignment_user_id",
|
"assignment_user_id",
|
||||||
"completion_status",
|
"completion_status",
|
||||||
"evaluation_points",
|
"evaluation_points",
|
||||||
|
"evaluation_points_deducted",
|
||||||
"evaluation_max_points",
|
"evaluation_max_points",
|
||||||
"evaluation_passed",
|
"evaluation_passed",
|
||||||
"learning_content_page_id",
|
"learning_content_page_id",
|
||||||
|
|
@ -29,6 +30,10 @@ def request_assignment_completion_status(request, assignment_id, course_session_
|
||||||
# Convert the learning_content_page_id to a string
|
# Convert the learning_content_page_id to a string
|
||||||
data = list(qs) # Evaluate the queryset
|
data = list(qs) # Evaluate the queryset
|
||||||
for item in data:
|
for item in data:
|
||||||
|
# only `evaluation_points_final` is relevant for the frontend
|
||||||
|
item["evaluation_points_final"] = (
|
||||||
|
item["evaluation_points"] - item["evaluation_points_deducted"]
|
||||||
|
)
|
||||||
item["learning_content_page_id"] = str(item["learning_content_page_id"])
|
item["learning_content_page_id"] = str(item["learning_content_page_id"])
|
||||||
|
|
||||||
return Response(status=200, data=data)
|
return Response(status=200, data=data)
|
||||||
|
|
|
||||||
|
|
@ -188,14 +188,22 @@ class DashboardQuery(graphene.ObjectType):
|
||||||
completion_status=AssignmentCompletionStatus.EVALUATION_SUBMITTED.value,
|
completion_status=AssignmentCompletionStatus.EVALUATION_SUBMITTED.value,
|
||||||
assignment_user=user,
|
assignment_user=user,
|
||||||
course_session__course=course,
|
course_session__course=course,
|
||||||
).values("evaluation_max_points", "evaluation_points")
|
).values(
|
||||||
|
"evaluation_max_points", "evaluation_points", "evaluation_points_deducted"
|
||||||
|
)
|
||||||
|
|
||||||
evaluation_results = list(evaluation_results)
|
evaluation_results = list(evaluation_results)
|
||||||
points_max_count = sum(
|
points_max_count = sum(
|
||||||
[result.get("evaluation_max_points", 0) for result in evaluation_results]
|
[result.get("evaluation_max_points", 0) for result in evaluation_results]
|
||||||
)
|
)
|
||||||
points_achieved_count = sum(
|
points_achieved_count = sum(
|
||||||
[result.get("evaluation_points", 0) for result in evaluation_results]
|
[
|
||||||
|
(
|
||||||
|
result.get("evaluation_points", 0)
|
||||||
|
- result.get("evaluation_points_deducted", 0)
|
||||||
|
)
|
||||||
|
for result in evaluation_results
|
||||||
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
return CourseProgressType(
|
return CourseProgressType(
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue