Browse Source

Adding delete all see BT#7273

Julio Montoya 11 years ago
parent
commit
5cf1da76cd
2 changed files with 59 additions and 2 deletions
  1. 35 2
      main/work/student_work.php
  2. 24 0
      main/work/work.lib.php

+ 35 - 2
main/work/student_work.php

@@ -54,13 +54,44 @@ if (!empty($group_id)) {
     }
 }
 
+$action = isset($_GET['action']) ? $_GET['action'] : null;
+
+switch ($action) {
+    case 'delete_all':
+        if (api_is_allowed_to_edit()) {
+            $deletedItems = deleteAllWorkPerUser($studentId, $courseInfo);
+            if (!empty($deletedItems)) {
+                $message = get_lang('DocDel').'<br >';
+                foreach ($deletedItems as $item) {
+                    $message .= $item['title'].'<br />';
+                }
+                $message = Display::return_message($message, 'info', false);
+                Session::write('message', $message);
+            }
+            header('Location: '.api_get_self().'?studentId='.$studentId.'&'.api_get_cidreq());
+            exit;
+        }
+        break;
+}
+
 $interbreadcrumb[] = array ('url' => api_get_path(WEB_CODE_PATH).'work/work.php?'.api_get_cidreq(), 'name' => get_lang('StudentPublications'));
 $interbreadcrumb[] = array ('url' => '#', 'name' => $userInfo['complete_name']);
 
 Display :: display_header(null);
 
+echo Session::read('message');
+Session::erase('message');
+
 echo '<div class="actions">';
-echo '<a href="'.api_get_path(WEB_CODE_PATH).'work/work.php?'.api_get_cidreq().'&origin='.$origin.'&gradebook='.$gradebook.'">'.Display::return_icon('back.png', get_lang('BackToWorksList'),'',ICON_SIZE_MEDIUM).'</a>';
+echo '<a href="'.api_get_path(WEB_CODE_PATH).'work/work.php?'.api_get_cidreq().'">'.
+        Display::return_icon('back.png', get_lang('BackToWorksList'), '', ICON_SIZE_MEDIUM).'</a>';
+if (api_is_allowed_to_edit()) {
+    echo '<a
+            onclick="javascript:if(!confirm(\''.get_lang('AreYouSureToDelete').'\')) return false;"
+            href="'.api_get_path(WEB_CODE_PATH).'work/student_work.php?action=delete_all&studentId='.$studentId.'&'.api_get_cidreq().'">'.
+        Display::return_icon('delete.png', get_lang('DeleteAllFiles'), '', ICON_SIZE_MEDIUM).'</a>';
+}
+
 echo '</div>';
 
 $workPerUser = getWorkPerUser($studentId);
@@ -68,7 +99,9 @@ $workPerUser = getWorkPerUser($studentId);
 $table = new HTML_Table(array('class' => 'data_table'));
 $column = 0;
 $row = 0;
-$headers = array(get_lang('Title'), get_lang('HandedOutDate'), get_lang('HandOutDateLimit'), get_lang('Score'), get_lang('Actions'));
+$headers = array(
+    get_lang('Title'), get_lang('HandedOutDate'), get_lang('HandOutDateLimit'), get_lang('Score'), get_lang('Actions')
+);
 foreach ($headers as $header) {
     $table->setHeaderContents($row, $column, $header);
     $column++;

+ 24 - 0
main/work/work.lib.php

@@ -3379,6 +3379,30 @@ function updatePublicationAssignment($workId, $params, $courseInfo, $group_id)
     }
 }
 
+/**
+ * Delete all work by student
+ * @param int $userId
+ * @param array $courseInfo
+ * @return array return deleted items
+ */
+function deleteAllWorkPerUser($userId, $courseInfo)
+{
+    $deletedItems = array();
+    $workPerUser = getWorkPerUser($userId);
+    if (!empty($workPerUser)) {
+        foreach ($workPerUser as $work) {
+            $work = $work['work'];
+            foreach ($work->user_results as $userResult) {
+                $result = deleteWorkItem($userResult['id'], $courseInfo);
+                if ($result) {
+                    $deletedItems[] = $userResult;
+                }
+            }
+        }
+    }
+    return $deletedItems;
+}
+
 /**
  * @param int $item_id
  * @param array course info