templates/Front/Scholar/Partial/menu_lessons.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. {% if currentRoute in routes_allowed %}
  39.     <div class="dropdown-div w-100">
  40.         <div class="dropdown-item-to-hover font-weight-bold d-flex justify-content-between align-items-center module-menu">
  41.             <div>Module : {{ module.name }}</div>
  42.             {% if currentRoute in sub_routes_allowed %}
  43.                 <i class="fas fa-chevron-down"></i>
  44.             {% endif %}
  45.         </div>
  46.         {% if currentRoute in sub_routes_allowed %}
  47.             <div class="dropdown-content">
  48.                 {% set trainingModules = training | get_modules %}
  49.                 {% for trainingModule in trainingModules %}
  50.                     {% set moduleLink = null %}
  51.                     {% if currentRoute in front_routes %}
  52.                         {% set moduleLink = path('front_channel_module_show_redirection', {'trainingId': training.id, 'moduleId': trainingModule.id}) %}
  53.                     {% elseif currentRoute == 'manager_channel_training_module_lesson_show' or currentRoute == 'manager_channel_training_module_chapter_show' %}
  54.                         {% set moduleLink = path('manager_channel_training_module_show', {'channelId': channel.id, 'trainingId': training.id, 'moduleId': trainingModule.id}) %}
  55.                     {% endif %}
  56.                     <a class="dropdown-content-item font-weight-bold w-100" href="{{- moduleLink -}}"
  57.                        style="color: #212529;{% if loop.first %}padding: 8px 10px 4px 10px;{% else %}padding: 4px 10px;{% endif %}{% if trainingModule.id == module.id %}color: #4050B5;background-color: rgba(64, 80, 181, 0.11);{% endif %}">
  58.                         - {{ trainingModule.name }}
  59.                     </a>
  60.                 {% endfor %}
  61.             </div>
  62.         {% endif %}
  63.     </div>
  64. {% endif %}
  65. <div class="accordion-nellapp accordion-style">
  66.     {% for trainingModuleLesson in trainingModuleLessons %}
  67.         {% set chapters = getChapters(trainingModuleLesson) %}
  68.         {% set exercises = getExercises(trainingModuleLesson) %}
  69.         {% set practicalCase = trainingModuleLesson.getActivePracticalCase %}
  70.         {% set practicalCaseArchiveds = get_archived_practical_cases(trainingModuleLesson, app.user) %}
  71.         {% set lessonReviewActivated = trainingModuleLesson.lessonReviewActivated %}
  72.         {% if training is not defined or training is null %}
  73.                 {% set lessonBlockedStatus = constant('App\\Enum\\ScholarLessonBlockedReasonEnum::NOT_BLOCKED') %}
  74.             {% else %}
  75.                 {% set lessonBlockedStatus = get_lesson_blocked_reason(training, module, trainingModuleLesson) %}
  76.         {% endif %}
  77.         {% set front_access = true %}
  78.         {% if lessonBlockedStatus is not same as constant('App\\Enum\\ScholarLessonBlockedReasonEnum::NOT_BLOCKED') %}
  79.             {% set front_access = false %}
  80.         {% endif %}
  81.         <div id="heading{{ trainingModuleLesson.id }}" class="accordion-nellapp-header"
  82.              {% if not loop.first %}style="border-top: 1px solid #dee2e6"{% endif %}>
  83.             <h5 class="mb-0">
  84.                 <button class="btn-nellapp-accordion btn-nellapp-accordion-style"
  85.                         data-toggle="collapse"
  86.                         data-target="#collapse{{- trainingModuleLesson.id -}}"
  87.                         aria-expanded="{% if trainingModuleLesson.id == lesson.id %}true{% else %}false{% endif %}"
  88.                         aria-controls="collapse{{- trainingModuleLesson.id -}}"
  89.                 >
  90.                     <div class="d-flex justify-content-between align-items-center w-100 line-style">
  91.                         <div class="progress-circle">
  92.                             {% if app.user and currentRoute in front_routes %}
  93.                                 {% set trainingModuleLessonPercentage = trainingModuleLesson|getLessonDonePercentage(app.user) %}
  94.                             {% else %}
  95.                                 {% set trainingModuleLessonPercentage = 0 %}
  96.                             {% endif %}
  97.                             <div class="c100 {{ 'p' ~ trainingModuleLessonPercentage }} small green mr-3 me-3 font-size-20">
  98.                                 <div class="slice">
  99.                                     <div class="bar"></div>
  100.                                     <div class="fill"></div>
  101.                                 </div>
  102.                             </div>
  103.                             {% if trainingModuleLessonPercentage == 100 %}
  104.                                 <i class="fas fa-check check-style"></i>
  105.                             {% endif %}
  106.                         </div>
  107.                         <div class="d-flex justify-content-between align-items-center w-100">
  108.                             <div class="lesson-name"
  109.                                 {% 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 %}
  110.                             >
  111.                                 <span>
  112.                                    {{- trainingModuleLesson.name -}}
  113.                                 </span>
  114.                                 {% if lessonBlockedStatus is same as constant('App\\Enum\\ScholarLessonBlockedReasonEnum::LESSON_BLOCKED') %}
  115.                                     <i class="fad fa-exclamation-circle"></i>
  116.                                 {% endif %}
  117.                             </div>
  118.                             <img class="add-style" src="{{ asset('build/common/icon-add.svg', 'common') }}"
  119.                                  alt="Open courses module"/>
  120.                         </div>
  121.                     </div>
  122.                 </button>
  123.             </h5>
  124.         </div>
  125.         <div id="collapse{{ trainingModuleLesson.id }}"
  126.              class="collapse {% if trainingModuleLesson.id == lesson.id %}show{% endif %}"
  127.              style="border-top: 1px solid #dee2e6"
  128.         >
  129.             <div class="card-body padding-075">
  130.                 <ul class="lesson-list p-0 m-0">
  131.                     <li class="progress-list">
  132.                         <div class="d-flex justify-content-center align-items-center ptb-5px w-100">
  133.                             <div class="circle-icon-done{% if currentRoute in front_routes and trainingModuleLesson|get_lesson_summary_done_status(app.user) is same as true %} success{% endif %}">
  134.                             </div>
  135.                             {% set route_cases = [
  136.                                 front_routes,
  137.                                 ['manager_channel_lesson_show', 'manager_channel_chapter_show', 'manager_channel_lesson_exercise_show', 'manager_channel_practical_case_show', 'manager_channel_chapter_show_message'],
  138.                                 ['manager_channel_module_lesson_show', 'manager_channel_module_chapter_show', 'manager_channel_module_lesson_exercise_show', 'manager_channel_module_practical_case_show'],
  139.                                 ['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']
  140.                             ] %}
  141.                             {% set summaryPath = null %}
  142.                             {% if front_access is same as false %}
  143.                                 {% set summaryPath = null %}
  144.                             {% elseif currentRoute in route_cases[0] %}
  145.                                 {% set summaryPath = path('front_channel_lesson_show', {'trainingId': training.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id}) %}
  146.                             {% elseif currentRoute in route_cases[1] %}
  147.                                 {% set summaryPath = path('manager_channel_lesson_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id}) %}
  148.                             {% elseif currentRoute in route_cases[2] %}
  149.                                 {% set summaryPath = path('manager_channel_module_lesson_show', {'channelId': channel.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id}) %}
  150.                             {% elseif currentRoute in route_cases[3] %}
  151.                                 {% set summaryPath = path('manager_channel_training_module_lesson_show', {'channelId': channel.id, 'trainingId': training.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id}) %}
  152.                             {% endif %}
  153.                             {{ scholar_navigation_link('Sommaire', currentRoute in lesson_routes and trainingModuleLesson.id == lesson.id, summaryPath) }}
  154.                         </div>
  155.                     </li>
  156.                     {% for chapter in chapters %}
  157.                         <li class="progress-list">
  158.                             <div class="d-flex justify-content-center align-items-center ptb-5px w-100">
  159.                                 <div class="circle-icon-done{% if currentRoute in front_routes and chapter|get_chapter_done(app.user) is same as true %} success{% endif %}">
  160.                                 </div>
  161.                                 {% set chapterPath = null %}
  162.                                 {% if front_access is same as false %}
  163.                                     {% set chapterPath = null %}
  164.                                 {% elseif currentRoute in route_cases[0] %}
  165.                                     {% set chapterPath = path('front_channel_chapter_show', {'trainingId': training.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id, 'chapterId': chapter.id}) %}
  166.                                 {% elseif currentRoute in route_cases[1] %}
  167.                                     {% set chapterPath = path('manager_channel_chapter_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id, 'chapterId': chapter.id}) %}
  168.                                 {% elseif currentRoute in route_cases[2] %}
  169.                                     {% set chapterPath = path('manager_channel_module_chapter_show', {'channelId': channel.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id, 'chapterId': chapter.id}) %}
  170.                                 {% elseif currentRoute in route_cases[3] %}
  171.                                     {% set chapterPath = path('manager_channel_training_module_chapter_show', {'channelId': channel.id, 'trainingId': training.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id, 'chapterId': chapter.id}) %}
  172.                                 {% endif %}
  173.                                 {{ scholar_navigation_link(chapter.name, current_chapter is defined and current_chapter.id == chapter.id, chapterPath) }}
  174.                             </div>
  175.                         </li>
  176.                     {% endfor %}
  177.                     {% for exercise in exercises %}
  178.                         <li class="progress-list">
  179.                             <div class="d-flex justify-content-center align-items-center ptb-5px w-100">
  180.                                 {% set exercise_done_status = exercise|get_exercise_done_status(app.user) %}
  181.                                 <div class="circle-icon-done{% if exercise_done_status is same as true %} success{% elseif exercise_done_status is same as false %} failed{% endif %}">
  182.                                 </div>
  183.                                 {% set exercisePath = null %}
  184.                                 {% if front_access is same as false %}
  185.                                     {% set exercisePath = null %}
  186.                                 {% elseif currentRoute in route_cases[0] %}
  187.                                     {% set exercisePath = path('front_channel_exercise_show', {'trainingId': training.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id, 'exerciseId': exercise.id}) %}
  188.                                 {% elseif currentRoute in route_cases[1] %}
  189.                                     {% set exercisePath = path('manager_channel_lesson_exercise_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id, 'exerciseId': exercise.id}) %}
  190.                                 {% elseif currentRoute in route_cases[2] %}
  191.                                     {% set exercisePath = path('manager_channel_module_lesson_exercise_show', {'channelId': channel.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id, 'exerciseId': exercise.id}) %}
  192.                                 {% elseif currentRoute in route_cases[3] %}
  193.                                     {% 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}) %}
  194.                                 {% endif %}
  195.                                 {{ scholar_navigation_link(exercise.name, current_exercise is defined and exercise.id == current_exercise.id, exercisePath) }}
  196.                             </div>
  197.                         </li>
  198.                     {% endfor %}
  199.                     {% if practicalCase is not null %}
  200.                         <li class="progress-list">
  201.                             <div class="d-flex justify-content-center align-items-center ptb-5px w-100">
  202.                                 {% set practical_case_done_status = practicalCase|get_practical_case_done_status(app.user) %}
  203.                                 <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 %}">
  204.                                 </div>
  205.                                 {% set practicalCasePath = null %}
  206.                                 {% if front_access is same as false %}
  207.                                     {% set practicalCasePath = null %}
  208.                                 {% elseif currentRoute in route_cases[0] %}
  209.                                     {% set practicalCasePath = path('front_channel_practical_case_show', {'trainingId': training.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id, 'practicalCaseId': practicalCase.id}) %}
  210.                                 {% elseif currentRoute in route_cases[1] %}
  211.                                     {% set practicalCasePath = path('manager_channel_practical_case_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id}) %}
  212.                                 {% elseif currentRoute in route_cases[2] %}
  213.                                     {% set practicalCasePath = path('manager_channel_module_practical_case_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id, 'moduleId': module.id}) %}
  214.                                 {% elseif currentRoute in route_cases[3] %}
  215.                                     {% set practicalCasePath = path('manager_channel_training_module_practical_case_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id, 'moduleId': module.id, 'trainingId': training.id}) %}
  216.                                 {% endif %}
  217.                                 {{ scholar_navigation_link(practicalCase.title, currentRoute in practical_case_routes and trainingModuleLesson.id == lesson.id, practicalCasePath) }}
  218.                             </div>
  219.                         </li>
  220.                     {% endif %}
  221.                     {% if practicalCaseArchiveds is defined and practicalCaseArchiveds is not empty %}
  222.                         {% for practicalCaseArchived in practicalCaseArchiveds %}
  223.                             <li class="progress-list">
  224.                                 <div class="d-flex justify-content-center align-items-center ptb-5px w-100">
  225.                                     <div class="circle-icon-done">
  226.                                         <div class="badge badge-info">{{ 'practical_case.archived.label' | trans }}</div>
  227.                                     </div>
  228.                                     {% set practicalCasePath = null %}
  229.                                     {% if  front_access is same as false %}
  230.                                         {% set practicalCasePath = null %}
  231.                                     {% elseif currentRoute in route_cases[0] %}
  232.                                         {% set practicalCasePath = path('front_channel_practical_case_show', {'trainingId': training.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id, 'practicalCaseId': practicalCaseArchived.getPracticalCase.id}) %}
  233.                                     {% elseif currentRoute in route_cases[1] %}
  234.                                         {% set practicalCasePath = path('manager_channel_practical_case_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id}) %}
  235.                                     {% elseif currentRoute in route_cases[2] %}
  236.                                         {% set practicalCasePath = path('manager_channel_module_practical_case_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id, 'moduleId': module.id}) %}
  237.                                     {% elseif currentRoute in route_cases[3] %}
  238.                                         {% set practicalCasePath = path('manager_channel_training_module_practical_case_show', {'channelId': channel.id, 'lessonId': trainingModuleLesson.id, 'moduleId': module.id, 'trainingId': training.id}) %}
  239.                                     {% endif %}
  240.                                     {{ scholar_navigation_link(practicalCaseArchived.getPracticalCase.title, currentRoute in practical_case_routes and trainingModuleLesson.id == lesson.id, practicalCasePath) }}
  241.                                 </div>
  242.                             </li>
  243.                         {% endfor %}
  244.                     {% endif %}
  245.                     {% if lessonReviewActivated %}
  246.                         <li class="progress-list">
  247.                             <div class="d-flex justify-content-center align-items-center ptb-5px w-100">
  248.                                 {% set path = null %}
  249.                                 {% if training is defined and training is not null and app.user is not null %}
  250.                                     {% if is_granted('FRONT_ACCESS_REVIEW', {'training': training, 'module': module, 'lesson': trainingModuleLesson}) is same as false %}
  251.                                         {% set path = null %}
  252.                                     {% else %}
  253.                                         {% set path = path('front_channel_lesson_show_review', {'trainingId': training.id, 'moduleId': module.id, 'lessonId': trainingModuleLesson.id}) %}
  254.                                     {% endif %}
  255.                                 {% endif %}
  256.                                 <div class="circle-icon-done review{% if path is null %} disabled{% endif %}">
  257.                                 </div>
  258.                                 {{ scholar_navigation_link('lessons.entity.lessonReviewActivated.menu_front_label' | trans, currentRoute in lesson_review_routes and trainingModuleLesson.id == lesson.id, path) }}
  259.                             </div>
  260.                         </li>
  261.                     {% endif %}
  262.                 </ul>
  263.             </div>
  264.         </div>
  265.     {% endfor %}
  266. </div>