From 5cf1da76cd9e426ed080413e357308e2fbea42ad Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Thu, 20 Feb 2014 16:54:48 +0100 Subject: [PATCH] Adding delete all see BT#7273 --- main/work/student_work.php | 37 +++++++++++++++++++++++++++++++++++-- main/work/work.lib.php | 24 ++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 2 deletions(-) diff --git a/main/work/student_work.php b/main/work/student_work.php index bd5044b868..1d689f0cfd 100644 --- a/main/work/student_work.php +++ b/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').'
'; + foreach ($deletedItems as $item) { + $message .= $item['title'].'
'; + } + $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 '
'; -echo ''.Display::return_icon('back.png', get_lang('BackToWorksList'),'',ICON_SIZE_MEDIUM).''; +echo ''. + Display::return_icon('back.png', get_lang('BackToWorksList'), '', ICON_SIZE_MEDIUM).''; +if (api_is_allowed_to_edit()) { + echo ''. + Display::return_icon('delete.png', get_lang('DeleteAllFiles'), '', ICON_SIZE_MEDIUM).''; +} + echo '
'; $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++; diff --git a/main/work/work.lib.php b/main/work/work.lib.php index dc16b521ed..1abc297f73 100644 --- a/main/work/work.lib.php +++ b/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