index.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. $todas_las_categorías = $moodle_db->get('mdl_course_categories');
  3. $todos_los_cursos = $moodle_db->query("SELECT courseid, fullname, shortname, COALESCE(MIN(calculation) <> '', false) as formula, MAX(AGGREGATIONCOEF) > 0 as ponderacion FROM mdl_grade_items mgi JOIN mdl_course mc ON mc.id = mgi.courseid WHERE itemtype IN ('course', 'category') GROUP BY courseid, fullname, shortname");
  4. function imprimir_curso($category_id = null)
  5. {
  6. global $todas_las_categorías, $todos_los_cursos, $todos_los_items;
  7. # obtener subcategorías
  8. $categories = array_filter($todas_las_categorías, fn ($category) => $category['parent'] == $category_id ?? 0 && count(array_filter($todas_las_categorías, fn ($category) => $category['parent'] == $category_id ?? 0)) > 0);
  9. # print them as an accordion
  10. foreach ($categories as $category) : ?>
  11. <details>
  12. <summary><?= $category['name'] ?></summary>
  13. <?php imprimir_curso($category['id']) ?>
  14. </details>
  15. <?php endforeach;
  16. $courses = array_filter($todos_los_cursos, fn ($course) => $course['category'] == $category_id);
  17. if (count($courses) == 0) return;
  18. ?>
  19. <table>
  20. <tr>
  21. <th>Curso</th>
  22. <th>Construcción</th>
  23. <th>Ponderación</th>
  24. </tr>
  25. <tbody>
  26. <?php foreach ($courses as $course) : ?>
  27. <tr>
  28. <td>
  29. <?= $course['fullname'] ?>
  30. <small><?= $course['shortname'] ?></small>
  31. </td>
  32. <td>
  33. <?php
  34. if (boolval($course['formula'])) : ?>
  35. <i class="fas fa-check"></i>
  36. <?php else : ?>
  37. <i class="fas fa-times"></i>
  38. <?php endif ?>
  39. </td>
  40. <td>
  41. <?php
  42. if (boolval($course['ponderacion'])) : ?>
  43. <i class="fas fa-check"></i>
  44. <?php else : ?>
  45. <i class="fas fa-times"></i>
  46. <?php endif ?>
  47. </td>
  48. </tr>
  49. <?php endforeach ?>
  50. </tbody>
  51. </table>
  52. <?php } ?>
  53. <div class="grid">
  54. <label for="sin-construcción">
  55. Profesores que no han construido su curso
  56. <input type="radio" id="sin-construcción" name="construcción" value="false" checked />
  57. </label>
  58. <label for="construcción">
  59. Profesores que han construido su curso
  60. <input type="radio" id="construcción" name="construcción" value="true" checked />
  61. </label>
  62. </div>
  63. <?php
  64. imprimir_curso();
  65. ?>