templates/Front/Scholar/Partial/_menu_lessons_mobile.html.twig line 1

Open in your IDE?
  1. {% set routes_allowed = [
  2. 'front_channel_lesson_show',
  3. 'front_channel_lesson_show_review',
  4. 'manager_channel_module_lesson_show',
  5. 'manager_channel_training_module_lesson_show',
  6. 'front_channel_chapter_show',
  7. 'front_channel_exercise_show',
  8. 'manager_channel_module_chapter_show',
  9. 'manager_channel_training_module_chapter_show'
  10. ] %}
  11. {% set lesson_routes = [
  12. 'front_channel_lesson_show',
  13. 'manager_channel_lesson_show',
  14. 'manager_channel_module_lesson_show',
  15. 'manager_channel_training_module_lesson_show',
  16. ] %}
  17. {% set lesson_review_routes = [
  18. 'front_channel_lesson_show_review',
  19. ] %}
  20. {% set practical_case_routes = [
  21. 'front_channel_practical_case_show',
  22. ] %}
  23. {% set sub_routes_allowed = [
  24. 'front_channel_lesson_show',
  25. 'front_channel_lesson_show_review',
  26. 'manager_channel_training_module_lesson_show',
  27. 'front_channel_chapter_show',
  28. 'manager_channel_training_module_chapter_show',
  29. 'front_channel_exercise_show'
  30. ] %}
  31. {% set front_routes = [
  32. 'front_channel_lesson_show',
  33. 'front_channel_chapter_show',
  34. 'front_channel_exercise_show',
  35. 'front_channel_lesson_show_review',
  36. 'front_channel_exercise_show'
  37. ] %}
  38. <div class="buttom-menu d-md-none bottom-menu-style-mobile">
  39. <div class="d-flex justify-content-between align-items-center margin-12px" id="mobile-menu-button">
  40. <div>
  41. <div class="font-weight-bold font-size-14 mobile-summary-color">Sommaire</div>
  42. {% if currentRoute in [
  43. 'front_channel_exercise_show',
  44. 'manager_channel_module_lesson_exercise_show',
  45. 'manager_channel_training_module_lesson_exercise_show',
  46. 'front_channel_chapter_show',
  47. 'manager_channel_module_chapter_show',
  48. 'manager_channel_training_module_chapter_show'
  49. ] %}
  50. <div class="font-weight-bold font-size-14">Module : {{ module.name -}}</div>
  51. {% endif %}
  52. </div>
  53. <div>
  54. <i class="fas fa-chevron-up mobile-chevron-color"></i>
  55. </div>
  56. </div>
  57. <div class="accordion-nellapp d-none bottom-menu-list-style-mobile" id="mobile-menu-lessons">
  58. {% for trainingModuleLesson in trainingModuleLessons %}
  59. {% set chapters = getChapters(trainingModuleLesson) %}
  60. {% set exercises = getExercises(trainingModuleLesson) %}
  61. {% set practicalCase = lesson.getActivePracticalCase %}
  62. {% set practicalCaseArchiveds = get_archived_practical_cases(trainingModuleLesson, app.user) %}
  63. {% set lessonReviewActivated = trainingModuleLesson.lessonReviewActivated %}
  64. {% if training is not defined or training is null %}
  65. {% set lessonBlockedStatus = constant('App\\Enum\\ScholarLessonBlockedReasonEnum::NOT_BLOCKED') %}
  66. {% else %}
  67. {% set lessonBlockedStatus = get_lesson_blocked_reason(training, module, trainingModuleLesson) %}
  68. {% endif %}
  69. {% set front_access = true %}
  70. {% if lessonBlockedStatus is not same as constant('App\\Enum\\ScholarLessonBlockedReasonEnum::NOT_BLOCKED') %}
  71. {% set front_access = false %}
  72. {% endif %}
  73. {% set lesson_progression = get_lesson_progression(trainingModuleLesson, module, training, app.user) %}
  74. <div id="headingmobile{{ trainingModuleLesson.id }}" class="accordion-nellapp-header"
  75. {% if not loop.first %}style="padding-top: 4px"{% endif %}>
  76. <h5 class="mb-0">
  77. <button class="btn-nellapp-accordion btn-nellapp-accordion-style bottom-menu-accordion-button-mobile"
  78. data-toggle="collapse"
  79. data-target="#collapsemobile{{- trainingModuleLesson.id -}}"
  80. aria-expanded="{% if trainingModuleLesson.id == lesson.id %}true{% else %}false{% endif %}"
  81. aria-controls="collapsemobile{{- trainingModuleLesson.id -}}"
  82. >
  83. <div class="d-flex justify-content-between align-items-center w-100 line-style">
  84. <div class="progress-circle">
  85. {% set lesson_progression_total = currentRoute in front_routes ? (lesson_progression ? lesson_progression.progression : 0) : 0 %}
  86. <div class="c100 {{ 'p' ~ lesson_progression_total }} small green mr-3 me-3 font-size-20">
  87. <div class="slice">
  88. <div class="bar"></div>
  89. <div class="fill"></div>
  90. </div>
  91. </div>
  92. {% if lesson_progression_total == 100 %}
  93. <i class="fas fa-check check-style"></i>
  94. {% endif %}
  95. </div>
  96. <div class="d-flex justify-content-between align-items-center w-100">
  97. <div class="lesson-name"
  98. {% if lessonBlockedStatus is same as constant('App\\Enum\\ScholarLessonBlockedReasonEnum::LESSON_BLOCKED') %}title="Pour débloquer ce cours, réalisez les QCM et Cas pratiques précédents"{% endif %}
  99. >
  100. <span>
  101. {{- trainingModuleLesson.name -}}
  102. </span>
  103. {% if lessonBlockedStatus is same as constant('App\\Enum\\ScholarLessonBlockedReasonEnum::LESSON_BLOCKED') %}
  104. <i class="fad fa-exclamation-circle"></i>
  105. {% endif %}
  106. </div>
  107. <img class="add-style" src="{{- asset('build/common/icon-add.svg', 'common') -}}"
  108. alt="Open courses module"/>
  109. </div>
  110. </div>
  111. </button>
  112. </h5>
  113. </div>
  114. <div id="collapsemobile{{ trainingModuleLesson.id }}"
  115. class="collapse {% if trainingModuleLesson.id == lesson.id %}show{% endif %}">
  116. <div class="card-body padding-075">
  117. <ul class="lesson-list p-0 m-0">
  118. <li class="progress-list">
  119. <div class="d-flex align-items-center ptb-5px">
  120. <div class="circle-icon-done{% if currentRoute in front_routes and lesson_progression ? lesson_progression.done is same as true : false %} success{% endif %}">
  121. </div>
  122. {% set route_cases = [
  123. front_routes,
  124. ['manager_channel_lesson_show', 'manager_channel_chapter_show', 'manager_channel_lesson_exercise_show', 'manager_channel_practical_case_show'],
  125. ['manager_channel_module_lesson_show', 'manager_channel_module_chapter_show', 'manager_channel_module_lesson_exercise_show', 'manager_channel_module_practical_case_show'],
  126. ['manager_channel_training_module_lesson_show', 'manager_channel_training_module_chapter_show', 'manager_channel_training_module_lesson_exercise_show', 'manager_channel_training_module_practical_case_show']
  127. ] %}
  128. {% set summaryPath = null %}
  129. {% if front_access is same as false %}
  130. {% set summaryPath = null %}
  131. {% elseif currentRoute in route_cases[0] %}
  132. {% set summaryPath = path('front_channel_lesson_show', {'trainingId': training.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id}) %}
  133. {% elseif currentRoute in route_cases[1] %}
  134. {% set summaryPath = path('manager_channel_lesson_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id}) %}
  135. {% elseif currentRoute in route_cases[2] %}
  136. {% set summaryPath = path('manager_channel_module_lesson_show', {'channelId': channel.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id}) %}
  137. {% elseif currentRoute in route_cases[3] %}
  138. {% set summaryPath = path('manager_channel_training_module_lesson_show', {'channelId': channel.id, 'trainingId': training.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id}) %}
  139. {% endif %}
  140. {{ scholar_navigation_link('Sommaire', currentRoute in lesson_routes and trainingModuleLesson.id == lesson.id, summaryPath) }}
  141. </div>
  142. </li>
  143. {% for chapter in chapters %}
  144. <li class="progress-list">
  145. <div class="d-flex align-items-center ptb-5px">
  146. <div class="circle-icon-done{% if currentRoute in front_routes and lesson_progression ? lesson_progression|has_chapter_done(chapter) is same as true : false %} success{% endif %}">
  147. </div>
  148. {% set chapterPath = null %}
  149. {% if front_access is same as false %}
  150. {% set chapterPath = null %}
  151. {% elseif currentRoute in route_cases[0] %}
  152. {% set chapterPath = path('front_channel_chapter_show', {'trainingId': training.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id, 'chapterId': chapter.id}) %}
  153. {% elseif currentRoute in route_cases[1] %}
  154. {% set chapterPath = path('manager_channel_chapter_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id, 'chapterId': chapter.id}) %}
  155. {% elseif currentRoute in route_cases[2] %}
  156. {% set chapterPath = path('manager_channel_module_chapter_show', {'channelId': channel.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id, 'chapterId': chapter.id}) %}
  157. {% elseif currentRoute in route_cases[3] %}
  158. {% set chapterPath = path('manager_channel_training_module_chapter_show', {'channelId': channel.id, 'trainingId': training.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id, 'chapterId': chapter.id}) %}
  159. {% endif %}
  160. {{ scholar_navigation_link(chapter.name, current_chapter is defined and current_chapter.id == chapter.id, chapterPath) }}
  161. </div>
  162. </li>
  163. {% endfor %}
  164. {% for exercise in exercises %}
  165. <li class="progress-list">
  166. <div class="d-flex align-items-center ptb-5px">
  167. {% set exercise_done_status = exercise|get_exercise_done_status(app.user) %}
  168. <div class="circle-icon-done{% if exercise_done_status is same as true %} success{% elseif exercise_done_status is same as false %} failed{% endif %}">
  169. </div>
  170. {% set exercisePath = null %}
  171. {% if front_access is same as false %}
  172. {% set exercisePath = null %}
  173. {% elseif currentRoute in route_cases[0] %}
  174. {% set exercisePath = path('front_channel_exercise_show', {'trainingId': training.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id, 'exerciseId': exercise.id}) %}
  175. {% elseif currentRoute in route_cases[1] %}
  176. {% set exercisePath = path('manager_channel_lesson_exercise_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id, 'exerciseId': exercise.id}) %}
  177. {% elseif currentRoute in route_cases[2] %}
  178. {% set exercisePath = path('manager_channel_module_lesson_exercise_show', {'channelId': channel.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id, 'exerciseId': exercise.id}) %}
  179. {% elseif currentRoute in route_cases[3] %}
  180. {% set exercisePath = path('manager_channel_training_module_lesson_exercise_show', {'channelId': channel.id, 'trainingId': training.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id, 'exerciseId': exercise.id}) %}
  181. {% endif %}
  182. {{ scholar_navigation_link(exercise.name, current_exercise is defined and exercise.id == current_exercise.id, exercisePath) }}
  183. </div>
  184. </li>
  185. {% endfor %}
  186. {% if practicalCase is not null %}
  187. <li class="progress-list">
  188. <div class="d-flex align-items-center ptb-5px">
  189. <div class="circle-icon-done{% if practicalCase is practical_case_done(app.user) %} success{% elseif practicalCase is practical_case_failed(app.user)%} failed{% endif %}">
  190. </div>
  191. {% set practicalCasePath = null %}
  192. {% if front_access is same as false %}
  193. {% set practicalCasePath = null %}
  194. {% elseif currentRoute in route_cases[0] %}
  195. {% set practicalCasePath = path('front_channel_practical_case_show', {'trainingId': training.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id, 'practicalCaseId': practicalCase.id}) %}
  196. {% elseif currentRoute in route_cases[1] %}
  197. {% set practicalCasePath = path('manager_channel_practical_case_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id}) %}
  198. {% elseif currentRoute in route_cases[2] %}
  199. {% set practicalCasePath = path('manager_channel_module_practical_case_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id, 'moduleId': module.id}) %}
  200. {% elseif currentRoute in route_cases[3] %}
  201. {% set practicalCasePath = path('manager_channel_training_module_practical_case_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id, 'moduleId': module.id, 'trainingId': training.id}) %}
  202. {% endif %}
  203. {{ scholar_navigation_link(practicalCase.title, currentRoute in practical_case_routes and trainingModuleLesson.id == lesson.id, practicalCasePath) }}
  204. </div>
  205. </li>
  206. {% endif %}
  207. {% if practicalCaseArchiveds is defined and practicalCaseArchiveds is not empty %}
  208. {% for practicalCaseArchived in practicalCaseArchiveds %}
  209. <li class="progress-list">
  210. <div class="d-flex align-items-center ptb-5px">
  211. <div class="circle-icon-done">
  212. <div class="badge badge-info">{{ 'practical_case.archived.label' | trans }}</div>
  213. </div>
  214. {% set practicalCasePath = null %}
  215. {% if front_access is same as false %}
  216. {% set practicalCasePath = null %}
  217. {% elseif currentRoute in route_cases[0] %}
  218. {% set practicalCasePath = path('front_channel_practical_case_show', {'trainingId': training.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id, 'practicalCaseId': practicalCaseArchived.getPracticalCase.id}) %}
  219. {% elseif currentRoute in route_cases[1] %}
  220. {% set practicalCasePath = path('manager_channel_practical_case_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id}) %}
  221. {% elseif currentRoute in route_cases[2] %}
  222. {% set practicalCasePath = path('manager_channel_module_practical_case_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id, 'moduleId': module.id}) %}
  223. {% elseif currentRoute in route_cases[3] %}
  224. {% set practicalCasePath = path('manager_channel_training_module_practical_case_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id, 'moduleId': module.id, 'trainingId': training.id}) %}
  225. {% endif %}
  226. {{ scholar_navigation_link(practicalCaseArchived.getPracticalCase.title, currentRoute in practical_case_routes and trainingModuleLesson.id == lesson.id, practicalCasePath) }}
  227. </div>
  228. </li>
  229. {% endfor %}
  230. {% endif %}
  231. {% if lessonReviewActivated %}
  232. <li class="progress-list">
  233. <div class="d-flex justify-content-center align-items-center ptb-5px w-100">
  234. {% set path = null %}
  235. {% if training is defined and training is not null and app.user is not null %}
  236. {% if is_granted('FRONT_ACCESS_REVIEW', {'training': training, 'module': module, 'lesson': trainingModuleLesson}) is same as false %}
  237. {% set path = null %}
  238. {% else %}
  239. {% set path = path('front_channel_lesson_show_review', {'trainingId': training.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id}) %}
  240. {% endif %}
  241. {% endif %}
  242. <div class="circle-icon-done review{% if path is null %} disabled{% endif %}">
  243. </div>
  244. {{ scholar_navigation_link('lessons.entity.lessonReviewActivated.menu_front_label' | trans, currentRoute in lesson_review_routes and trainingModuleLesson.id == lesson.id, path) }}
  245. </div>
  246. </li>
  247. {% endif %}
  248. </ul>
  249. </div>
  250. </div>
  251. {% endfor %}
  252. </div>
  253. </div>