@@ -82,11 +82,13 @@ public function execute($last_result, $parameters = array())
8282
8383 // Validate SOP resource.
8484 // In case validation fails, we try to remove the record on both sides!
85- if (!$ cd || !$ course || !$ course_config_id || !$ resource_obj // Any requirement fails
85+ echo '----------------------------------------------------- ' . "\n" ;
86+
87+ if (empty ($ cd ) || empty ($ course ) || empty ($ course_config_id ) || empty ($ resource_obj ) // Any requirement fails
8688 || !ScheduleHelper::validateCourseAndResource ($ scheduled_events ['seminar_id ' ], $ resource_obj ['config_id ' ]) // The server config id of the course and the oc_resource does not match
8789 || $ cd ->room_booking ->resource_id != $ scheduled_events ['resource_id ' ] // The resource of the record and course date does not match
88- || $ cd ->room_booking ->begin != $ scheduled_events ['start ' ] // Start or Enddate are different
89- || $ cd ->room_booking ->end != $ scheduled_events ['end ' ]
90+ || $ cd ->room_booking ->begin != $ scheduled_events ['coursedate_start ' ] // Start or Enddate are different
91+ || $ cd ->room_booking ->end != $ scheduled_events ['coursedate_end ' ]
9092 /* || intval($cd->end_time) < $time */ // TODO: decide whether to remove those records that are expired!
9193 ) {
9294
@@ -98,6 +100,25 @@ public function execute($last_result, $parameters = array())
98100 $ print_date , $ print_course
99101 );
100102
103+ echo 'Grund der Abweichung: ' . "\n" ;
104+ if (empty ($ cd )) {
105+ echo 'Konnte den zugehörigen Termin nicht finden. Termin-ID: ' . $ scheduled_events ['date_id ' ] ."\n" ;
106+ } else if (empty ($ course )) {
107+ echo 'Konnte den zugehörigen Kurs nicht finden. Kurs-ID: ' . $ scheduled_events ['seminar_id ' ] ."\n" ;
108+ } else if (empty ($ course_config_id )) {
109+ echo 'Konnte die zugehörige Kurskonfiguration nicht finden. Kurs-ID: ' . $ scheduled_events ['seminar_id ' ] ."\n" ;
110+ } else if (empty ($ resource_obj )) {
111+ echo 'Konnte Raum nicht finden. Raum-ID: ' . $ scheduled_events ['resource_id ' ] ."\n" ;
112+ } else if (!ScheduleHelper::validateCourseAndResource ($ scheduled_events ['seminar_id ' ], $ resource_obj ['config_id ' ])) {
113+ echo 'Die Opencast-Konfiguration für den Raum und den Kurs unterscheiden sich! ' . "\n" ;
114+ } else if ($ cd ->room_booking ->resource_id != $ scheduled_events ['resource_id ' ]) {
115+ echo 'Der Raum hat sich geändert. Event: ' . $ scheduled_events ['resource_id ' ] .', Buchung: ' . $ cd ->room_booking ->resource_id ."\n" ;
116+ } else if ($ cd ->room_booking ->begin != $ scheduled_events ['coursedate_start ' ]) {
117+ echo 'Die Startzeit ist unterschiedlich! Event: ' . date ('c ' , $ scheduled_events ['coursedate_start ' ]) .', Buchung: ' . date ('c ' , $ cd ->room_booking ->begin ) . "\n" ;
118+ } else if ($ cd ->room_booking ->end != $ scheduled_events ['coursedate_end ' ]) {
119+ echo 'Die Startzeit ist unterschiedlich! Event: ' . date ('c ' , $ scheduled_events ['coursedate_end ' ]) .', Buchung: ' . date ('c ' , $ cd ->room_booking ->end ) . "\n" ;
120+ }
121+
101122 $ oc_event_id = $ scheduled_events ['event_id ' ];
102123 $ oc_config_id = $ course_config_id ;
103124
@@ -125,8 +146,7 @@ public function execute($last_result, $parameters = array())
125146 // Delete the recording in SOP.
126147 ScheduledRecordings::unscheduleRecording ($ oc_event_id , $ scheduled_events ['resource_id ' ], $ scheduled_events ['date_id ' ]);
127148 } else {
128- // If validation is passed, we try to update to the record on both sides.
129- // Update the record.
149+ // If validation is passed, we try to update the record on both sides.
130150 echo sprintf (
131151 "Aktualisiere die Aufzeichnungsdaten am %s für den Kurs %s \n" ,
132152 $ cd ->getFullname (), $ course ->name
@@ -170,16 +190,20 @@ public function execute($last_result, $parameters = array())
170190 } else {
171191 echo _ ('Nicht über Stud.IP Termine geplante Events: ' ) . "\n" ;
172192 }
193+
173194 // Loop through the opencast scheduled events that are not yet proccessed above!
174195 // Each set is based on each opencast server config.
175196 foreach ($ oc_scheduled_events as $ oc_set ) {
176197 if (!empty ($ oc_set ['scheduled_events ' ])) {
177198 echo _ ('Opencast Server Config: ' ) . " # {$ oc_set ['config_id ' ]} \n" ;
178199 foreach ($ oc_set ['scheduled_events ' ] as $ scheduled_event ) {
179- echo $ scheduled_event ->identifier . ' ' . $ scheduled_event ->title . "\n" ;
180- if (StudipConfig::get ()->OPENCAST_MANAGE_ALL_OC_EVENTS ) {
181- $ scheduler_client = SchedulerClient::getInstance ($ oc_set ['config_id ' ]);
182- $ scheduler_client ->deleteEvent ($ scheduled_event ->identifier );
200+ // only touch events in the future
201+ if (strtotime ($ scheduled_event ->start ) > time ()) {
202+ echo $ scheduled_event ->identifier . ' ' . $ scheduled_event ->title . "\n" ;
203+ if (StudipConfig::get ()->OPENCAST_MANAGE_ALL_OC_EVENTS ) {
204+ $ scheduler_client = SchedulerClient::getInstance ($ oc_set ['config_id ' ]);
205+ $ scheduler_client ->deleteEvent ($ scheduled_event ->identifier );
206+ }
183207 }
184208 }
185209 }
0 commit comments