career_dashboard.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. <?php
  2. /* For licensing terms, see /license.txt */
  3. /**
  4. * Careers dashboard
  5. * @package chamilo.admin.career
  6. */
  7. $cidReset = true;
  8. require_once __DIR__.'/../inc/global.inc.php';
  9. $libpath = api_get_path(LIBRARY_PATH);
  10. api_protect_admin_script();
  11. $this_section = SECTION_PLATFORM_ADMIN;
  12. //Adds the JS needed to use the jqgrid
  13. $htmlHeadXtra[] = api_get_jqgrid_js();
  14. // setting breadcrumbs
  15. $interbreadcrumb[] = array(
  16. 'url' => 'index.php',
  17. 'name' => get_lang('PlatformAdmin')
  18. );
  19. $interbreadcrumb[] = array(
  20. 'url' => 'career_dashboard.php',
  21. 'name' => get_lang('CareersAndPromotions')
  22. );
  23. Display :: display_header(null);
  24. $form = new FormValidator('filter_form','GET', api_get_self());
  25. $career = new Career();
  26. $condition = array('status = ?' => 1);
  27. if ($form->validate()) {
  28. $data = $form->getSubmitValues();
  29. $filter = intval($data['filter']);
  30. if (!empty($filter)) {
  31. $condition = array('status = ? AND id = ? ' => array(1, $filter));
  32. }
  33. }
  34. $careers = $career->get_all(array('status = ?' => 1)); //only status =1
  35. $career_select_list = array();
  36. $career_select_list[0] = ' -- '.get_lang('Select').' --';
  37. foreach ($careers as $item) {
  38. $career_select_list[$item['id']] = $item['name'];
  39. }
  40. $form->addSelect(
  41. 'filter',
  42. get_lang('Career'),
  43. $career_select_list,
  44. array('id' => 'filter_1')
  45. );
  46. $form->addButtonSearch(get_lang('Filter'));
  47. // action links
  48. echo '<div class="actions" style="margin-bottom:20px">';
  49. echo '<a href="../admin/index.php">'.
  50. Display::return_icon('back.png', get_lang('BackTo').' '.get_lang('PlatformAdmin'),'',ICON_SIZE_MEDIUM).'</a>';
  51. echo '<a href="careers.php">'.
  52. Display::return_icon('career.png',get_lang('Careers'),'',ICON_SIZE_MEDIUM).'</a>';
  53. echo '<a href="promotions.php">'.
  54. Display::return_icon('promotion.png',get_lang('Promotions'),'',ICON_SIZE_MEDIUM).'</a>';
  55. echo '</div>';
  56. $form->display();
  57. $careers = $career->get_all($condition); //only status =1
  58. $column_count = 3;
  59. $i = 0;
  60. $grid_js = '';
  61. $career_array = array();
  62. if (!empty($careers)) {
  63. foreach ($careers as $career_item) {
  64. $promotion = new Promotion();
  65. // Getting all promotions
  66. $promotions = $promotion->get_all_promotions_by_career_id(
  67. $career_item['id'],
  68. 'name DESC'
  69. );
  70. $career_content = '';
  71. $promotion_array = array();
  72. if (!empty($promotions)) {
  73. foreach ($promotions as $promotion_item) {
  74. if ($promotion_item['status'] == 0) {
  75. continue; //avoid status = 0
  76. }
  77. // Getting all sessions from this promotion
  78. $sessions = SessionManager::get_all_sessions_by_promotion(
  79. $promotion_item['id']
  80. );
  81. $session_list = array();
  82. foreach ($sessions as $session_item) {
  83. $course_list = SessionManager::get_course_list_by_session_id(
  84. $session_item['id']
  85. );
  86. $session_list[] = array(
  87. 'data' => $session_item,
  88. 'courses' => $course_list,
  89. );
  90. }
  91. $promotion_array[$promotion_item['id']] = array(
  92. 'name' => $promotion_item['name'],
  93. 'sessions' => $session_list,
  94. );
  95. }
  96. }
  97. $career_array[$career_item['id']] = array(
  98. 'name' => $career_item['name'],
  99. 'promotions' => $promotion_array,
  100. );
  101. }
  102. }
  103. echo '<table class="data_table" border="1">';
  104. if (!empty($career_array)) {
  105. foreach ($career_array as $career_id => $data) {
  106. $career = $data['name'];
  107. $promotions = $data['promotions'];
  108. $career = Display::url($career, 'careers.php?action=edit&id=' . $career_id);
  109. $career = Display::tag('h4', $career);
  110. echo '<tr><td style="background-color:#ECF0F1" colspan="3">' . $career . '</td></tr>';
  111. if (!empty($promotions)) {
  112. foreach ($promotions as $promotion_id => $promotion) {
  113. $promotion_name = $promotion['name'];
  114. $promotion_url = Display::url($promotion_name, 'promotions.php?action=edit&id=' . $promotion_id);
  115. $sessions = $promotion['sessions'];
  116. echo '<tr>';
  117. $count = count($sessions);
  118. $rowspan = '';
  119. if (!empty($count)) {
  120. $count++;
  121. $rowspan = 'rowspan="' . $count . '"';
  122. }
  123. echo '<td ' . $rowspan . '>';
  124. echo Display::tag('h5', $promotion_url);
  125. echo '</td>';
  126. echo '</tr>';
  127. if (!empty($sessions)) {
  128. foreach ($sessions as $session) {
  129. $course_list = $session['courses'];
  130. $url = Display::url(
  131. $session['data']['name'],
  132. '../session/resume_session.php?id_session='.$session['data']['id']
  133. );
  134. echo '<tr>';
  135. // Session name
  136. echo Display::tag('td', $url);
  137. echo '<td>';
  138. // Courses
  139. echo '<ul>';
  140. if (!empty($course_list)) {
  141. foreach ($course_list as $course) {
  142. echo '<li>';
  143. $url = Display::url(
  144. $course['title'],
  145. api_get_path(WEB_COURSE_PATH) . $course['directory'] . '/index.php?id_session=' . $session['data']['id']
  146. );
  147. echo $url;
  148. echo '</li>';
  149. }
  150. }
  151. echo '</ul>';
  152. }
  153. }
  154. }
  155. }
  156. }
  157. }
  158. echo '</table>';
  159. Display::display_footer();