diff --git a/src/main/java/org/olat/course/nodes/appointments/ui/AppointmentListEditController.java b/src/main/java/org/olat/course/nodes/appointments/ui/AppointmentListEditController.java index 2dd806fae8b910e2aed7997c446a1e1a966381af..4f9f28076f0d8b2138adf03b5cdc17574c0c1ee9 100644 --- a/src/main/java/org/olat/course/nodes/appointments/ui/AppointmentListEditController.java +++ b/src/main/java/org/olat/course/nodes/appointments/ui/AppointmentListEditController.java @@ -138,9 +138,15 @@ public class AppointmentListEditController extends AppointmentListController { row.setStatusCSS("o_ap_status_" + appointment.getStatus().name()); } - boolean removeUser = Type.finding == topic.getType() - ? participations.size() > 0 && Status.confirmed == appointment.getStatus() - : participations.size() > 0; + boolean addUser = freeParticipations == null || freeParticipations.intValue() > 0; + boolean removeUser = participations.size() > 0; + if (Type.finding == topic.getType() && !noAppointmentConfirmed && Appointment.Status.confirmed != appointment.getStatus()) { + addUser = false; + removeUser = false; + } + if (addUser) { + forgeAddUserLink(row); + } if (removeUser) { forgeRemoveUserLink(row); } @@ -160,9 +166,7 @@ public class AppointmentListEditController extends AppointmentListController { forgeConfirmLink(row, confirmable); } } - if (freeParticipations == null || freeParticipations.intValue() > 0) { - forgeAddUserLink(row); - } + forgeDeleteLink(row); forgeEditLink(row);