Răsfoiți Sursa

Divers work fixes see BT#6418

Julio Montoya 11 ani în urmă
părinte
comite
725ad52eb4
5 a modificat fișierele cu 73 adăugiri și 85 ștergeri
  1. 1 1
      main/work/student_work.php
  2. 2 0
      main/work/upload.php
  3. 21 17
      main/work/work.lib.php
  4. 48 65
      main/work/work.php
  5. 1 2
      main/work/work_missing.php

+ 1 - 1
main/work/student_work.php

@@ -115,7 +115,7 @@ foreach ($workPerUser as $work) {
         }
 
         $url = api_get_path(WEB_CODE_PATH).'work/edit.php?'.api_get_cidreq().'&item_id='.$userResult['id'].'&id='.$workId.'&parent_id='.$workId;
-        $links .= Display::url(Display::return_icon('edit.png'), $url);
+        $links .= Display::url(Display::return_icon('edit.png', get_lang('Comment')), $url);
 
         $table->setCellContents($row, $column, $links);
 

+ 2 - 0
main/work/upload.php

@@ -58,6 +58,8 @@ $is_author = false;
 
 $parent_data['qualification'] = intval($parent_data['qualification']);
 
+//  @todo add an option to allow/block multiple attempts.
+
 if (!empty($parent_data) && !empty($parent_data['qualification'])) {
     $count =  get_work_count_by_student($user_id, $work_id);
     if ($count >= 1) {

+ 21 - 17
main/work/work.lib.php

@@ -24,7 +24,7 @@ require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.
  * @param	integer	Whether to show upload form option
  * @return	void
  */
-function display_action_links($id, $cur_dir_path, $show_tool_options, $display_upload_link, $action)
+function display_action_links($id, $cur_dir_path, $action)
 {
 	global $gradebook;
 
@@ -40,7 +40,7 @@ function display_action_links($id, $cur_dir_path, $show_tool_options, $display_u
         $display_output .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&origin='.$origin.'&gradebook='.$gradebook.'&id='.$my_back_id.'">'.Display::return_icon('back.png', get_lang('BackToWorksList'),'',ICON_SIZE_MEDIUM).'</a>';
     }
 
-    if ($show_tool_options && api_is_allowed_to_edit(null, true) && $origin != 'learnpath') {
+    if (api_is_allowed_to_edit(null, true) && $origin != 'learnpath') {
         // Create dir
         if (empty($id)) {
             $display_output .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;action=create_dir&origin='.$origin.'&gradebook='.$gradebook.'">';
@@ -415,6 +415,7 @@ function display_student_publications_list($id, $my_folder_data, $work_parents,
 	global $gradebook;
 
     $_course = api_get_course_info();
+
 	// Database table names
 	$work_table      = Database::get_course_table(TABLE_STUDENT_PUBLICATION);
 	$iprop_table     = Database::get_course_table(TABLE_ITEM_PROPERTY);
@@ -1878,7 +1879,6 @@ function send_reminder_users_without_publication($task_data)
 	global $_course;
     $sender_name = api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'), null, PERSON_NAME_EMAIL_ADDRESS);
 
-
 	$task_id = $task_data['id'];
 	$task_title = !empty($task_data['title']) ? $task_data['title'] : basename($task_data['url']);
 
@@ -1897,7 +1897,7 @@ function send_reminder_users_without_publication($task_data)
         $dear_line = get_lang('Dear')." ".api_get_person_name($user[1], $user[0]) .", \n\n";
         $body      = $dear_line.$content;
 
-		api_mail($name_user, $user[3], $subject, $body, $sender_name, $email_admin);
+        MessageManager::send_message($user[3], $subject, $body);
         $mails_sent_to[] = $name_user;
 	}
     return $mails_sent_to;
@@ -2040,9 +2040,9 @@ function get_list_users_without_publication($task_id, $studentId = null)
 	$task_id = intval($task_id);
 
 	if ($session_id == 0) {
-		$sql = "SELECT user_id as id FROM $work_table WHERE c_id = $course_id AND parent_id='$task_id'";
+		$sql = "SELECT user_id as id FROM $work_table WHERE c_id = $course_id AND parent_id='$task_id' AND active = 1";
 	} else {
-		$sql = "SELECT user_id as id FROM $work_table WHERE c_id = $course_id AND parent_id='$task_id' and session_id='".$session_id."'";
+		$sql = "SELECT user_id as id FROM $work_table WHERE c_id = $course_id AND parent_id='$task_id' and session_id='".$session_id."' AND active = 1";
 	}
 
 	$result = Database::query($sql);
@@ -2051,16 +2051,16 @@ function get_list_users_without_publication($task_id, $studentId = null)
 		$users_with_tasks[] = $row['id'];
 	}
 
-	if ($session_id == 0){
+	if ($session_id == 0) {
 		$sql_users = "SELECT cu.user_id, u.lastname, u.firstname, u.email FROM $table_course_user AS cu, $table_user AS u
-		              WHERE u.status!=1 and cu.course_code='".api_get_course_id()."' AND u.user_id=cu.user_id";
+		              WHERE u.status != 1 and cu.course_code='".api_get_course_id()."' AND u.user_id = cu.user_id";
 	} else {
 		$sql_users = "SELECT cu.id_user, u.lastname, u.firstname, u.email FROM $session_course_rel_user AS cu, $table_user AS u
-		              WHERE u.status!=1 and cu.course_code='".api_get_course_id()."' AND u.user_id=cu.id_user and cu.id_session='".$session_id."'";
+		              WHERE u.status != 1 and cu.course_code='".api_get_course_id()."' AND u.user_id = cu.id_user and cu.id_session = '".$session_id."'";
 	}
 
     if (!empty($studentId)) {
-        $sql_users.= "AND u.user_id = ".intval($studentId);
+        $sql_users.= " AND u.user_id = ".intval($studentId);
     }
 
     $group_id = api_get_group_id();
@@ -2080,15 +2080,18 @@ function get_list_users_without_publication($task_id, $studentId = null)
 	$users_without_tasks = array();
 	while ($row_users = Database::fetch_row($result_users)) {
 
-		if (in_array($row_users[0], $users_with_tasks)) continue;
+		if (in_array($row_users[0], $users_with_tasks)) {
+            continue;
+        }
+
 		if ($group_id && !in_array($row_users[0], $new_group_user_list)) {
             continue;
         }
-		//$user_id = array_shift($row_users);
+        $userId = $row_users[0];
         $row_users[0] = $row_users[1];
         $row_users[1] = $row_users[2];
 		$row_users[2] = Display::encrypted_mailto_link($row_users[3]);
-
+        $row_users[3] = $userId;
 		$users_without_tasks[] = $row_users;
 	}
 	return $users_without_tasks;
@@ -2102,13 +2105,14 @@ function get_list_users_without_publication($task_id, $studentId = null)
  * @author cvargas carlos.vargas@beeznest.com cfasanando, christian.fasanado@beeznest.com
  * @author Julio Montoya <gugli100@gmail.com> Fixes
  */
-function display_list_users_without_publication($task_id, $studentId = null) {
+function display_list_users_without_publication($task_id, $studentId = null)
+{
 	global $origin;
 	$table_header[] = array(get_lang('LastName'), true);
 	$table_header[] = array(get_lang('FirstName'), true);
 	$table_header[] = array(get_lang('Email'), true);
-	// table_data
-	$table_data = get_list_users_without_publication($task_id);
+
+	$data = get_list_users_without_publication($task_id);
 
 	$sorting_options = array();
 	$sorting_options['column'] = 1;
@@ -2131,5 +2135,5 @@ function display_list_users_without_publication($task_id, $studentId = null) {
 	$column_show[] = 1;
 	$column_show[] = 1;
 	$column_show[] = 1;
-	Display::display_sortable_config_table('work', $table_header, $table_data, $sorting_options, $paging_options, $my_params, $column_show);
+	Display::display_sortable_config_table('work', $table_header, $data, $sorting_options, $paging_options, $my_params, $column_show);
 }

+ 48 - 65
main/work/work.php

@@ -253,14 +253,10 @@ if ($origin == 'learnpath') {
 
 /*	Display links to upload form and tool options */
 
-if (!in_array($action, array('send_mail','add','create_dir','upload'))) {
+if (!in_array($action, array('add','create_dir'))) {
     $token = Security::get_token();
 }
 
-$show_tool_options = (in_array($action, array('list', 'add'))) ? true : false;
-
-$display_upload_link = $action == 'upload_form' ? false : true;
-
 if (!empty($my_folder_data)) {
     $homework = get_work_assignment_by_id($my_folder_data['id']);
 
@@ -291,10 +287,8 @@ if (!empty($my_folder_data)) {
         $expires_on = api_convert_and_format_date($homework['expires_on']);
 
         if ($has_ended) {
-            $display_upload_link = false;
             $message = Display::return_message(get_lang('EndDateAlreadyPassed').' '.$ends_on, 'error');
         } elseif ($has_expired) {
-            $display_upload_link = true;
             $message = Display::return_message(get_lang('ExpiryDateAlreadyPassed').' '.$expires_on, 'warning');
         } else {
             if ($has_expired) {
@@ -304,7 +298,7 @@ if (!empty($my_folder_data)) {
     }
 }
 
-display_action_links($work_id, $curdirpath, $show_tool_options, $display_upload_link, $action);
+display_action_links($work_id, $curdirpath, $action);
 
 echo $message;
 
@@ -730,84 +724,73 @@ switch ($action) {
         }
 
         /*	Display list of student publications */
-        if ($curdirpath == '/') {
-            $my_cur_dir_path = '';
-        } else {
-            $my_cur_dir_path = $curdirpath;
-        }
 
         if (!empty($my_folder_data['description'])) {
             echo '<p><div><strong>'.get_lang('Description').':</strong><p>'.Security::remove_XSS($my_folder_data['description'], STUDENT).'</p></div></p>';
         }
 
-        if (isset($work_id) && !empty($work_id) && !$display_list_users_without_publication) {
-
-        } elseif (isset($_GET['list']) && $_GET['list'] == 'without') {
-
-        } else {
-
-            $my_folder_data = get_work_data_by_id($work_id);
+        $my_folder_data = get_work_data_by_id($work_id);
 
-            $work_parents = array();
-            if (empty($my_folder_data)) {
-                $work_parents = getWorkList($work_id, $my_folder_data, $add_query);
-            }
+        $work_parents = array();
+        if (empty($my_folder_data)) {
+            $work_parents = getWorkList($work_id, $my_folder_data, $add_query);
+        }
 
-            if (api_is_allowed_to_edit()) {
+        if (api_is_allowed_to_edit()) {
 
-                // Work list
-                echo '<div class="row">';
-                echo '<div class="span9">';
+            // Work list
+            echo '<div class="row">';
+            echo '<div class="span9">';
 
-                if (!empty($group_id)) {
-                    $userList = GroupManager::get_users($group_id);
+            if (!empty($group_id)) {
+                $userList = GroupManager::get_users($group_id);
+            } else {
+                if (empty($session_id)) {
+                    $userList = CourseManager::get_user_list_from_course_code($course_code, $session_id, null, null, STUDENT);
                 } else {
-                    if (empty($session_id)) {
-                        $userList = CourseManager::get_user_list_from_course_code($course_code, $session_id, null, null, STUDENT);
-                    } else {
-                        $userList = CourseManager::get_user_list_from_course_code($course_code, $session_id, null, null, 0);
-                    }
-                    $userList = array_keys($userList);
+                    $userList = CourseManager::get_user_list_from_course_code($course_code, $session_id, null, null, 0);
                 }
+                $userList = array_keys($userList);
+            }
 
-                display_student_publications_list($work_id, $my_folder_data, $work_parents, $origin, $add_query, $userList);
-
-                echo '</div>';
-                echo '<div class="span3">';
+            display_student_publications_list($work_id, $my_folder_data, $work_parents, $origin, $add_query, $userList);
 
-                $table = new HTML_Table(array('class' => 'data_table'));
-                $column = 0;
-                $row = 0;
-                $headers = array(get_lang('Students'), get_lang('Works'));
-                foreach ($headers as $header) {
-                    $table->setHeaderContents($row, $column, $header);
-                    $column++;
+            echo '</div>';
+            echo '<div class="span3">';
+
+            $table = new HTML_Table(array('class' => 'data_table'));
+            $column = 0;
+            $row = 0;
+            $headers = array(get_lang('Students'), get_lang('Works'));
+            foreach ($headers as $header) {
+                $table->setHeaderContents($row, $column, $header);
+                $column++;
+            }
+            $row++;
+            $column = 0;
+
+            foreach ($userList as $userId) {
+                $user = api_get_user_info($userId);
+                $link = api_get_path(WEB_CODE_PATH).'work/student_work.php?'.api_get_cidreq().'&studentId='.$user['user_id'];
+                $url = Display::url(api_get_person_name($user['firstname'], $user['lastname']), $link);
+                $table->setCellContents($row, $column, $url);
+                $column++;
+                $userWorks = 0;
+                foreach ($work_parents as $work) {
+                    $userWorks += getUniqueStudentAttempts($work->id, $group_id, $course_id, $session_id, $user['user_id']);
                 }
+                $cell = $userWorks." / ".count($work_parents);
+                $table->setCellContents($row, $column, $cell);
                 $row++;
                 $column = 0;
+            }
 
-                foreach ($userList as $userId) {
-                    $user = api_get_user_info($userId);
-                    $link = api_get_path(WEB_CODE_PATH).'work/student_work.php?'.api_get_cidreq().'&studentId='.$user['user_id'];
-                    $url = Display::url(api_get_person_name($user['firstname'], $user['lastname']), $link);
-                    $table->setCellContents($row, $column, $url);
-                    $column++;
-                    $userWorks = 0;
-                    foreach ($work_parents as $work) {
-                        $userWorks += getUniqueStudentAttempts($work->id, $group_id, $course_id, $session_id, $user['user_id']);
-                    }
-                    $cell = $userWorks." / ".count($work_parents);
-                    $table->setCellContents($row, $column, $cell);
-                    $row++;
-                    $column = 0;
-                }
-
-                echo $table->toHtml();
+            echo $table->toHtml();
             echo '</div>';
         } else {
             display_student_publications_list($work_id, $my_folder_data, $work_parents, $origin, $add_query, null);
         }
-    }
+
     break;
 }
 if ($origin != 'learnpath') {

+ 1 - 2
main/work/work_missing.php

@@ -55,7 +55,7 @@ switch ($action) {
 $token = Security::get_token();
 
 if (!empty($group_id)) {
-    $group_properties  = GroupManager :: get_group_properties($group_id);
+    $group_properties  = GroupManager::get_group_properties($group_id);
     $show_work = false;
 
     if (api_is_allowed_to_edit(false, true)) {
@@ -82,7 +82,6 @@ if (isset($_GET['list']) && $_GET['list'] == 'with') {
     $interbreadcrumb[] = array ('url' => '#', 'name' => get_lang('UsersWithoutTask'));
 }
 
-
 Display :: display_header(null);
 
 echo '<div class="actions">';