Skip to content
Snippets Groups Projects
Commit cec99245 authored by srosse's avatar srosse
Browse files

OO-2636: roll call enabled not saved, better enable/disable behavior (rewrite the old settings)

parent 6558da0f
No related branches found
No related tags found
No related merge requests found
...@@ -69,6 +69,8 @@ public class LectureSettingsAdminController extends FormBasicController { ...@@ -69,6 +69,8 @@ public class LectureSettingsAdminController extends FormBasicController {
public LectureSettingsAdminController(UserRequest ureq, WindowControl wControl) { public LectureSettingsAdminController(UserRequest ureq, WindowControl wControl) {
super(ureq, wControl, "admin_settings"); super(ureq, wControl, "admin_settings");
initForm(ureq); initForm(ureq);
initializeValues();
updateUI();
} }
@Override @Override
...@@ -82,46 +84,25 @@ public class LectureSettingsAdminController extends FormBasicController { ...@@ -82,46 +84,25 @@ public class LectureSettingsAdminController extends FormBasicController {
String[] onValues = new String[] { translate("on") }; String[] onValues = new String[] { translate("on") };
enableEl = uifactory.addCheckboxesHorizontal("lecture.admin.enabled", courseCont, onKeys, onValues); enableEl = uifactory.addCheckboxesHorizontal("lecture.admin.enabled", courseCont, onKeys, onValues);
enableEl.addActionListener(FormEvent.ONCHANGE); enableEl.addActionListener(FormEvent.ONCHANGE);
if(lectureModule.isEnabled()) {
enableEl.select(onKeys[0], true);
}
String[] yesNoValues = new String[]{ translate("yes"), translate("no") }; String[] yesNoValues = new String[]{ translate("yes"), translate("no") };
canOverrideStandardConfigEl = uifactory.addRadiosHorizontal("lecture.can.override.standard.configuration", courseCont, yesNoKeys, yesNoValues); canOverrideStandardConfigEl = uifactory.addRadiosHorizontal("lecture.can.override.standard.configuration", courseCont, yesNoKeys, yesNoValues);
canOverrideStandardConfigEl.addActionListener(FormEvent.ONCHANGE); canOverrideStandardConfigEl.addActionListener(FormEvent.ONCHANGE);
if(lectureModule.isCanOverrideStandardConfiguration()) {
canOverrideStandardConfigEl.select(yesNoKeys[0], true);
} else {
canOverrideStandardConfigEl.select(yesNoKeys[1], true);
}
// roll call enabled // roll call enabled
rollCallEnableEl = uifactory.addCheckboxesHorizontal("lecture.rollcall.default.enabled", courseCont, onKeys, onValues); rollCallEnableEl = uifactory.addCheckboxesHorizontal("lecture.rollcall.default.enabled", courseCont, onKeys, onValues);
rollCallEnableEl.addActionListener(FormEvent.ONCHANGE); rollCallEnableEl.addActionListener(FormEvent.ONCHANGE);
if(lectureModule.isRollCallDefaultEnabled()) {
rollCallEnableEl.select(onKeys[0], true);
}
// calculate attendance // calculate attendance
calculateAttendanceRateEnableEl = uifactory.addCheckboxesHorizontal("lecture.calculate.attendance.rate.default.enabled", courseCont, onKeys, onValues); calculateAttendanceRateEnableEl = uifactory.addCheckboxesHorizontal("lecture.calculate.attendance.rate.default.enabled", courseCont, onKeys, onValues);
if(lectureModule.isRollCallCalculateAttendanceRateDefaultEnabled()) {
calculateAttendanceRateEnableEl.select(onKeys[0], true); attendanceRateEl = uifactory.addTextElement("lecture.attendance.rate.default", "lecture.attendance.rate.default", 2, "", courseCont);
}
long attendanceRate = Math.round(lectureModule.getRequiredAttendanceRateDefault() * 100.0d);
String attendanceRateStr = Long.toString(attendanceRate);
attendanceRateEl = uifactory.addTextElement("lecture.attendance.rate.default", "lecture.attendance.rate.default", 2, attendanceRateStr, courseCont);
attendanceRateEl.setMandatory(true); attendanceRateEl.setMandatory(true);
attendanceRateEl.setDisplaySize(2); attendanceRateEl.setDisplaySize(2);
// sync calendars // sync calendars
syncTeachersCalendarEnableEl = uifactory.addCheckboxesHorizontal("sync.teachers.calendar.enabled", courseCont, onKeys, onValues); syncTeachersCalendarEnableEl = uifactory.addCheckboxesHorizontal("sync.teachers.calendar.enabled", courseCont, onKeys, onValues);
if(lectureModule.isTeacherCalendarSyncEnabledDefault()) {
syncTeachersCalendarEnableEl.select(onKeys[0], true);
}
syncCourseCalendarEnableEl = uifactory.addCheckboxesHorizontal("sync.course.calendar.enabled", courseCont, onKeys, onValues); syncCourseCalendarEnableEl = uifactory.addCheckboxesHorizontal("sync.course.calendar.enabled", courseCont, onKeys, onValues);
if(lectureModule.isCourseCalendarSyncEnabledDefault()) {
syncCourseCalendarEnableEl.select(onKeys[0], true);
}
//global configuration //global configuration
globalCont = FormLayoutContainer.createDefaultFormLayout("global", getTranslator()); globalCont = FormLayoutContainer.createDefaultFormLayout("global", getTranslator());
...@@ -130,82 +111,141 @@ public class LectureSettingsAdminController extends FormBasicController { ...@@ -130,82 +111,141 @@ public class LectureSettingsAdminController extends FormBasicController {
formLayout.add("global", globalCont); formLayout.add("global", globalCont);
partiallyDoneEnabledEl = uifactory.addCheckboxesVertical("lecture.status.partially.done.enabled", globalCont, onKeys, onValues, 1); partiallyDoneEnabledEl = uifactory.addCheckboxesVertical("lecture.status.partially.done.enabled", globalCont, onKeys, onValues, 1);
if(lectureModule.isStatusPartiallyDoneEnabled()) {
partiallyDoneEnabledEl.select(onKeys[0], true);
}
String[] statusKeys = new String[]{ LectureBlockStatus.cancelled.name() }; String[] statusKeys = new String[]{ LectureBlockStatus.cancelled.name() };
String[] statusValues = new String[]{ translate(LectureBlockStatus.cancelled.name()) }; String[] statusValues = new String[]{ translate(LectureBlockStatus.cancelled.name()) };
statusEnabledEl = uifactory.addCheckboxesVertical("lecture.status.enabled", globalCont, statusKeys, statusValues, 1); statusEnabledEl = uifactory.addCheckboxesVertical("lecture.status.enabled", globalCont, statusKeys, statusValues, 1);
if(lectureModule.isStatusCancelledEnabled()) {
statusEnabledEl.select(LectureBlockStatus.cancelled.name(), true);
}
// reminder enabled // reminder enabled
reminderEnableEl = uifactory.addCheckboxesHorizontal("lecture.reminder.enabled", globalCont, onKeys, onValues); reminderEnableEl = uifactory.addCheckboxesHorizontal("lecture.reminder.enabled", globalCont, onKeys, onValues);
reminderEnableEl.addActionListener(FormEvent.ONCHANGE); reminderEnableEl.addActionListener(FormEvent.ONCHANGE);
reminderPeriodEl = uifactory.addTextElement("lecture.reminder.period", "lecture.reminder.period", 16, "", globalCont);
reminderPeriodEl.setMandatory(true);
// auto close period
autoClosePeriodEl = uifactory.addTextElement("lecture.auto.close.period", "lecture.auto.close.period", 16, "", globalCont);
autoClosePeriodEl.setMandatory(true);
authorizedAbsenceEnableEl = uifactory.addCheckboxesHorizontal("lecture.authorized.absence.enabled", globalCont, onKeys, onValues);
authorizedAbsenceEnableEl.addActionListener(FormEvent.ONCHANGE);
countAuthorizedAbsenceAsAttendantEl = uifactory.addCheckboxesHorizontal("lecture.count.authorized.absence.attendant", globalCont, onKeys, onValues);
absenceDefaultAuthorizedEl = uifactory.addCheckboxesHorizontal("lecture.absence.default.authorized", globalCont, onKeys, onValues);
teacherCanAuthorizeAbsenceEl = uifactory.addCheckboxesHorizontal("lecture.teacher.can.authorize.absence", globalCont, onKeys, onValues);
// appeal enabled
appealAbsenceEnableEl = uifactory.addCheckboxesHorizontal("lecture.appeal.absence.enabled", globalCont, onKeys, onValues);
appealAbsenceEnableEl.addActionListener(FormEvent.ONCHANGE);
appealPeriodEl = uifactory.addTextElement("lecture.appeal.absence.period", "lecture.appeal.absence.period", 16, "", globalCont);
appealPeriodEl.setMandatory(true);
//buttons
FormLayoutContainer buttonsWrapperCont = FormLayoutContainer.createDefaultFormLayout("global", getTranslator());
buttonsWrapperCont.setRootForm(mainForm);
formLayout.add("buttonsWrapper", buttonsWrapperCont);
FormLayoutContainer buttonsCont = FormLayoutContainer.createButtonLayout("buttons", getTranslator());
buttonsWrapperCont.add(buttonsCont);
uifactory.addFormSubmitButton("save", buttonsCont);
}
private void initializeValues() {
if(lectureModule.isEnabled()) {
enableEl.select(onKeys[0], true);
}
if(lectureModule.isCanOverrideStandardConfiguration()) {
canOverrideStandardConfigEl.select(yesNoKeys[0], true);
} else {
canOverrideStandardConfigEl.select(yesNoKeys[1], true);
}
if(lectureModule.isRollCallDefaultEnabled()) {
rollCallEnableEl.select(onKeys[0], true);
} else {
rollCallEnableEl.uncheckAll();
}
if(lectureModule.isRollCallCalculateAttendanceRateDefaultEnabled()) {
calculateAttendanceRateEnableEl.select(onKeys[0], true);
} else {
calculateAttendanceRateEnableEl.uncheckAll();
}
long attendanceRate = Math.round(lectureModule.getRequiredAttendanceRateDefault() * 100.0d);
attendanceRateEl.setValue(Long.toString(attendanceRate));
if(lectureModule.isTeacherCalendarSyncEnabledDefault()) {
syncTeachersCalendarEnableEl.select(onKeys[0], true);
} else {
syncCourseCalendarEnableEl.uncheckAll();
}
if(lectureModule.isCourseCalendarSyncEnabledDefault()) {
syncCourseCalendarEnableEl.select(onKeys[0], true);
} else {
syncCourseCalendarEnableEl.uncheckAll();
}
if(lectureModule.isStatusPartiallyDoneEnabled()) {
partiallyDoneEnabledEl.select(onKeys[0], true);
} else {
partiallyDoneEnabledEl.uncheckAll();
}
if(lectureModule.isStatusCancelledEnabled()) {
statusEnabledEl.select(LectureBlockStatus.cancelled.name(), true);
} else {
statusEnabledEl.uncheckAll();
}
if(lectureModule.isRollCallReminderEnabled()) { if(lectureModule.isRollCallReminderEnabled()) {
reminderEnableEl.select(onKeys[0], true); reminderEnableEl.select(onKeys[0], true);
} else {
reminderEnableEl.uncheckAll();
} }
String reminderPeriod = ""; String reminderPeriod = "";
if(lectureModule.getRollCallReminderPeriod() > 0) { if(lectureModule.getRollCallReminderPeriod() > 0) {
reminderPeriod = Integer.toString(lectureModule.getRollCallReminderPeriod()); reminderPeriod = Integer.toString(lectureModule.getRollCallReminderPeriod());
} }
reminderPeriodEl = uifactory.addTextElement("lecture.reminder.period", "lecture.reminder.period", 16, reminderPeriod, globalCont); reminderPeriodEl.setValue(reminderPeriod);
reminderPeriodEl.setMandatory(true);
// auto close period
String autoClosePeriod = ""; String autoClosePeriod = "";
if(lectureModule.getRollCallAutoClosePeriod() > 0) { if(lectureModule.getRollCallAutoClosePeriod() > 0) {
autoClosePeriod = Integer.toString(lectureModule.getRollCallAutoClosePeriod()); autoClosePeriod = Integer.toString(lectureModule.getRollCallAutoClosePeriod());
} }
autoClosePeriodEl = uifactory.addTextElement("lecture.auto.close.period", "lecture.auto.close.period", 16, autoClosePeriod, globalCont); autoClosePeriodEl.setValue(autoClosePeriod);
autoClosePeriodEl.setMandatory(true);
authorizedAbsenceEnableEl = uifactory.addCheckboxesHorizontal("lecture.authorized.absence.enabled", globalCont, onKeys, onValues);
authorizedAbsenceEnableEl.addActionListener(FormEvent.ONCHANGE);
if(lectureModule.isAuthorizedAbsenceEnabled()) { if(lectureModule.isAuthorizedAbsenceEnabled()) {
authorizedAbsenceEnableEl.select(onKeys[0], true); authorizedAbsenceEnableEl.select(onKeys[0], true);
} else {
authorizedAbsenceEnableEl.uncheckAll();
} }
countAuthorizedAbsenceAsAttendantEl = uifactory.addCheckboxesHorizontal("lecture.count.authorized.absence.attendant", globalCont, onKeys, onValues);
if(lectureModule.isCountAuthorizedAbsenceAsAttendant()) { if(lectureModule.isCountAuthorizedAbsenceAsAttendant()) {
countAuthorizedAbsenceAsAttendantEl.select(onKeys[0], true); countAuthorizedAbsenceAsAttendantEl.select(onKeys[0], true);
} else {
countAuthorizedAbsenceAsAttendantEl.uncheckAll();
} }
absenceDefaultAuthorizedEl = uifactory.addCheckboxesHorizontal("lecture.absence.default.authorized", globalCont, onKeys, onValues);
if(lectureModule.isAbsenceDefaultAuthorized()) { if(lectureModule.isAbsenceDefaultAuthorized()) {
absenceDefaultAuthorizedEl.select(onKeys[0], true); absenceDefaultAuthorizedEl.select(onKeys[0], true);
} else {
absenceDefaultAuthorizedEl.uncheckAll();
} }
teacherCanAuthorizeAbsenceEl = uifactory.addCheckboxesHorizontal("lecture.teacher.can.authorize.absence", globalCont, onKeys, onValues);
if(lectureModule.isTeacherCanAuthorizedAbsence()) { if(lectureModule.isTeacherCanAuthorizedAbsence()) {
teacherCanAuthorizeAbsenceEl.select(onKeys[0], true); teacherCanAuthorizeAbsenceEl.select(onKeys[0], true);
} else {
teacherCanAuthorizeAbsenceEl.uncheckAll();
} }
// appeal enabled
appealAbsenceEnableEl = uifactory.addCheckboxesHorizontal("lecture.appeal.absence.enabled", globalCont, onKeys, onValues);
appealAbsenceEnableEl.addActionListener(FormEvent.ONCHANGE);
if(lectureModule.isAbsenceAppealEnabled()) { if(lectureModule.isAbsenceAppealEnabled()) {
appealAbsenceEnableEl.select(onKeys[0], true); appealAbsenceEnableEl.select(onKeys[0], true);
} else {
appealAbsenceEnableEl.uncheckAll();
} }
String appealPeriod = ""; String appealPeriod = "";
if(lectureModule.getAbsenceAppealPeriod() > 0) { if(lectureModule.getAbsenceAppealPeriod() > 0) {
appealPeriod = Integer.toString(lectureModule.getAbsenceAppealPeriod()); appealPeriod = Integer.toString(lectureModule.getAbsenceAppealPeriod());
} }
appealPeriodEl = uifactory.addTextElement("lecture.appeal.absence.period", "lecture.appeal.absence.period", 16, appealPeriod, globalCont); appealPeriodEl.setValue(appealPeriod);
appealPeriodEl.setMandatory(true);
//buttons
FormLayoutContainer buttonsWrapperCont = FormLayoutContainer.createDefaultFormLayout("global", getTranslator());
buttonsWrapperCont.setRootForm(mainForm);
formLayout.add("buttonsWrapper", buttonsWrapperCont);
FormLayoutContainer buttonsCont = FormLayoutContainer.createButtonLayout("buttons", getTranslator());
buttonsWrapperCont.add(buttonsCont);
uifactory.addFormSubmitButton("save", buttonsCont);
updateUI();
}
@Override
protected void doDispose() {
//
} }
private void updateUI() { private void updateUI() {
...@@ -214,7 +254,6 @@ public class LectureSettingsAdminController extends FormBasicController { ...@@ -214,7 +254,6 @@ public class LectureSettingsAdminController extends FormBasicController {
authorizedAbsenceEnableEl.setVisible(enabled); authorizedAbsenceEnableEl.setVisible(enabled);
attendanceRateEl.setVisible(enabled); attendanceRateEl.setVisible(enabled);
appealAbsenceEnableEl.setVisible(enabled); appealAbsenceEnableEl.setVisible(enabled);
authorizedAbsenceEnableEl.setVisible(enabled);
reminderEnableEl.setVisible(enabled); reminderEnableEl.setVisible(enabled);
syncTeachersCalendarEnableEl.setVisible(enabled); syncTeachersCalendarEnableEl.setVisible(enabled);
syncCourseCalendarEnableEl.setVisible(enabled); syncCourseCalendarEnableEl.setVisible(enabled);
...@@ -234,6 +273,12 @@ public class LectureSettingsAdminController extends FormBasicController { ...@@ -234,6 +273,12 @@ public class LectureSettingsAdminController extends FormBasicController {
teacherCanAuthorizeAbsenceEl.setVisible(authorizedAbsenceEnableEl.isVisible() && authorizedAbsenceEnableEl.isAtLeastSelected(1)); teacherCanAuthorizeAbsenceEl.setVisible(authorizedAbsenceEnableEl.isVisible() && authorizedAbsenceEnableEl.isAtLeastSelected(1));
} }
@Override
protected void doDispose() {
//
}
@Override @Override
protected boolean validateFormLogic(UserRequest ureq) { protected boolean validateFormLogic(UserRequest ureq) {
boolean allOk = true; boolean allOk = true;
...@@ -296,6 +341,9 @@ public class LectureSettingsAdminController extends FormBasicController { ...@@ -296,6 +341,9 @@ public class LectureSettingsAdminController extends FormBasicController {
@Override @Override
protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) { protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
if(enableEl == source) { if(enableEl == source) {
if(enableEl.isAtLeastSelected(1)) {
initializeValues();
}
updateUI(); updateUI();
} else if(appealAbsenceEnableEl == source || reminderEnableEl == source || authorizedAbsenceEnableEl == source) { } else if(appealAbsenceEnableEl == source || reminderEnableEl == source || authorizedAbsenceEnableEl == source) {
updateUI(); updateUI();
...@@ -322,6 +370,8 @@ public class LectureSettingsAdminController extends FormBasicController { ...@@ -322,6 +370,8 @@ public class LectureSettingsAdminController extends FormBasicController {
userToolsModule.setAvailableUserTools(aTools.toString()); userToolsModule.setAvailableUserTools(aTools.toString());
} }
lectureModule.setRollCallDefaultEnabled(rollCallEnableEl.isAtLeastSelected(1));
int autoClosePeriod = Integer.parseInt(autoClosePeriodEl.getValue()); int autoClosePeriod = Integer.parseInt(autoClosePeriodEl.getValue());
lectureModule.setRollCallAutoClosePeriod(autoClosePeriod); lectureModule.setRollCallAutoClosePeriod(autoClosePeriod);
......
...@@ -114,7 +114,7 @@ lecture.teacher.reminder.body=Reminder lectures block "{0}" in course {3} ...@@ -114,7 +114,7 @@ lecture.teacher.reminder.body=Reminder lectures block "{0}" in course {3}
lecture.teacher.reminder.subject=Reminder lectures block "{0}" lecture.teacher.reminder.subject=Reminder lectures block "{0}"
lecture.title=Title lecture.title=Title
lectures.admin.reasons=Reasons lectures.admin.reasons=Reasons
lectures.admin.settings=Seetings lectures and absence management lectures.admin.settings=Settings lectures and absence management
lectures.print.title=Lectures and absences of {0} lectures.print.title=Lectures and absences of {0}
lectures.repository.print.title=Lectures and absences of {1} in course {0} lectures.repository.print.title=Lectures and absences of {1} in course {0}
lectures.table.closed=Closed lectures blocks lectures.table.closed=Closed lectures blocks
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment