|
@@ -0,0 +1,63 @@
|
|
|
+<?php
|
|
|
+/**
|
|
|
+ * This script synchronize the exercise score (track_e_exercises.exe_result)
|
|
|
+ * with the LP score result (lp_item_view.score).
|
|
|
+ * This script works only if 1 there's one attempt
|
|
|
+ */
|
|
|
+
|
|
|
+exit;
|
|
|
+
|
|
|
+require_once '../../main/inc/global.inc.php';
|
|
|
+
|
|
|
+if (PHP_SAPI !== 'cli') {
|
|
|
+ die('This script can only be executed from the command line');
|
|
|
+}
|
|
|
+
|
|
|
+// The date before which the course must have been created to be considered
|
|
|
+$creation = '2013-01-01';
|
|
|
+// The last date at which the course must have been accessed to be considered.
|
|
|
+// If it was accessed *after* that date, it will NOT be considered for deletion.
|
|
|
+$access = '2013-01-01';
|
|
|
+
|
|
|
+$tableExercise = Database::get_main_table(TABLE_STATISTIC_TRACK_E_EXERCICES);
|
|
|
+$tableCourse = Database::get_main_table(TABLE_MAIN_COURSE);
|
|
|
+
|
|
|
+$sql = "SELECT
|
|
|
+ id, code, directory, db_name, creation_date, last_visit
|
|
|
+ FROM $tableCourse c
|
|
|
+ WHERE creation_date < '$creation' AND last_visit < '$access'
|
|
|
+ ORDER by code
|
|
|
+";
|
|
|
+echo $sql.PHP_EOL;
|
|
|
+
|
|
|
+$result = Database::query($sql);
|
|
|
+$items = Database::store_result($result, 'ASSOC');
|
|
|
+$total = 0;
|
|
|
+$count = 0;
|
|
|
+if (!empty($items)) {
|
|
|
+ foreach ($items as $item) {
|
|
|
+ $size = exec('du -sh '.__DIR__.'/../../courses/'.$item['directory']);
|
|
|
+ echo "Course ".$item['code'].'('.$item['id'].') created on '.$item['creation_date'].' and last used on '.$item['last_visit'].' uses '.substr($size, 0, 8).PHP_EOL;
|
|
|
+ //if (substr($size, 0, 4) == '160K' or substr($size, 0, 4) == '9,1M') {
|
|
|
+ CourseManager::delete_course($item['code']);
|
|
|
+ // The normal procedure moves the course directory to archive, so
|
|
|
+ // delete it there as well
|
|
|
+ echo('rm -rf '.__DIR__.'/../../archive/'.$item['directory'].'_*').PHP_EOL;
|
|
|
+ exec('rm -rf '.__DIR__.'/../../archive/'.$item['directory'].'_*');
|
|
|
+ // The normal procedure also created a database dump, but it is
|
|
|
+ // stored in the course folder, so no issue there...
|
|
|
+ if (substr($size, 3, 1) == 'K') {
|
|
|
+ $total += substr($size, 0, 3);
|
|
|
+ }
|
|
|
+ if (substr($size, 3, 1) == 'M') {
|
|
|
+ //$total += ;
|
|
|
+ $total += substr($size, 0, 3)*1024;
|
|
|
+ }
|
|
|
+ $count ++;
|
|
|
+ if ($count%100 == 0) {
|
|
|
+ echo '### Until now: '.$total.'K in '.$count.' courses'.PHP_EOL;
|
|
|
+ }
|
|
|
+ //}
|
|
|
+ }
|
|
|
+}
|
|
|
+echo $total.'K in '.$count.' courses'.PHP_EOL;
|