diff --git a/app/controllers/assessment/ExamAnswerController.java b/app/controllers/assessment/ExamAnswerController.java
index e2b898c50..4d14f5b74 100644
--- a/app/controllers/assessment/ExamAnswerController.java
+++ b/app/controllers/assessment/ExamAnswerController.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/assessment/ReviewDocumentsController.scala b/app/controllers/assessment/ReviewDocumentsController.scala
index 19359df4d..321e39c80 100644
--- a/app/controllers/assessment/ReviewDocumentsController.scala
+++ b/app/controllers/assessment/ReviewDocumentsController.scala
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/assets/FrontendController.scala b/app/controllers/assets/FrontendController.scala
index d50cabf26..5b47f9661 100644
--- a/app/controllers/assets/FrontendController.scala
+++ b/app/controllers/assets/FrontendController.scala
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/base/SectionQuestionHandler.java b/app/controllers/base/SectionQuestionHandler.java
index 68d86147d..fbd3d85a4 100644
--- a/app/controllers/base/SectionQuestionHandler.java
+++ b/app/controllers/base/SectionQuestionHandler.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/exam/CourseController.scala b/app/controllers/exam/CourseController.scala
index 0fe8ea0bc..e253ce2e7 100644
--- a/app/controllers/exam/CourseController.scala
+++ b/app/controllers/exam/CourseController.scala
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/exam/ExamController.java b/app/controllers/exam/ExamController.java
index 8867db185..d3323e85e 100644
--- a/app/controllers/exam/ExamController.java
+++ b/app/controllers/exam/ExamController.java
@@ -1,4 +1,4 @@
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/facility/RoomLike.java b/app/controllers/facility/RoomLike.java
index 6062dda28..fb25d61de 100644
--- a/app/controllers/facility/RoomLike.java
+++ b/app/controllers/facility/RoomLike.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/integration/ReportAPIController.java b/app/controllers/integration/ReportAPIController.java
index cc587a991..429ef1802 100644
--- a/app/controllers/integration/ReportAPIController.java
+++ b/app/controllers/integration/ReportAPIController.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/collaboration/api/CollaborativeAttachmentInterface.java b/app/controllers/iop/collaboration/api/CollaborativeAttachmentInterface.java
index bfedea6b1..676709618 100644
--- a/app/controllers/iop/collaboration/api/CollaborativeAttachmentInterface.java
+++ b/app/controllers/iop/collaboration/api/CollaborativeAttachmentInterface.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/collaboration/api/CollaborativeExamLoader.java b/app/controllers/iop/collaboration/api/CollaborativeExamLoader.java
index 054fb939e..bf5c5c9e5 100644
--- a/app/controllers/iop/collaboration/api/CollaborativeExamLoader.java
+++ b/app/controllers/iop/collaboration/api/CollaborativeExamLoader.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/collaboration/impl/CollaborationController.java b/app/controllers/iop/collaboration/impl/CollaborationController.java
index c6ec9c6ce..3cdad3adb 100644
--- a/app/controllers/iop/collaboration/impl/CollaborationController.java
+++ b/app/controllers/iop/collaboration/impl/CollaborationController.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/collaboration/impl/CollaborativeAttachmentController.java b/app/controllers/iop/collaboration/impl/CollaborativeAttachmentController.java
index cb15e5557..932e8942a 100644
--- a/app/controllers/iop/collaboration/impl/CollaborativeAttachmentController.java
+++ b/app/controllers/iop/collaboration/impl/CollaborativeAttachmentController.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/collaboration/impl/CollaborativeCalendarController.java b/app/controllers/iop/collaboration/impl/CollaborativeCalendarController.java
index cddfec351..eb336000e 100644
--- a/app/controllers/iop/collaboration/impl/CollaborativeCalendarController.java
+++ b/app/controllers/iop/collaboration/impl/CollaborativeCalendarController.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/collaboration/impl/CollaborativeEnrolmentController.java b/app/controllers/iop/collaboration/impl/CollaborativeEnrolmentController.java
index 561bf990a..a16d08d19 100644
--- a/app/controllers/iop/collaboration/impl/CollaborativeEnrolmentController.java
+++ b/app/controllers/iop/collaboration/impl/CollaborativeEnrolmentController.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/collaboration/impl/CollaborativeExamLoaderImpl.java b/app/controllers/iop/collaboration/impl/CollaborativeExamLoaderImpl.java
index 7415e8687..e452e7eaa 100644
--- a/app/controllers/iop/collaboration/impl/CollaborativeExamLoaderImpl.java
+++ b/app/controllers/iop/collaboration/impl/CollaborativeExamLoaderImpl.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/collaboration/impl/CollaborativeExamSectionController.java b/app/controllers/iop/collaboration/impl/CollaborativeExamSectionController.java
index b06606aef..f50baf977 100644
--- a/app/controllers/iop/collaboration/impl/CollaborativeExamSectionController.java
+++ b/app/controllers/iop/collaboration/impl/CollaborativeExamSectionController.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/collaboration/impl/CollaborativeExternalCalendarController.java b/app/controllers/iop/collaboration/impl/CollaborativeExternalCalendarController.java
index f41e941ed..279e0ea63 100644
--- a/app/controllers/iop/collaboration/impl/CollaborativeExternalCalendarController.java
+++ b/app/controllers/iop/collaboration/impl/CollaborativeExternalCalendarController.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/collaboration/impl/CollaborativeReviewController.java b/app/controllers/iop/collaboration/impl/CollaborativeReviewController.java
index 7531d4e3c..299211816 100644
--- a/app/controllers/iop/collaboration/impl/CollaborativeReviewController.java
+++ b/app/controllers/iop/collaboration/impl/CollaborativeReviewController.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/collaboration/impl/CollaborativeStudentActionController.java b/app/controllers/iop/collaboration/impl/CollaborativeStudentActionController.java
index eab7809c8..5a45e07e1 100644
--- a/app/controllers/iop/collaboration/impl/CollaborativeStudentActionController.java
+++ b/app/controllers/iop/collaboration/impl/CollaborativeStudentActionController.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/transfer/api/ExternalAttachmentInterface.java b/app/controllers/iop/transfer/api/ExternalAttachmentInterface.java
index c99ce63ae..543e8168c 100644
--- a/app/controllers/iop/transfer/api/ExternalAttachmentInterface.java
+++ b/app/controllers/iop/transfer/api/ExternalAttachmentInterface.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/transfer/api/ExternalAttachmentLoader.java b/app/controllers/iop/transfer/api/ExternalAttachmentLoader.java
index e87d26245..90382f3bb 100644
--- a/app/controllers/iop/transfer/api/ExternalAttachmentLoader.java
+++ b/app/controllers/iop/transfer/api/ExternalAttachmentLoader.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/transfer/api/ExternalExamAPI.java b/app/controllers/iop/transfer/api/ExternalExamAPI.java
index 89bfbeab2..30d6c2e30 100644
--- a/app/controllers/iop/transfer/api/ExternalExamAPI.java
+++ b/app/controllers/iop/transfer/api/ExternalExamAPI.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/transfer/api/ExternalFacilityAPI.java b/app/controllers/iop/transfer/api/ExternalFacilityAPI.java
index b4489f302..804b9e075 100644
--- a/app/controllers/iop/transfer/api/ExternalFacilityAPI.java
+++ b/app/controllers/iop/transfer/api/ExternalFacilityAPI.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/transfer/api/ExternalReservationHandler.java b/app/controllers/iop/transfer/api/ExternalReservationHandler.java
index 90584354d..e0bbddf5b 100644
--- a/app/controllers/iop/transfer/api/ExternalReservationHandler.java
+++ b/app/controllers/iop/transfer/api/ExternalReservationHandler.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/transfer/impl/DataTransferController.java b/app/controllers/iop/transfer/impl/DataTransferController.java
index 51c024b9c..0850475e1 100644
--- a/app/controllers/iop/transfer/impl/DataTransferController.java
+++ b/app/controllers/iop/transfer/impl/DataTransferController.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/transfer/impl/ExternalAttachmentController.java b/app/controllers/iop/transfer/impl/ExternalAttachmentController.java
index 85d40ef20..e6ebf10d9 100644
--- a/app/controllers/iop/transfer/impl/ExternalAttachmentController.java
+++ b/app/controllers/iop/transfer/impl/ExternalAttachmentController.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/transfer/impl/ExternalAttachmentLoaderImpl.java b/app/controllers/iop/transfer/impl/ExternalAttachmentLoaderImpl.java
index 4037e8fbc..1ca5720b7 100644
--- a/app/controllers/iop/transfer/impl/ExternalAttachmentLoaderImpl.java
+++ b/app/controllers/iop/transfer/impl/ExternalAttachmentLoaderImpl.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/transfer/impl/ExternalCalendarController.java b/app/controllers/iop/transfer/impl/ExternalCalendarController.java
index 3fad72380..28fef4dce 100644
--- a/app/controllers/iop/transfer/impl/ExternalCalendarController.java
+++ b/app/controllers/iop/transfer/impl/ExternalCalendarController.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/transfer/impl/ExternalExaminationController.java b/app/controllers/iop/transfer/impl/ExternalExaminationController.java
index b7386629d..ffd5f71cc 100644
--- a/app/controllers/iop/transfer/impl/ExternalExaminationController.java
+++ b/app/controllers/iop/transfer/impl/ExternalExaminationController.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/transfer/impl/ExternalReservationHandlerImpl.java b/app/controllers/iop/transfer/impl/ExternalReservationHandlerImpl.java
index aaa2df67e..0d564d77b 100644
--- a/app/controllers/iop/transfer/impl/ExternalReservationHandlerImpl.java
+++ b/app/controllers/iop/transfer/impl/ExternalReservationHandlerImpl.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/transfer/impl/FacilityController.java b/app/controllers/iop/transfer/impl/FacilityController.java
index 98d9965fa..3ed4f6300 100644
--- a/app/controllers/iop/transfer/impl/FacilityController.java
+++ b/app/controllers/iop/transfer/impl/FacilityController.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/controllers/iop/transfer/impl/OrganisationController.java b/app/controllers/iop/transfer/impl/OrganisationController.java
index 1f8d6bbc9..d2d471df6 100644
--- a/app/controllers/iop/transfer/impl/OrganisationController.java
+++ b/app/controllers/iop/transfer/impl/OrganisationController.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/impl/CalendarHandler.java b/app/impl/CalendarHandler.java
index ee8a168b0..fc47ce3e4 100644
--- a/app/impl/CalendarHandler.java
+++ b/app/impl/CalendarHandler.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/miscellaneous/config/ByodConfigHandler.scala b/app/miscellaneous/config/ByodConfigHandler.scala
index 727ba51a6..991c896a4 100644
--- a/app/miscellaneous/config/ByodConfigHandler.scala
+++ b/app/miscellaneous/config/ByodConfigHandler.scala
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/miscellaneous/config/ByodConfigHandlerImpl.scala b/app/miscellaneous/config/ByodConfigHandlerImpl.scala
index bf0499c2c..40cb31418 100644
--- a/app/miscellaneous/config/ByodConfigHandlerImpl.scala
+++ b/app/miscellaneous/config/ByodConfigHandlerImpl.scala
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/miscellaneous/csv/CsvBuilder.java b/app/miscellaneous/csv/CsvBuilder.java
index 345c4075f..9bdbec57a 100644
--- a/app/miscellaneous/csv/CsvBuilder.java
+++ b/app/miscellaneous/csv/CsvBuilder.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/miscellaneous/excel/ExcelBuilderImpl.java b/app/miscellaneous/excel/ExcelBuilderImpl.java
index 89916eec7..db3ddf2dd 100644
--- a/app/miscellaneous/excel/ExcelBuilderImpl.java
+++ b/app/miscellaneous/excel/ExcelBuilderImpl.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/miscellaneous/file/FileHandler.java b/app/miscellaneous/file/FileHandler.java
index 5fc6c81b5..c52c795b8 100644
--- a/app/miscellaneous/file/FileHandler.java
+++ b/app/miscellaneous/file/FileHandler.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/miscellaneous/file/FileHandlerImpl.java b/app/miscellaneous/file/FileHandlerImpl.java
index 200ca6198..53c7dfe04 100644
--- a/app/miscellaneous/file/FileHandlerImpl.java
+++ b/app/miscellaneous/file/FileHandlerImpl.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/miscellaneous/xml/MoodleXmlExporter.scala b/app/miscellaneous/xml/MoodleXmlExporter.scala
index 0fb96004f..9ff8b7a68 100644
--- a/app/miscellaneous/xml/MoodleXmlExporter.scala
+++ b/app/miscellaneous/xml/MoodleXmlExporter.scala
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/miscellaneous/xml/MoodleXmlExporterImpl.scala b/app/miscellaneous/xml/MoodleXmlExporterImpl.scala
index fa4a1c240..f574c7a98 100644
--- a/app/miscellaneous/xml/MoodleXmlExporterImpl.scala
+++ b/app/miscellaneous/xml/MoodleXmlExporterImpl.scala
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/miscellaneous/xml/MoodleXmlImporter.scala b/app/miscellaneous/xml/MoodleXmlImporter.scala
index 8700c50f7..a28a01c85 100644
--- a/app/miscellaneous/xml/MoodleXmlImporter.scala
+++ b/app/miscellaneous/xml/MoodleXmlImporter.scala
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/miscellaneous/xml/MoodleXmlImporterImpl.scala b/app/miscellaneous/xml/MoodleXmlImporterImpl.scala
index 80f97cd9c..2e0bdd7e0 100644
--- a/app/miscellaneous/xml/MoodleXmlImporterImpl.scala
+++ b/app/miscellaneous/xml/MoodleXmlImporterImpl.scala
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/models/assessment/Comment.java b/app/models/assessment/Comment.java
index f8a82499a..2e0683232 100644
--- a/app/models/assessment/Comment.java
+++ b/app/models/assessment/Comment.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/models/calendar/MaintenancePeriod.java b/app/models/calendar/MaintenancePeriod.java
index a768ceabb..e79bfaadc 100644
--- a/app/models/calendar/MaintenancePeriod.java
+++ b/app/models/calendar/MaintenancePeriod.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/models/sections/ExamMaterial.java b/app/models/sections/ExamMaterial.java
index f29edeb38..d8e5d17d9 100644
--- a/app/models/sections/ExamMaterial.java
+++ b/app/models/sections/ExamMaterial.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/models/sections/ExamSection.java b/app/models/sections/ExamSection.java
index 53c4e486c..372235e24 100644
--- a/app/models/sections/ExamSection.java
+++ b/app/models/sections/ExamSection.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/models/sections/ExamSectionQuestion.java b/app/models/sections/ExamSectionQuestion.java
index 4d719829f..75ed67649 100644
--- a/app/models/sections/ExamSectionQuestion.java
+++ b/app/models/sections/ExamSectionQuestion.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/models/sections/ExamSectionQuestionOption.java b/app/models/sections/ExamSectionQuestionOption.java
index eccc3290b..659edd206 100644
--- a/app/models/sections/ExamSectionQuestionOption.java
+++ b/app/models/sections/ExamSectionQuestionOption.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/repository/DatabaseExecutionContext.java b/app/repository/DatabaseExecutionContext.java
index f8c9c0c91..c4127ee58 100644
--- a/app/repository/DatabaseExecutionContext.java
+++ b/app/repository/DatabaseExecutionContext.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/repository/EnrolmentRepository.java b/app/repository/EnrolmentRepository.java
index 1e160bb8e..12af1c4f0 100644
--- a/app/repository/EnrolmentRepository.java
+++ b/app/repository/EnrolmentRepository.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/repository/ExaminationRepository.java b/app/repository/ExaminationRepository.java
index a68cb17df..1ecdceaf3 100644
--- a/app/repository/ExaminationRepository.java
+++ b/app/repository/ExaminationRepository.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/repository/UserRepository.java b/app/repository/UserRepository.java
index 54afc40c5..8c99626cc 100644
--- a/app/repository/UserRepository.java
+++ b/app/repository/UserRepository.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/sanitizers/ExternalRefCollectionSanitizer.java b/app/sanitizers/ExternalRefCollectionSanitizer.java
index bc15324b8..16edacde4 100644
--- a/app/sanitizers/ExternalRefCollectionSanitizer.java
+++ b/app/sanitizers/ExternalRefCollectionSanitizer.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/security/Authenticated.java b/app/security/Authenticated.java
index 7c783b163..829672085 100644
--- a/app/security/Authenticated.java
+++ b/app/security/Authenticated.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/security/scala/Auth.scala b/app/security/scala/Auth.scala
index 06f0fa773..c3ae738bd 100644
--- a/app/security/scala/Auth.scala
+++ b/app/security/scala/Auth.scala
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/security/scala/AuthExecutionContext.scala b/app/security/scala/AuthExecutionContext.scala
index e79ba6810..37c28bd99 100644
--- a/app/security/scala/AuthExecutionContext.scala
+++ b/app/security/scala/AuthExecutionContext.scala
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/system/AuditLogFilter.scala b/app/system/AuditLogFilter.scala
index e4d705fe3..c835534a6 100644
--- a/app/system/AuditLogFilter.scala
+++ b/app/system/AuditLogFilter.scala
@@ -1,4 +1,4 @@
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/system/AuditedAction.scala b/app/system/AuditedAction.scala
index 70a9f0a07..da46ac932 100644
--- a/app/system/AuditedAction.scala
+++ b/app/system/AuditedAction.scala
@@ -1,4 +1,4 @@
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/system/SystemFilter.scala b/app/system/SystemFilter.scala
index c727fbc2b..4c6e76ca1 100644
--- a/app/system/SystemFilter.scala
+++ b/app/system/SystemFilter.scala
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/system/SystemRequestHandler.java b/app/system/SystemRequestHandler.java
index 574b8d935..e3dcef625 100644
--- a/app/system/SystemRequestHandler.java
+++ b/app/system/SystemRequestHandler.java
@@ -1,5 +1,5 @@
// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/app/validators/ExternalCourseValidator.scala b/app/validators/ExternalCourseValidator.scala
index f8ef46632..fc9197340 100644
--- a/app/validators/ExternalCourseValidator.scala
+++ b/app/validators/ExternalCourseValidator.scala
@@ -1,4 +1,4 @@
-// SPDX-FileCopyrightText: 2024. The members of the EXAM Consortium
+// SPDX-FileCopyrightText: 2024 The members of the EXAM Consortium
//
// SPDX-License-Identifier: EUPL-1.2
diff --git a/ui/src/app/dashboard/student/student-dashboard.component.ts b/ui/src/app/dashboard/student/student-dashboard.component.ts
index 562c600bd..79d33df32 100644
--- a/ui/src/app/dashboard/student/student-dashboard.component.ts
+++ b/ui/src/app/dashboard/student/student-dashboard.component.ts
@@ -5,11 +5,11 @@
import type { OnInit } from '@angular/core';
import { Component, signal } from '@angular/core';
import { TranslateModule } from '@ngx-translate/core';
+import { DashboardEnrolment } from 'src/app/dashboard/dashboard.model';
import { ActiveEnrolmentComponent } from 'src/app/enrolment/active/active-enrolment.component';
import { PageContentComponent } from 'src/app/shared/components/page-content.component';
import { PageHeaderComponent } from 'src/app/shared/components/page-header.component';
import { OrderByPipe } from 'src/app/shared/sorting/order-by.pipe';
-import type { DashboardEnrolment } from './student-dashboard.service';
import { StudentDashboardService } from './student-dashboard.service';
@Component({
diff --git a/ui/src/app/exam/editor/sections/section-question.component.ts b/ui/src/app/exam/editor/sections/section-question.component.ts
index a098447fa..fa0af1b46 100644
--- a/ui/src/app/exam/editor/sections/section-question.component.ts
+++ b/ui/src/app/exam/editor/sections/section-question.component.ts
@@ -22,6 +22,7 @@ import { map } from 'rxjs/operators';
import type { ExamSection } from 'src/app/exam/exam.model';
import { BaseQuestionEditorComponent } from 'src/app/question/examquestion/base-question-editor.component';
import { ExamQuestionEditorComponent } from 'src/app/question/examquestion/exam-question-editor.component';
+import { QuestionScoringService } from 'src/app/question/question-scoring.service';
import { ExamSectionQuestion, ExamSectionQuestionOption, Question } from 'src/app/question/question.model';
import { QuestionService } from 'src/app/question/question.service';
import { AttachmentService } from 'src/app/shared/attachment/attachment.service';
@@ -64,15 +65,16 @@ export class SectionQuestionComponent {
private toast: ToastrService,
private Confirmation: ConfirmationDialogService,
private Question: QuestionService,
+ private QuestionScore: QuestionScoringService,
private Attachment: AttachmentService,
private Files: FileService,
) {}
- calculateWeightedMaxPoints = () => this.Question.calculateWeightedMaxPoints(this.sectionQuestion.options);
+ calculateWeightedMaxPoints = () => this.QuestionScore.calculateWeightedMaxPoints(this.sectionQuestion.options);
- getCorrectClaimChoiceOptionScore = () => this.Question.getCorrectClaimChoiceOptionScore(this.sectionQuestion);
+ getCorrectClaimChoiceOptionScore = () => this.QuestionScore.getCorrectClaimChoiceOptionScore(this.sectionQuestion);
- getMinimumOptionScore = () => this.Question.getMinimumOptionScore(this.sectionQuestion);
+ getMinimumOptionScore = () => this.QuestionScore.getMinimumOptionScore(this.sectionQuestion);
editQuestion = () => this.openExamQuestionEditor();
diff --git a/ui/src/app/exam/editor/sections/section.component.ts b/ui/src/app/exam/editor/sections/section.component.ts
index 03377bea3..2475c8322 100644
--- a/ui/src/app/exam/editor/sections/section.component.ts
+++ b/ui/src/app/exam/editor/sections/section.component.ts
@@ -30,8 +30,8 @@ import type { ExamMaterial, ExamSection } from 'src/app/exam/exam.model';
import { ExamService } from 'src/app/exam/exam.service';
import { BaseQuestionEditorComponent } from 'src/app/question/examquestion/base-question-editor.component';
import { QuestionSelectorComponent } from 'src/app/question/picker/question-picker.component';
+import { QuestionScoringService } from 'src/app/question/question-scoring.service';
import { ExamSectionQuestion, Question } from 'src/app/question/question.model';
-import { QuestionService } from 'src/app/question/question.service';
import { ConfirmationDialogService } from 'src/app/shared/dialogs/confirmation-dialog.service';
import { FileService } from 'src/app/shared/file/file.service';
import { OrderByPipe } from 'src/app/shared/sorting/order-by.pipe';
@@ -77,7 +77,7 @@ export class SectionComponent {
private modal: NgbModal,
private toast: ToastrService,
private dialogs: ConfirmationDialogService,
- private Question: QuestionService,
+ private QuestionScore: QuestionScoringService,
private Files: FileService,
private Exam: ExamService,
) {}
@@ -278,7 +278,7 @@ export class SectionComponent {
optional: this.section.optional,
});
- private getQuestionScore = (question: ExamSectionQuestion) => this.Question.calculateMaxScore(question);
+ private getQuestionScore = (question: ExamSectionQuestion) => this.QuestionScore.calculateMaxScore(question);
private insertExamQuestion = (question: Question, seq: number) => {
const resource = this.collaborative
diff --git a/ui/src/app/exam/exam.service.ts b/ui/src/app/exam/exam.service.ts
index 60c727cde..a692e1272 100644
--- a/ui/src/app/exam/exam.service.ts
+++ b/ui/src/app/exam/exam.service.ts
@@ -10,7 +10,7 @@ import { parseISO } from 'date-fns';
import { ToastrService } from 'ngx-toastr';
import type { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
-import { QuestionService } from 'src/app/question/question.service';
+import { QuestionScoringService } from 'src/app/question/question-scoring.service';
import { SessionService } from 'src/app/session/session.service';
import { ConfirmationDialogService } from 'src/app/shared/dialogs/confirmation-dialog.service';
import { CommonExamService } from 'src/app/shared/miscellaneous/common-exam.service';
@@ -47,7 +47,7 @@ export class ExamService {
private translate: TranslateService,
private toast: ToastrService,
private CommonExam: CommonExamService,
- private Question: QuestionService,
+ private QuestionScore: QuestionScoringService,
private Session: SessionService,
private ConfirmationDialog: ConfirmationDialogService,
) {}
@@ -253,7 +253,7 @@ export class ExamService {
getSectionTotalNumericScore = (section: ExamSection): number => {
const score = section.sectionQuestions.reduce((n, sq) => {
- const points = this.Question.calculateAnswerScore(sq);
+ const points = this.QuestionScore.calculateAnswerScore(sq);
// handle only numeric scores (leave out approved/rejected type of scores)
return n + (points.rejected === false && points.approved === false ? points.score : 0);
}, 0);
@@ -262,7 +262,7 @@ export class ExamService {
getSectionTotalScore = (section: ExamSection): number => {
const score = section.sectionQuestions.reduce((n, sq) => {
- const points = this.Question.calculateAnswerScore(sq);
+ const points = this.QuestionScore.calculateAnswerScore(sq);
return n + points.score;
}, 0);
return Number.isInteger(score) ? score : parseFloat(score.toFixed(2));
@@ -273,7 +273,7 @@ export class ExamService {
if (!sq || !sq.question) {
return n;
}
- return n + this.Question.calculateMaxScore(sq);
+ return n + this.QuestionScore.calculateMaxScore(sq);
}, 0);
if (section.lotteryOn) {
maxScore = (maxScore * section.lotteryItemCount) / Math.max(1, section.sectionQuestions.length);
diff --git a/ui/src/app/facility/schedule/opening-hours.component.html b/ui/src/app/facility/schedule/opening-hours.component.html
new file mode 100644
index 000000000..e69de29bb
diff --git a/ui/src/app/facility/schedule/opening-hours.component.ts b/ui/src/app/facility/schedule/opening-hours.component.ts
index 9e7fd0ae0..666c35bf1 100644
--- a/ui/src/app/facility/schedule/opening-hours.component.ts
+++ b/ui/src/app/facility/schedule/opening-hours.component.ts
@@ -26,113 +26,7 @@ interface RoomWithAddressVisibility extends ExamRoom {
}
@Component({
selector: 'xm-opening-hours',
- template: `
- @for (dwh of orderByWeekday(extendedRoom.extendedDwh); track dwh) {
-