diff --git a/app/controllers/assessment/ExamAnswerController.java b/app/controllers/assessment/ExamAnswerController.java
index e2b898c50..cd1696a70 100644
--- a/app/controllers/assessment/ExamAnswerController.java
+++ b/app/controllers/assessment/ExamAnswerController.java
@@ -1,5 +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/assessment/ReviewDocumentsController.scala b/app/controllers/assessment/ReviewDocumentsController.scala
index 19359df4d..f474d5917 100644
--- a/app/controllers/assessment/ReviewDocumentsController.scala
+++ b/app/controllers/assessment/ReviewDocumentsController.scala
@@ -1,5 +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/assets/FrontendController.scala b/app/controllers/assets/FrontendController.scala
index d50cabf26..f2f51a91b 100644
--- a/app/controllers/assets/FrontendController.scala
+++ b/app/controllers/assets/FrontendController.scala
@@ -1,5 +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/base/SectionQuestionHandler.java b/app/controllers/base/SectionQuestionHandler.java
index 68d86147d..4101c39f3 100644
--- a/app/controllers/base/SectionQuestionHandler.java
+++ b/app/controllers/base/SectionQuestionHandler.java
@@ -1,5 +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/exam/CourseController.scala b/app/controllers/exam/CourseController.scala
index 0fe8ea0bc..a80604220 100644
--- a/app/controllers/exam/CourseController.scala
+++ b/app/controllers/exam/CourseController.scala
@@ -1,5 +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/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..c4466abdc 100644
--- a/app/controllers/facility/RoomLike.java
+++ b/app/controllers/facility/RoomLike.java
@@ -1,5 +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/integration/ReportAPIController.java b/app/controllers/integration/ReportAPIController.java
index cc587a991..dcb39c172 100644
--- a/app/controllers/integration/ReportAPIController.java
+++ b/app/controllers/integration/ReportAPIController.java
@@ -1,5 +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/iop/collaboration/api/CollaborativeAttachmentInterface.java b/app/controllers/iop/collaboration/api/CollaborativeAttachmentInterface.java
index bfedea6b1..704933b2d 100644
--- a/app/controllers/iop/collaboration/api/CollaborativeAttachmentInterface.java
+++ b/app/controllers/iop/collaboration/api/CollaborativeAttachmentInterface.java
@@ -1,5 +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/iop/collaboration/api/CollaborativeExamLoader.java b/app/controllers/iop/collaboration/api/CollaborativeExamLoader.java
index 054fb939e..4d915f29b 100644
--- a/app/controllers/iop/collaboration/api/CollaborativeExamLoader.java
+++ b/app/controllers/iop/collaboration/api/CollaborativeExamLoader.java
@@ -1,5 +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/iop/collaboration/impl/CollaborationController.java b/app/controllers/iop/collaboration/impl/CollaborationController.java
index c6ec9c6ce..b8ab0bd80 100644
--- a/app/controllers/iop/collaboration/impl/CollaborationController.java
+++ b/app/controllers/iop/collaboration/impl/CollaborationController.java
@@ -1,5 +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/iop/collaboration/impl/CollaborativeAttachmentController.java b/app/controllers/iop/collaboration/impl/CollaborativeAttachmentController.java
index cb15e5557..ce7ecbdf0 100644
--- a/app/controllers/iop/collaboration/impl/CollaborativeAttachmentController.java
+++ b/app/controllers/iop/collaboration/impl/CollaborativeAttachmentController.java
@@ -1,5 +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/iop/collaboration/impl/CollaborativeCalendarController.java b/app/controllers/iop/collaboration/impl/CollaborativeCalendarController.java
index cddfec351..4830e9e42 100644
--- a/app/controllers/iop/collaboration/impl/CollaborativeCalendarController.java
+++ b/app/controllers/iop/collaboration/impl/CollaborativeCalendarController.java
@@ -1,5 +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/iop/collaboration/impl/CollaborativeEnrolmentController.java b/app/controllers/iop/collaboration/impl/CollaborativeEnrolmentController.java
index 561bf990a..c058c7870 100644
--- a/app/controllers/iop/collaboration/impl/CollaborativeEnrolmentController.java
+++ b/app/controllers/iop/collaboration/impl/CollaborativeEnrolmentController.java
@@ -1,5 +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/iop/collaboration/impl/CollaborativeExamLoaderImpl.java b/app/controllers/iop/collaboration/impl/CollaborativeExamLoaderImpl.java
index 7415e8687..392c077a8 100644
--- a/app/controllers/iop/collaboration/impl/CollaborativeExamLoaderImpl.java
+++ b/app/controllers/iop/collaboration/impl/CollaborativeExamLoaderImpl.java
@@ -1,5 +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/iop/collaboration/impl/CollaborativeExamSectionController.java b/app/controllers/iop/collaboration/impl/CollaborativeExamSectionController.java
index b06606aef..1ad802b85 100644
--- a/app/controllers/iop/collaboration/impl/CollaborativeExamSectionController.java
+++ b/app/controllers/iop/collaboration/impl/CollaborativeExamSectionController.java
@@ -1,5 +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/iop/collaboration/impl/CollaborativeExternalCalendarController.java b/app/controllers/iop/collaboration/impl/CollaborativeExternalCalendarController.java
index f41e941ed..7fa6df313 100644
--- a/app/controllers/iop/collaboration/impl/CollaborativeExternalCalendarController.java
+++ b/app/controllers/iop/collaboration/impl/CollaborativeExternalCalendarController.java
@@ -1,5 +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/iop/collaboration/impl/CollaborativeReviewController.java b/app/controllers/iop/collaboration/impl/CollaborativeReviewController.java
index 7531d4e3c..1f10891fb 100644
--- a/app/controllers/iop/collaboration/impl/CollaborativeReviewController.java
+++ b/app/controllers/iop/collaboration/impl/CollaborativeReviewController.java
@@ -1,5 +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/iop/collaboration/impl/CollaborativeStudentActionController.java b/app/controllers/iop/collaboration/impl/CollaborativeStudentActionController.java
index eab7809c8..b193dfe2b 100644
--- a/app/controllers/iop/collaboration/impl/CollaborativeStudentActionController.java
+++ b/app/controllers/iop/collaboration/impl/CollaborativeStudentActionController.java
@@ -1,5 +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/iop/transfer/api/ExternalAttachmentInterface.java b/app/controllers/iop/transfer/api/ExternalAttachmentInterface.java
index c99ce63ae..87359195a 100644
--- a/app/controllers/iop/transfer/api/ExternalAttachmentInterface.java
+++ b/app/controllers/iop/transfer/api/ExternalAttachmentInterface.java
@@ -1,5 +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/iop/transfer/api/ExternalAttachmentLoader.java b/app/controllers/iop/transfer/api/ExternalAttachmentLoader.java
index e87d26245..fe3890df3 100644
--- a/app/controllers/iop/transfer/api/ExternalAttachmentLoader.java
+++ b/app/controllers/iop/transfer/api/ExternalAttachmentLoader.java
@@ -1,5 +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/iop/transfer/api/ExternalExamAPI.java b/app/controllers/iop/transfer/api/ExternalExamAPI.java
index 89bfbeab2..af42a4b96 100644
--- a/app/controllers/iop/transfer/api/ExternalExamAPI.java
+++ b/app/controllers/iop/transfer/api/ExternalExamAPI.java
@@ -1,5 +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/iop/transfer/api/ExternalFacilityAPI.java b/app/controllers/iop/transfer/api/ExternalFacilityAPI.java
index b4489f302..dda787523 100644
--- a/app/controllers/iop/transfer/api/ExternalFacilityAPI.java
+++ b/app/controllers/iop/transfer/api/ExternalFacilityAPI.java
@@ -1,5 +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/iop/transfer/api/ExternalReservationHandler.java b/app/controllers/iop/transfer/api/ExternalReservationHandler.java
index 90584354d..8ee72eee2 100644
--- a/app/controllers/iop/transfer/api/ExternalReservationHandler.java
+++ b/app/controllers/iop/transfer/api/ExternalReservationHandler.java
@@ -1,5 +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/iop/transfer/impl/DataTransferController.java b/app/controllers/iop/transfer/impl/DataTransferController.java
index 51c024b9c..c5bb3c0aa 100644
--- a/app/controllers/iop/transfer/impl/DataTransferController.java
+++ b/app/controllers/iop/transfer/impl/DataTransferController.java
@@ -1,5 +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/iop/transfer/impl/ExternalAttachmentController.java b/app/controllers/iop/transfer/impl/ExternalAttachmentController.java
index 85d40ef20..99cc9f73c 100644
--- a/app/controllers/iop/transfer/impl/ExternalAttachmentController.java
+++ b/app/controllers/iop/transfer/impl/ExternalAttachmentController.java
@@ -1,5 +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/iop/transfer/impl/ExternalAttachmentLoaderImpl.java b/app/controllers/iop/transfer/impl/ExternalAttachmentLoaderImpl.java
index 4037e8fbc..1b9928a9f 100644
--- a/app/controllers/iop/transfer/impl/ExternalAttachmentLoaderImpl.java
+++ b/app/controllers/iop/transfer/impl/ExternalAttachmentLoaderImpl.java
@@ -1,5 +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/iop/transfer/impl/ExternalCalendarController.java b/app/controllers/iop/transfer/impl/ExternalCalendarController.java
index 3fad72380..596c9e440 100644
--- a/app/controllers/iop/transfer/impl/ExternalCalendarController.java
+++ b/app/controllers/iop/transfer/impl/ExternalCalendarController.java
@@ -1,5 +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/iop/transfer/impl/ExternalExaminationController.java b/app/controllers/iop/transfer/impl/ExternalExaminationController.java
index b7386629d..1f85afee4 100644
--- a/app/controllers/iop/transfer/impl/ExternalExaminationController.java
+++ b/app/controllers/iop/transfer/impl/ExternalExaminationController.java
@@ -1,5 +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/iop/transfer/impl/ExternalReservationHandlerImpl.java b/app/controllers/iop/transfer/impl/ExternalReservationHandlerImpl.java
index aaa2df67e..1f9e0e390 100644
--- a/app/controllers/iop/transfer/impl/ExternalReservationHandlerImpl.java
+++ b/app/controllers/iop/transfer/impl/ExternalReservationHandlerImpl.java
@@ -1,5 +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/iop/transfer/impl/FacilityController.java b/app/controllers/iop/transfer/impl/FacilityController.java
index 98d9965fa..10bbc0ad2 100644
--- a/app/controllers/iop/transfer/impl/FacilityController.java
+++ b/app/controllers/iop/transfer/impl/FacilityController.java
@@ -1,5 +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/iop/transfer/impl/OrganisationController.java b/app/controllers/iop/transfer/impl/OrganisationController.java
index 1f8d6bbc9..47af3eb94 100644
--- a/app/controllers/iop/transfer/impl/OrganisationController.java
+++ b/app/controllers/iop/transfer/impl/OrganisationController.java
@@ -1,5 +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/impl/CalendarHandler.java b/app/impl/CalendarHandler.java
index ee8a168b0..99fc35da8 100644
--- a/app/impl/CalendarHandler.java
+++ b/app/impl/CalendarHandler.java
@@ -1,5 +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/miscellaneous/config/ByodConfigHandler.scala b/app/miscellaneous/config/ByodConfigHandler.scala
index 727ba51a6..09ef23b30 100644
--- a/app/miscellaneous/config/ByodConfigHandler.scala
+++ b/app/miscellaneous/config/ByodConfigHandler.scala
@@ -1,5 +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/miscellaneous/config/ByodConfigHandlerImpl.scala b/app/miscellaneous/config/ByodConfigHandlerImpl.scala
index bf0499c2c..fe2f7c7c3 100644
--- a/app/miscellaneous/config/ByodConfigHandlerImpl.scala
+++ b/app/miscellaneous/config/ByodConfigHandlerImpl.scala
@@ -1,5 +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/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..7ee9ecc19 100644
--- a/app/miscellaneous/excel/ExcelBuilderImpl.java
+++ b/app/miscellaneous/excel/ExcelBuilderImpl.java
@@ -1,5 +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/miscellaneous/file/FileHandler.java b/app/miscellaneous/file/FileHandler.java
index 5fc6c81b5..b986c2cb3 100644
--- a/app/miscellaneous/file/FileHandler.java
+++ b/app/miscellaneous/file/FileHandler.java
@@ -1,5 +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/miscellaneous/file/FileHandlerImpl.java b/app/miscellaneous/file/FileHandlerImpl.java
index 200ca6198..a58502102 100644
--- a/app/miscellaneous/file/FileHandlerImpl.java
+++ b/app/miscellaneous/file/FileHandlerImpl.java
@@ -1,5 +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/miscellaneous/xml/MoodleXmlExporter.scala b/app/miscellaneous/xml/MoodleXmlExporter.scala
index 0fb96004f..952157462 100644
--- a/app/miscellaneous/xml/MoodleXmlExporter.scala
+++ b/app/miscellaneous/xml/MoodleXmlExporter.scala
@@ -1,5 +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/miscellaneous/xml/MoodleXmlExporterImpl.scala b/app/miscellaneous/xml/MoodleXmlExporterImpl.scala
index fa4a1c240..fe2fd145e 100644
--- a/app/miscellaneous/xml/MoodleXmlExporterImpl.scala
+++ b/app/miscellaneous/xml/MoodleXmlExporterImpl.scala
@@ -1,5 +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/miscellaneous/xml/MoodleXmlImporter.scala b/app/miscellaneous/xml/MoodleXmlImporter.scala
index 8700c50f7..3fbcee101 100644
--- a/app/miscellaneous/xml/MoodleXmlImporter.scala
+++ b/app/miscellaneous/xml/MoodleXmlImporter.scala
@@ -1,5 +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/miscellaneous/xml/MoodleXmlImporterImpl.scala b/app/miscellaneous/xml/MoodleXmlImporterImpl.scala
index 80f97cd9c..b426af2e2 100644
--- a/app/miscellaneous/xml/MoodleXmlImporterImpl.scala
+++ b/app/miscellaneous/xml/MoodleXmlImporterImpl.scala
@@ -1,5 +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/models/assessment/Comment.java b/app/models/assessment/Comment.java
index f8a82499a..39b0bf831 100644
--- a/app/models/assessment/Comment.java
+++ b/app/models/assessment/Comment.java
@@ -1,5 +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/models/calendar/MaintenancePeriod.java b/app/models/calendar/MaintenancePeriod.java
index a768ceabb..9a449d74b 100644
--- a/app/models/calendar/MaintenancePeriod.java
+++ b/app/models/calendar/MaintenancePeriod.java
@@ -1,5 +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/models/sections/ExamMaterial.java b/app/models/sections/ExamMaterial.java
index f29edeb38..be4298d92 100644
--- a/app/models/sections/ExamMaterial.java
+++ b/app/models/sections/ExamMaterial.java
@@ -1,5 +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/models/sections/ExamSection.java b/app/models/sections/ExamSection.java
index 53c4e486c..258717723 100644
--- a/app/models/sections/ExamSection.java
+++ b/app/models/sections/ExamSection.java
@@ -1,5 +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/models/sections/ExamSectionQuestion.java b/app/models/sections/ExamSectionQuestion.java
index 4d719829f..588bf245c 100644
--- a/app/models/sections/ExamSectionQuestion.java
+++ b/app/models/sections/ExamSectionQuestion.java
@@ -1,5 +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/models/sections/ExamSectionQuestionOption.java b/app/models/sections/ExamSectionQuestionOption.java
index eccc3290b..3d5276052 100644
--- a/app/models/sections/ExamSectionQuestionOption.java
+++ b/app/models/sections/ExamSectionQuestionOption.java
@@ -1,5 +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/repository/DatabaseExecutionContext.java b/app/repository/DatabaseExecutionContext.java
index f8c9c0c91..407a6ff56 100644
--- a/app/repository/DatabaseExecutionContext.java
+++ b/app/repository/DatabaseExecutionContext.java
@@ -1,5 +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/repository/EnrolmentRepository.java b/app/repository/EnrolmentRepository.java
index 1e160bb8e..bbeddff60 100644
--- a/app/repository/EnrolmentRepository.java
+++ b/app/repository/EnrolmentRepository.java
@@ -1,5 +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/repository/ExaminationRepository.java b/app/repository/ExaminationRepository.java
index a68cb17df..3d2ef1649 100644
--- a/app/repository/ExaminationRepository.java
+++ b/app/repository/ExaminationRepository.java
@@ -1,5 +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/repository/UserRepository.java b/app/repository/UserRepository.java
index 54afc40c5..41b4c8c24 100644
--- a/app/repository/UserRepository.java
+++ b/app/repository/UserRepository.java
@@ -1,5 +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/sanitizers/ExternalRefCollectionSanitizer.java b/app/sanitizers/ExternalRefCollectionSanitizer.java
index bc15324b8..ddecbbc93 100644
--- a/app/sanitizers/ExternalRefCollectionSanitizer.java
+++ b/app/sanitizers/ExternalRefCollectionSanitizer.java
@@ -1,5 +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/security/Authenticated.java b/app/security/Authenticated.java
index 7c783b163..e1f5c39dc 100644
--- a/app/security/Authenticated.java
+++ b/app/security/Authenticated.java
@@ -1,5 +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/security/scala/Auth.scala b/app/security/scala/Auth.scala
index 06f0fa773..28981f0b4 100644
--- a/app/security/scala/Auth.scala
+++ b/app/security/scala/Auth.scala
@@ -1,5 +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/security/scala/AuthExecutionContext.scala b/app/security/scala/AuthExecutionContext.scala
index e79ba6810..ddb04a9a5 100644
--- a/app/security/scala/AuthExecutionContext.scala
+++ b/app/security/scala/AuthExecutionContext.scala
@@ -1,5 +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/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..a1f377a9c 100644
--- a/app/system/SystemFilter.scala
+++ b/app/system/SystemFilter.scala
@@ -1,5 +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/SystemRequestHandler.java b/app/system/SystemRequestHandler.java
index 574b8d935..a60a01600 100644
--- a/app/system/SystemRequestHandler.java
+++ b/app/system/SystemRequestHandler.java
@@ -1,5 +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/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) {
-