@@ -82,11 +82,13 @@ public function execute($last_result, $parameters = array())
82
82
83
83
// Validate SOP resource.
84
84
// 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
86
88
|| !ScheduleHelper::validateCourseAndResource ($ scheduled_events ['seminar_id ' ], $ resource_obj ['config_id ' ]) // The server config id of the course and the oc_resource does not match
87
89
|| $ 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 ' ]
90
92
/* || intval($cd->end_time) < $time */ // TODO: decide whether to remove those records that are expired!
91
93
) {
92
94
@@ -98,6 +100,25 @@ public function execute($last_result, $parameters = array())
98
100
$ print_date , $ print_course
99
101
);
100
102
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
+
101
122
$ oc_event_id = $ scheduled_events ['event_id ' ];
102
123
$ oc_config_id = $ course_config_id ;
103
124
@@ -125,8 +146,7 @@ public function execute($last_result, $parameters = array())
125
146
// Delete the recording in SOP.
126
147
ScheduledRecordings::unscheduleRecording ($ oc_event_id , $ scheduled_events ['resource_id ' ], $ scheduled_events ['date_id ' ]);
127
148
} 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.
130
150
echo sprintf (
131
151
"Aktualisiere die Aufzeichnungsdaten am %s für den Kurs %s \n" ,
132
152
$ cd ->getFullname (), $ course ->name
@@ -170,16 +190,20 @@ public function execute($last_result, $parameters = array())
170
190
} else {
171
191
echo _ ('Nicht über Stud.IP Termine geplante Events: ' ) . "\n" ;
172
192
}
193
+
173
194
// Loop through the opencast scheduled events that are not yet proccessed above!
174
195
// Each set is based on each opencast server config.
175
196
foreach ($ oc_scheduled_events as $ oc_set ) {
176
197
if (!empty ($ oc_set ['scheduled_events ' ])) {
177
198
echo _ ('Opencast Server Config: ' ) . " # {$ oc_set ['config_id ' ]} \n" ;
178
199
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
+ }
183
207
}
184
208
}
185
209
}
0 commit comments