diff --git a/src/main/java/org/olat/modules/appointments/ui/AppointmentListSelectionController.java b/src/main/java/org/olat/modules/appointments/ui/AppointmentListSelectionController.java index 67a8b881ca3a5b2aedfc5644e5a9989c6efef4e1..12428784b78af1f6ea6e188a6cdd6829a484b4e2 100644 --- a/src/main/java/org/olat/modules/appointments/ui/AppointmentListSelectionController.java +++ b/src/main/java/org/olat/modules/appointments/ui/AppointmentListSelectionController.java @@ -185,10 +185,11 @@ public class AppointmentListSelectionController extends AppointmentListControlle } else if (topic.isMultiParticipation() || userHasNoConfirmedParticipation) { row.setFreeParticipations(freeParticipations); - boolean selectable = Appointment.Status.confirmed == appointment.getStatus() - ? false - : freeParticipations == null // no limit - || freeParticipations.intValue() > 0; + + boolean selectable = Appointment.Status.planned == appointment.getStatus() || (topic.isAutoConfirmation() && !selected) + ? freeParticipations == null // no limit + || freeParticipations.intValue() > 0 + : false; boolean unselectable = selected && Appointment.Status.planned == appointment.getStatus(); boolean enabled = selectable || unselectable;