Internal: Improve definition of GradebookItem::Category::show_message_resource_delete() and showAllCategoryInfo() and calling locations

pull/5076/head
Yannick Warnier 2 years ago
commit 13762c8b01
  1. 2
      public/main/gradebook/index.php
  2. 8
      public/main/gradebook/lib/GradebookUtils.php
  3. 47
      public/main/gradebook/lib/be/category.class.php
  4. 14
      public/main/gradebook/lib/fe/displaygradebook.php
  5. 20
      public/main/gradebook/lib/fe/gradebooktable.class.php
  6. 2
      public/main/inc/lib/exercise.lib.php
  7. 2
      public/main/lp/lp_final_item.php

@ -810,7 +810,7 @@ if (!empty($selectCat)) {
}
$course_id = CourseManager::get_course_by_category($selectCat);
$show_message = Category::show_message_resource_delete($course_id);
if ('' == $show_message) {
if (empty($show_message)) {
// Student
if (!api_is_allowed_to_edit() && !api_is_excluded_user_type()) {
if ($category) {

@ -231,7 +231,7 @@ class GradebookUtils
$selectcat = $selectcat->get_id();
$modify_icons = null;
if (false === $show_message) {
if ('' === $show_message) {
$visibility_icon = (0 == $cat->is_visible()) ? ActionIcon::INVISIBLE : ActionIcon::VISIBLE;
$visibility_command = (0 == $cat->is_visible()) ? 'set_visible' : 'set_invisible';
@ -339,7 +339,7 @@ class GradebookUtils
$message_eval = Category::show_message_resource_delete($eval->getCourseId());
$courseParams = api_get_cidreq_params($eval->getCourseId(), $eval->getSessionId());
if (false === $message_eval && api_is_allowed_to_edit(null, true)) {
if ('' === $message_eval && api_is_allowed_to_edit(null, true)) {
$visibility_icon = 0 == $eval->is_visible() ? ActionIcon::INVISIBLE : ActionIcon::VISIBLE;
$visibility_command = 0 == $eval->is_visible() ? 'set_visible' : 'set_invisible';
if ($is_locked && !api_is_platform_admin()) {
@ -407,7 +407,7 @@ class GradebookUtils
$courseParams = api_get_cidreq_params($link->getCourseId(), $link->get_session_id());
if (false === $message_link) {
if ('' === $message_link) {
$visibility_icon = 0 == $link->is_visible() ? ActionIcon::INVISIBLE : ActionIcon::VISIBLE;
$visibility_command = 0 == $link->is_visible() ? 'set_visible' : 'set_invisible';
@ -753,7 +753,7 @@ class GradebookUtils
// Generate document HTML
$content_html = DocumentManager::replace_user_info_into_html(
$user_id,
api_get_course_info($course_code),
api_get_course_info_by_id($course_code),
$sessionId,
$is_preview
);

@ -733,8 +733,9 @@ class Category implements GradebookItem
/**
* Delete this evaluation from the database.
* @throws Exception
*/
public function delete()
public function delete(): void
{
$table = Database::get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY);
$sql = 'DELETE FROM '.$table.' WHERE id = '.intval($this->id);
@ -742,51 +743,56 @@ class Category implements GradebookItem
}
/**
* @param int $course_id
* Return an HTML span block if the given resource has been deleted
* @param ?int $courseId
*
* @return bool|string
* @return string
* @throws \Doctrine\DBAL\Exception
* @throws Exception
*/
public static function show_message_resource_delete($course_id)
public static function show_message_resource_delete(?int $courseId): string
{
$course_id = (int) $course_id;
if (empty($courseId)) {
return '';
}
$table = Database::get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY);
$sql = 'SELECT count(*) AS num
FROM '.$table.'
$sql = "SELECT count(*) AS num
FROM $table
WHERE
c_id = "'.$course_id.'" AND
visible = 3';
c_id = $courseId AND
visible = 3";
$res = Database::query($sql);
$option = Database::fetch_array($res, 'ASSOC');
$option = Database::fetch_array($res);
if ($option['num'] >= 1) {
return '&nbsp;&nbsp;<span class="resource-deleted">
(&nbsp;'.get_lang('The resource has been deleted').'&nbsp;)
</span>';
}
return false;
return '';
}
/**
* Shows all information of an category.
* Shows all information of a category.
*
* @param int $categoryId
*
* @return array
* @throws \Doctrine\DBAL\Exception
* @throws Exception
*/
public function showAllCategoryInfo($categoryId)
public function showAllCategoryInfo(int $categoryId): array
{
$categoryId = (int) $categoryId;
if (empty($categoryId)) {
return [];
}
$table = Database::get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY);
$sql = 'SELECT * FROM '.$table.'
WHERE id = '.$categoryId;
$sql = "SELECT * FROM $table
WHERE id = $categoryId";
$result = Database::query($sql);
$row = Database::fetch_array($result, 'ASSOC');
return $row;
return Database::fetch_array($result);
}
/**
@ -2055,10 +2061,7 @@ class Category implements GradebookItem
$user_id = (int) $user_id;
$categoryId = $category->getId();
$sessionId = $category->getSession() ? $category->getSession()->getId() : 0;
$courseCode = $category->getCourse()->getId();
$courseInfo = api_get_course_info($courseCode);
$courseId = $courseInfo['real_id'];
$courseId = $category->getCourse()->getId();
$userFinishedCourse = self::userFinishedCourse($user_id, $category, true);
if (!$userFinishedCourse) {
return false;

@ -256,8 +256,8 @@ class DisplayGradebook
);
}
$course_id = CourseManager::get_course_by_category($selectcat);
$message_resource = Category::show_message_resource_delete($course_id);
$courseId = CourseManager::get_course_by_category($selectcat);
$messageResource = Category::show_message_resource_delete($courseId);
$grade_model_id = $catobj->get_grade_model_id();
$header = null;
if (isset($catobj) && !empty($catobj)) {
@ -345,13 +345,13 @@ class DisplayGradebook
$line = '';
}
$header .= '</select></form></td>';
if (!empty($simple_search_form) && false === $message_resource) {
if (!empty($simple_search_form) && empty($messageResource)) {
$header .= '<td style="vertical-align: top;">'.$simple_search_form->toHtml().'</td>';
} else {
$header .= '<td></td>';
}
if (!($is_course_admin &&
false === $message_resource &&
empty($messageResource) &&
isset($_GET['selectcat']) && 0 != $_GET['selectcat']) &&
isset($_GET['studentoverview'])
) {
@ -379,12 +379,12 @@ class DisplayGradebook
if ('' == $my_api_cidreq) {
$my_api_cidreq = 'cidReq='.$my_category['course_code'];
}
if ($show_add_link && !$message_resource) {
if ($show_add_link && empty($messageResource)) {
$actionsLeft .= '<a href="gradebook_add_eval.php?'.$my_api_cidreq.'&selectcat='.$catobj->get_id().'" >'.
Display::getMdiIcon('table-plus', 'ch-tool-icon', null, ICON_SIZE_MEDIUM, get_lang('Add classroom activity')).'</a>';
$cats = Category::load($selectcat);
if (null != $cats[0]->get_course_code() && !$message_resource) {
if (null != $cats[0]->get_course_code() && empty($messageResource)) {
$actionsLeft .= '<a href="gradebook_add_link.php?'.$my_api_cidreq.'&selectcat='.$catobj->get_id().'">'.
Display::getMdiIcon('link-plus', 'ch-tool-icon', null, ICON_SIZE_MEDIUM, get_lang('Add online activity')).'</a>';
} else {
@ -399,7 +399,7 @@ class DisplayGradebook
}
if ('0' != $selectcat && $accessToRead) {
if (!$message_resource) {
if (empty($messageResource)) {
$actionsLeft .= '<a href="gradebook_flatview.php?'.$my_api_cidreq.'&selectcat='.$catobj->get_id().'">'.
Display::getMdiIcon('chart-box', 'ch-tool-icon', null, ICON_SIZE_MEDIUM, get_lang('List View')).'</a>';

@ -459,7 +459,7 @@ class GradebookTable extends SortableTable
// Edit (for admins).
if ($this->teacherView) {
$show_message = Category::show_message_resource_delete($item->getCourseId());
if (false === $show_message) {
if (empty($show_message)) {
$row[] = $this->build_edit_column($item);
}
} else {
@ -471,12 +471,14 @@ class GradebookTable extends SortableTable
$totalResult = [];
if (isset($data['result_score'])) {
$totalResult = [
$data['result_score'][0],
$data['result_score'][1],
$data['result_score'][0] ?? 0,
$data['result_score'][1] ?? 0,
];
}
if (empty($model)) {
$data['best_score'][0] = $data['best_score'][0] ?? 0;
$data['best_score'][1] = $data['best_score'][1] ?? 0;
$totalBest = [
$scoredisplay->format_score($totalBest[0] + $data['best_score'][0]),
$scoredisplay->format_score($totalBest[1] + $data['best_score'][1]),
@ -528,7 +530,7 @@ class GradebookTable extends SortableTable
$this->dataForGraph['my_result'][] = floatval($totalResultAverageValue);
$this->dataForGraph['average'][] = floatval($totalAverageValue);
$this->dataForGraph['my_result_no_float'][] = $data['result_score'][0];
$this->dataForGraph['my_result_no_float'][] = $data['result_score'][0] ?? 0;
if (empty($model)) {
// Ranking
@ -634,7 +636,7 @@ class GradebookTable extends SortableTable
(isset($_GET['action']) && 'export_all' != $_GET['action'] || !isset($_GET['action']))
) {
$show_message = Category::show_message_resource_delete($item->getCourseId());
if (false === $show_message) {
if (empty($show_message)) {
if (false == $this->exportToPdf) {
$row[] = $this->build_edit_column($item);
}
@ -1236,7 +1238,7 @@ class GradebookTable extends SortableTable
$show_message = Category::show_message_resource_delete($course_id);
// course/platform admin can go to the view_results page
if (api_is_allowed_to_edit() && false === $show_message) {
if (api_is_allowed_to_edit() && empty($show_message)) {
if ('presence' == $item->get_type()) {
return '&nbsp;'
.'<a href="gradebook_view_result.php?cidReq='.$course_id.'&amp;selecteval='.$item->get_id().'">'
@ -1253,13 +1255,13 @@ class GradebookTable extends SortableTable
.$item->get_name()
.'</a>&nbsp;'.$extra;
}
} elseif (ScoreDisplay::instance()->is_custom() && false === $show_message) {
} elseif (ScoreDisplay::instance()->is_custom() && empty($show_message)) {
// students can go to the statistics page (if custom display enabled)
return '&nbsp;'
.'<a href="gradebook_statistics.php?'.api_get_cidreq().'&selecteval='.$item->get_id().'">'
.$item->get_name()
.'</a>';
} elseif (false === $show_message && !api_is_allowed_to_edit() && !ScoreDisplay::instance()->is_custom()) {
} elseif (empty($show_message) && !api_is_allowed_to_edit() && !ScoreDisplay::instance()->is_custom()) {
return '&nbsp;'
.'<a href="gradebook_statistics.php?'.api_get_cidreq().'&selecteval='.$item->get_id().'">'
.$item->get_name()
@ -1275,7 +1277,7 @@ class GradebookTable extends SortableTable
$url = $item->get_link();
$text = $item->get_name();
if (isset($url) && false === $show_message) {
if (isset($url) && empty($show_message)) {
$text = '&nbsp;<a href="'.$item->get_link().'">'
.$item->get_name()
.'</a>';

@ -5320,7 +5320,7 @@ EOT;
}
$resourceDeletedMessage = Category::show_message_resource_delete($courseId);
if (false !== $resourceDeletedMessage || api_is_allowed_to_edit() || api_is_excluded_user_type()) {
if (!empty($resourceDeletedMessage) || api_is_allowed_to_edit() || api_is_excluded_user_type()) {
return '';
}

@ -141,7 +141,7 @@ if (false == $accessGranted) {
$repo = Container::getGradeBookCategoryRepository();
$category = $repo->find($categoryId);
if (false === $show_message && !api_is_allowed_to_edit() && !api_is_excluded_user_type()) {
if (empty($show_message) && !api_is_allowed_to_edit() && !api_is_excluded_user_type()) {
$certificate = Category::generateUserCertificate($category, $userId);
if (!empty($certificate['pdf_url']) ||

Loading…
Cancel
Save