Browse Source

Add gradebook dependency page to see user results see BT#13099

jmontoyaa 7 years ago
parent
commit
b5569fbb82

+ 84 - 0
main/admin/gradebook_dependency.php

@@ -0,0 +1,84 @@
+<?php
+/* For licensing terms, see /license.txt */
+
+use Chamilo\CoreBundle\Entity\GradebookCategory;
+use Doctrine\Common\Collections\Criteria;
+use Knp\Component\Pager\Paginator;
+
+require_once __DIR__.'/../inc/global.inc.php';
+
+api_protect_admin_script();
+
+$allow = api_get_configuration_value('gradebook_dependency');
+if ($allow == false) {
+    api_not_allowed(true);
+}
+
+$categoryId = isset($_REQUEST['id']) ? (int) $_REQUEST['id'] : 1;
+
+$em = Database::getManager();
+$repo = $em->getRepository('ChamiloCoreBundle:GradebookCategory');
+/** @var GradebookCategory $category */
+$category = $repo->find($categoryId);
+if (!$category) {
+    api_not_allowed(true);
+}
+
+$categoryObj = Category::load($categoryId);
+/** @var Category $categoryObj */
+$categoryObj = $categoryObj[0];
+$dependencies = $categoryObj->getCourseListDependency();
+
+$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
+
+$currentUrl = api_get_self().'?';
+$table = Database::get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY);
+
+$tpl = new Template(get_lang('Gradebook'));
+$toolbar = Display::url(
+    Display::return_icon('back.png', get_lang('Add'), [], ICON_SIZE_MEDIUM),
+    api_get_path(WEB_CODE_PATH).'admin/gradebook_list.php'
+);
+
+if (empty($dependencies)) {
+    Display::addFlash(
+        Display::return_message(get_lang('ThisGradebookDoesntHaveDependencies'))
+    );
+}
+
+$content = '';
+$courseList = [];
+foreach ($dependencies as $courseId) {
+    $courseInfo = api_get_course_info_by_id($courseId);
+    $subCategory = Category::load(null, null, $courseInfo['code']);
+    /** @var Category $subCategory */
+    $subCategory = $subCategory[0];
+    $userList = CourseManager::get_student_list_from_course_code($courseInfo['code']);
+    $users = [];
+    foreach ($userList as $user) {
+        $userInfo = api_get_user_info($user['user_id']);
+        $result = Category::userFinishedCourse(
+            $user['user_id'],
+            $subCategory,
+            true
+        );
+        $userInfo['result'] = $result;
+        $users[] = $userInfo;
+    }
+    $courseInfo['users'] = $users;
+    $courseList[] = $courseInfo;
+}
+
+$tpl->assign('current_url', $currentUrl);
+$tpl->assign(
+    'actions',
+    Display::toolbarAction(
+        'toolbar',
+        [$toolbar],
+        [1, 4]
+    )
+);
+
+$tpl->assign('courses', $courseList);
+$layout = $tpl->get_template('admin/gradebook_dependency.tpl');
+$tpl->display($layout);

+ 0 - 1
main/admin/gradebook_list.php

@@ -238,7 +238,6 @@ $searchForm = new FormValidator(
 $searchForm->addText('keyword', '', false);
 $searchForm->addButtonSearch(get_lang('Search'));
 
-
 $pagination->renderer = function ($data) use ($tpl) {
     foreach ($data as $key => $value) {
         $tpl->assign($key, $value);

+ 29 - 0
main/template/default/admin/gradebook_dependency.tpl

@@ -0,0 +1,29 @@
+{% extends template ~ "/layout/layout_1_col.tpl" %}
+
+{% block content %}
+    {% for course in courses %}
+        <h3>{{ course.title }} ({{ course.code }})</h3>
+
+        {% if course.users %}
+            <table class="table">
+             <thead class="title">
+                <tr>
+                    <th>{{ 'Users' | get_lang }}</th>
+                    <th>{{ 'Result' | get_lang }}</th>
+                </tr>
+            </thead>
+            {% for user in course.users %}
+                <tr>
+                    <td>{{ user.complete_name }}</td>
+                    <td>
+                        {% if user.result %}
+                            <img src="{{ 'check-circle.png'|icon(22) }}" />
+                        {% else %}
+                        {% endif %}
+                    </td>
+                </tr>
+            {% endfor %}
+            </table>
+        {% endif %}
+    {% endfor %}
+{% endblock %}

+ 4 - 2
main/template/default/admin/gradebook_list.tpl

@@ -2,7 +2,7 @@
 
 {% block content %}
     {{ form }}
-    <table class="table promotions">
+    <table class="table">
         <thead class="title">
             <tr>
                 <th>{{ 'Name' | get_lang }}</th>
@@ -10,7 +10,6 @@
                 <th>{{ 'Actions' | get_lang }} </th>
             </tr>
         </thead>
-
     {% for item in gradebook_list %}
         <tr>
             <td>
@@ -23,6 +22,9 @@
                 <a href="{{ current_url }}&action=edit&id={{ item.id }}">
                     <img src="{{ 'edit.png'|icon(22) }}" />
                 </a>
+                <a href="{{ _p.web_main }}admin/gradebook_dependency.php?id={{ item.id }}">
+                    <img src="{{ '2rightarrow.png'|icon(22) }}" />
+                </a>
             </td>
         </tr>
     {% endfor %}