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.                                     {% set practical_case_done_status = practicalCase|get_practical_case_done_status(app.user) %}
  190.                                     <div class="circle-icon-done{% if practical_case_done_status is same as true %} success{% elseif practical_case_done_status is same as false %} failed{% endif %}">
  191.                                     </div>
  192.                                     {% set practicalCasePath = null %}
  193.                                     {% if front_access is same as false %}
  194.                                         {% set practicalCasePath = null %}
  195.                                     {% elseif currentRoute in route_cases[0] %}
  196.                                         {% set practicalCasePath = path('front_channel_practical_case_show', {'trainingId': training.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id, 'practicalCaseId': practicalCase.id}) %}
  197.                                     {% elseif currentRoute in route_cases[1] %}
  198.                                         {% set practicalCasePath = path('manager_channel_practical_case_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id}) %}
  199.                                     {% elseif currentRoute in route_cases[2] %}
  200.                                         {% set practicalCasePath = path('manager_channel_module_practical_case_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id, 'moduleId': module.id}) %}
  201.                                     {% elseif currentRoute in route_cases[3] %}
  202.                                         {% set practicalCasePath = path('manager_channel_training_module_practical_case_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id, 'moduleId': module.id, 'trainingId': training.id}) %}
  203.                                     {% endif %}
  204.                                     {{ scholar_navigation_link(practicalCase.title, currentRoute in practical_case_routes and trainingModuleLesson.id == lesson.id, practicalCasePath) }}
  205.                                 </div>
  206.                             </li>
  207.                         {% endif %}
  208.                         {% if practicalCaseArchiveds is defined and practicalCaseArchiveds is not empty %}
  209.                             {% for practicalCaseArchived in practicalCaseArchiveds %}
  210.                                 <li class="progress-list">
  211.                                     <div class="d-flex align-items-center ptb-5px">
  212.                                         <div class="circle-icon-done">
  213.                                             <div class="badge badge-info">{{ 'practical_case.archived.label' | trans }}</div>
  214.                                         </div>
  215.                                         {% set practicalCasePath = null %}
  216.                                         {% if  front_access is same as false %}
  217.                                             {% set practicalCasePath = null %}
  218.                                         {% elseif currentRoute in route_cases[0] %}
  219.                                             {% set practicalCasePath = path('front_channel_practical_case_show', {'trainingId': training.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id, 'practicalCaseId': practicalCaseArchived.getPracticalCase.id}) %}
  220.                                         {% elseif currentRoute in route_cases[1] %}
  221.                                             {% set practicalCasePath = path('manager_channel_practical_case_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id}) %}
  222.                                         {% elseif currentRoute in route_cases[2] %}
  223.                                             {% set practicalCasePath = path('manager_channel_module_practical_case_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id, 'moduleId': module.id}) %}
  224.                                         {% elseif currentRoute in route_cases[3] %}
  225.                                             {% set practicalCasePath = path('manager_channel_training_module_practical_case_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id, 'moduleId': module.id, 'trainingId': training.id}) %}
  226.                                         {% endif %}
  227.                                         {{ scholar_navigation_link(practicalCaseArchived.getPracticalCase.title, currentRoute in practical_case_routes and trainingModuleLesson.id == lesson.id, practicalCasePath) }}
  228.                                     </div>
  229.                                 </li>
  230.                             {% endfor %}
  231.                         {% endif %}
  232.                         {% if lessonReviewActivated %}
  233.                             <li class="progress-list">
  234.                                 <div class="d-flex justify-content-center align-items-center ptb-5px w-100">
  235.                                     {% set path = null %}
  236.                                     {% if training is defined and training is not null and app.user is not null %}
  237.                                         {% if is_granted('FRONT_ACCESS_REVIEW', {'training': training, 'module': module, 'lesson': trainingModuleLesson}) is same as false %}
  238.                                             {% set path = null %}
  239.                                         {% else %}
  240.                                             {% set path = path('front_channel_lesson_show_review', {'trainingId': training.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id}) %}
  241.                                         {% endif %}
  242.                                     {% endif %}
  243.                                     <div class="circle-icon-done review{% if path is null %} disabled{% endif %}">
  244.                                     </div>
  245.                                     {{ scholar_navigation_link('lessons.entity.lessonReviewActivated.menu_front_label' | trans, currentRoute in lesson_review_routes and trainingModuleLesson.id == lesson.id, path) }}
  246.                                 </div>
  247.                             </li>
  248.                         {% endif %}
  249.                     </ul>
  250.                 </div>
  251.             </div>
  252.         {% endfor %}
  253.     </div>
  254. </div>