diff --git a/src/main/java/org/olat/modules/quality/generator/provider/courselectures/CourseLecturesFollowUpProvider.java b/src/main/java/org/olat/modules/quality/generator/provider/courselectures/CourseLecturesFollowUpProvider.java index 66a7e27b356ec54df955e4e91cf4ab9bbb5ab9e4..c8b1865f848959c0994502071b9ea5512a6defc6 100644 --- a/src/main/java/org/olat/modules/quality/generator/provider/courselectures/CourseLecturesFollowUpProvider.java +++ b/src/main/java/org/olat/modules/quality/generator/provider/courselectures/CourseLecturesFollowUpProvider.java @@ -102,6 +102,7 @@ public class CourseLecturesFollowUpProvider implements QualityGeneratorProvider public static final String CONFIG_KEY_REMINDER1_AFTER_DC_DAYS = "reminder1.after.dc.start.days"; public static final String CONFIG_KEY_REMINDER2_AFTER_DC_DAYS = "reminder2.after.dc.start.days"; public static final String CONFIG_KEY_TITLE = "title"; + public static final String CONFIG_KEY_TOTAL_LECTURES_MIN = "total.lecture"; public static final String ROLES_DELIMITER = ","; @@ -192,7 +193,6 @@ public class CourseLecturesFollowUpProvider implements QualityGeneratorProvider List<Organisation> organisations, LectureBlockInfo lectureBlockInfo, QualityGeneratorRef previousGeneratorRef, QualityGeneratorConfigs previosGeneratorConfigs) { // Load data - RepositoryEntry formEntry = generator.getFormEntry(); RepositoryEntry course = repositoryService.loadByKey(lectureBlockInfo.getCourseRepoKey()); Identity teacher = securityManager.loadIdentityByKey(lectureBlockInfo.getTeacherKey()); String topicKey = getTopicKey(previosGeneratorConfigs); @@ -293,6 +293,12 @@ public class CourseLecturesFollowUpProvider implements QualityGeneratorProvider searchParams.setExcludeGeneratorAndTopicRepositoryRef(generator); } + String minLectures = configs.getValue(CONFIG_KEY_TOTAL_LECTURES_MIN); + if (StringHelper.containsNonWhitespace(minLectures)) { + Integer minExceedingLectures = Integer.parseInt(minLectures); + searchParams.setMinTotalLectures(minExceedingLectures); + } + String minutesBeforeEnd = configs.getValue(CONFIG_KEY_MINUTES_BEFORE_END); minutesBeforeEnd = StringHelper.containsNonWhitespace(minutesBeforeEnd)? minutesBeforeEnd: "0"; Date from = ProviderHelper.addMinutes(fromDate, minutesBeforeEnd); diff --git a/src/main/java/org/olat/modules/quality/generator/provider/courselectures/ui/CourseLectureFollowUpProviderConfigController.java b/src/main/java/org/olat/modules/quality/generator/provider/courselectures/ui/CourseLectureFollowUpProviderConfigController.java index 5abd70c11a955ec385226a7c1748360ae3ea4f13..b0f4d1cef1336c2ff514e6a45decdf77e98eed9c 100644 --- a/src/main/java/org/olat/modules/quality/generator/provider/courselectures/ui/CourseLectureFollowUpProviderConfigController.java +++ b/src/main/java/org/olat/modules/quality/generator/provider/courselectures/ui/CourseLectureFollowUpProviderConfigController.java @@ -62,6 +62,7 @@ public class CourseLectureFollowUpProviderConfigController extends ProviderConfi private TextElement gradeTotalLimitEl; private SingleSelection gradeSingleCheckEl; private TextElement gradeSingleLimitEl; + private TextElement lecturesTotalMinEl; private TextElement durationEl; private TextElement minutesBeforeEndEl; private TextElement invitationDaysEl; @@ -128,6 +129,9 @@ public class CourseLectureFollowUpProviderConfigController extends ProviderConfi String singleLimit = configs.getValue(CourseLecturesFollowUpProvider.CONFIG_KEY_GRADE_SINGLE_LIMIT); gradeSingleLimitEl = uifactory.addTextElement("followup.config.single.limit", 5, singleLimit, formLayout); + String lecturesTotalMin = configs.getValue(CourseLecturesProvider.CONFIG_KEY_TOTAL_LECTURES_MIN); + lecturesTotalMinEl = uifactory.addTextElement("config.lectures.total.min", 4, lecturesTotalMin, formLayout); + String minutesBeforeEnd = configs.getValue(CourseLecturesFollowUpProvider.CONFIG_KEY_MINUTES_BEFORE_END); minutesBeforeEndEl = uifactory.addTextElement("config.minutes.before.end", 3, minutesBeforeEnd, formLayout); @@ -151,6 +155,7 @@ public class CourseLectureFollowUpProviderConfigController extends ProviderConfi boolean enabled = !readOnly; titleEl.setEnabled(enabled); previousGeneratorEl.setEnabled(enabled); + lecturesTotalMinEl.setEnabled(enabled); minutesBeforeEndEl.setEnabled(enabled); invitationDaysEl.setEnabled(enabled); reminder1DaysEl.setEnabled(enabled); @@ -167,6 +172,7 @@ public class CourseLectureFollowUpProviderConfigController extends ProviderConfi allOk &= validateIsMandatory(previousGeneratorEl); allOk &= validateDouble(gradeTotalLimitEl, 0, 12); allOk &= validateDouble(gradeSingleLimitEl, 0, 12); + allOk &= validateInteger(lecturesTotalMinEl, 1, 10000); allOk &= validateIsMandatory(minutesBeforeEndEl) && validateInteger(minutesBeforeEndEl, 0, 1000); allOk &= validateIsMandatory(durationEl) && validateInteger(durationEl, 1, 10000); allOk &= validateInteger(invitationDaysEl, 0, 10000); @@ -181,6 +187,7 @@ public class CourseLectureFollowUpProviderConfigController extends ProviderConfi titleEl.clearError(); gradeTotalLimitEl.clearError(); gradeSingleLimitEl.clearError(); + lecturesTotalMinEl.clearError(); minutesBeforeEndEl.clearError(); durationEl.clearError(); invitationDaysEl.clearError(); @@ -210,6 +217,9 @@ public class CourseLectureFollowUpProviderConfigController extends ProviderConfi String singleLimit = gradeSingleLimitEl.getValue(); configs.setValue(CourseLecturesFollowUpProvider.CONFIG_KEY_GRADE_SINGLE_LIMIT, singleLimit); + String lecturesTotalMin = lecturesTotalMinEl.getValue(); + configs.setValue(CourseLecturesProvider.CONFIG_KEY_TOTAL_LECTURES_MIN, lecturesTotalMin); + String minutesBeforeEnd = minutesBeforeEndEl.getValue(); configs.setValue(CourseLecturesFollowUpProvider.CONFIG_KEY_MINUTES_BEFORE_END, minutesBeforeEnd); diff --git a/src/main/java/org/olat/modules/quality/generator/provider/courselectures/ui/CourseLectureProviderConfigController.java b/src/main/java/org/olat/modules/quality/generator/provider/courselectures/ui/CourseLectureProviderConfigController.java index 4221014dfe4901da02f65edb8f6609ad1827301b..a484ac86da6dbef3fcf38a31a1396c6d9be415a8 100644 --- a/src/main/java/org/olat/modules/quality/generator/provider/courselectures/ui/CourseLectureProviderConfigController.java +++ b/src/main/java/org/olat/modules/quality/generator/provider/courselectures/ui/CourseLectureProviderConfigController.java @@ -258,11 +258,11 @@ public class CourseLectureProviderConfigController extends ProviderConfigControl String topicKey = topicEl.isOneSelected()? topicEl.getSelectedKey(): null; configs.setValue(CourseLecturesProvider.CONFIG_KEY_TOPIC, topicKey); - String lecturesTotalMax = lecturesTotalMinEl.getValue(); - configs.setValue(CourseLecturesProvider.CONFIG_KEY_TOTAL_LECTURES_MIN, lecturesTotalMax); + String lecturesTotalMin = lecturesTotalMinEl.getValue(); + configs.setValue(CourseLecturesProvider.CONFIG_KEY_TOTAL_LECTURES_MIN, lecturesTotalMin); - String lecturesTotalMin = lecturesTotalMaxEl.getValue(); - configs.setValue(CourseLecturesProvider.CONFIG_KEY_TOTAL_LECTURES_MAX, lecturesTotalMin); + String lecturesTotalMax = lecturesTotalMaxEl.getValue(); + configs.setValue(CourseLecturesProvider.CONFIG_KEY_TOTAL_LECTURES_MAX, lecturesTotalMax); if (surveyLectureStartEl.isOneSelected()) { String selectedKey = surveyLectureStartEl.getSelectedKey();