templates/Front/Exercise/show.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig' %}
  2. {% block title %}{{ lesson.name }} - {{ parent() }}{% endblock %}
  3. {% set currentRoute = app.request.attributes.get('_route') %}
  4. {% block before_navbar %}
  5.     {% include 'Front/Scholar/Partial/_preview_manager_heager.html.twig' with {
  6.         'channel': channel,
  7.         'currentRoute': currentRoute,
  8.     } %}
  9. {% endblock before_navbar %}
  10. {% block body_markup %}
  11. <body class="progression" style="font-family: 'Poppins';" id="page-training-lesson">{% endblock body_markup %}
  12. {% set next_informations = null %}
  13. {% if currentRoute == 'front_channel_exercise_show' %}
  14.     {% set next_informations = get_next_informations_exercise_result(training, module, lesson, bestExerciseResult) %}
  15. {% endif %}
  16. {% block content %}
  17.     {% if currentRoute in ['front_channel_exercise_show', 'manager_channel_module_lesson_exercise_show', 'manager_channel_training_module_lesson_exercise_show'] %}
  18.         {% set trainingModuleLessons = module | get_lessons %}
  19.     {% elseif currentRoute == 'manager_channel_lesson_exercise_show' %}
  20.         {% set trainingModuleLessons = [lesson] %}
  21.     {% endif %}
  22.     {% include 'Front/Scholar/Partial/_menu_lessons_mobile.html.twig' with {
  23.         'current_exercise': current_exercise
  24.     } %}
  25.     <div class="container pt-md-5 pb-md-5 pt-3 pb-3 summary-lesson font-size-14">
  26.         <div class="row">
  27.             <div class="col-md-9 col-12">
  28.                 <h3 class="mb-4" style="font-size: 16px;">{{- lesson.name -}}</h3>
  29.                 <h2 class="v2-title-big">{{- current_exercise.name -}}</h2>
  30.                 {% if lesson.updatedAt is not null or lesson.createdAt is not null %}
  31.                     <div class="col-12 col-md-6 d-flex justify-content-between align-items-baseline p-0">
  32.                         <div>
  33.                             {% if current_exercise.updatedAt is not null %}
  34.                                 {{- 'front.scholar.training.show.createdAt.label'|trans({
  35.                                     '%date%': current_exercise.updatedAt|format_date('long', locale=app.request.locale),
  36.                                 })|raw -}}
  37.                             {% else %}
  38.                                 {{- 'front.scholar.training.show.createdAt.label'|trans({
  39.                                     '%date%': current_exercise.createdAt|format_date('long', locale=app.request.locale),
  40.                                 })|raw -}}
  41.                             {% endif %}
  42.                         </div>
  43.                     </div>
  44.                 {% endif %}
  45.                 <div class="pt-40px-mobile description-container">
  46.                     <div class="row">
  47.                         {% set stat = current_exercise.stat|default(stat|default(null)) %}
  48.                         {% set displayStatistics = false %}
  49.                         {% if stat is not empty and stat.hasResults %}
  50.                             {% set displayStatistics = true %}
  51.                         {% endif %}
  52.                         <div class="col-md-4 col-12 d-none">
  53.                             <div style="box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);padding:15px;border-radius: 6px;">
  54.                                 <div class="font-weight-bold text-center mb-3">{{- 'exercise.stat.title.label'|trans -}}</div>
  55.                                 <div class="d-flex justify-content-between mb-1">
  56.                                     <div>{{ 'exercises.stats.entity.avgScore.label'|trans }} :</div>
  57.                                     {% if displayStatistics %}
  58.                                         <div class="little-grey">{{ stat.avgScore }} / 100</div>
  59.                                     {% else %}
  60.                                         <div class="little-grey">-</div>
  61.                                     {% endif %}
  62.                                 </div>
  63.                                 <div class="d-flex justify-content-between mb-1">
  64.                                     <div>{{ 'exercises.stats.entity.medianScore.label'|trans }} :</div>
  65.                                     {% if displayStatistics %}
  66.                                         <div class="little-grey">{{ stat.medianScore }} / 100</div>
  67.                                     {% else %}
  68.                                         <div class="little-grey">-</div>
  69.                                     {% endif %}
  70.                                 </div>
  71.                                 <div class="d-flex justify-content-between mb-1">
  72.                                     <div>{{ 'exercises.stats.entity.avgTime.label'|trans }} :</div>
  73.                                     {% if displayStatistics %}
  74.                                         <div class="little-grey">{{ stat.avgTime|timer_display }}</div>
  75.                                     {% else %}
  76.                                         <div class="little-grey">-</div>
  77.                                     {% endif %}
  78.                                 </div>
  79.                                 <div class="d-flex justify-content-between mb-1">
  80.                                     <div>{{ 'exercises.stats.entity.medianTime.label'|trans }} :</div>
  81.                                     {% if displayStatistics %}
  82.                                         <div class="little-grey">{{ stat.medianTime|timer_display }}</div>
  83.                                     {% else %}
  84.                                         <div class="little-grey">-</div>
  85.                                     {% endif %}
  86.                                 </div>
  87.                                 <div class="d-flex justify-content-between mb-1">
  88.                                     <div>{{ 'exercises.stats.entity.totalDone.label'|trans }} :</div>
  89.                                     {% if displayStatistics %}
  90.                                         <div class="little-grey">{{ stat.totalDone }}</div>
  91.                                     {% else %}
  92.                                         <div class="little-grey">0</div>
  93.                                     {% endif %}
  94.                                 </div>
  95.                             </div>
  96.                         </div>
  97.                         <div class="col-10 offset-1 exercise-statistics-description-separator d-block d-md-none"></div>
  98.                         <div class="col-12 col-lg-9 exercise-description-container">
  99.                             <div class="exercise-description-block">
  100.                                 <div class="font-weight-bold mb-3">{{- 'Description de l\'exercice' -}}</div>
  101.                                 <div class="description-style">{{- current_exercise.description -}}</div>
  102.                             </div>
  103.                             <div class="separation"></div>
  104.                             {% if bestExerciseResult is defined and bestExerciseResult is not null %}
  105.                                 {% set exercise_failed = true %}
  106.                                 {% if bestExerciseResult.isSuccessful %}
  107.                                     {% set exercise_failed = false %}
  108.                                 {% endif %}
  109.                                 {% if bestExerciseResult.startedAt is not null %}
  110.                                     {% set exerciseStartPath = null %}
  111.                                     {% if currentRoute == 'front_channel_exercise_show' %}
  112.                                         {% set exerciseStartPath = path('front_exercise_start', {'trainingId': training.id,'moduleId': module.id,'lessonId': lesson.id,'id': current_exercise.id}) %}
  113.                                     {% elseif currentRoute == 'manager_channel_lesson_exercise_show' %}
  114.                                         {% set exerciseStartPath = path('manager_channel_lesson_exercise_start', {'channelId': channel.id, 'lessonId': lesson.id, 'exerciseId': current_exercise.id}) %}
  115.                                     {% elseif currentRoute == 'manager_channel_module_lesson_exercise_show' %}
  116.                                         {% set exerciseStartPath = path('manager_channel_module_lesson_exercise_start', {'channelId': channel.id, 'moduleId': module.id, 'lessonId': lesson.id, 'exerciseId': current_exercise.id}) %}
  117.                                     {% elseif currentRoute == 'manager_channel_training_module_lesson_exercise_show' %}
  118.                                         {% set exerciseStartPath = path('manager_channel_training_module_lesson_exercise_start', {'channelId': channel.id, 'trainingId': training.id, 'moduleId': module.id, 'lessonId': lesson.id, 'exerciseId': current_exercise.id}) %}
  119.                                     {% endif %}
  120.                                     <div class="last-results-container">
  121.                                         <div class="results-container">
  122.                                             {% if exercise_failed is same as false %}
  123.                                                 <div class="date-score-container">
  124.                                                     <div class="answer-timer-container d-flex justify-content-center align-items-center score-container passed">
  125.                                                         <i class="fal fa-check icone"></i>
  126.                                                         <div class="score">
  127.                                                             Score : {{ bestExerciseResult.score / 10 }} / 10
  128.                                                         </div>
  129.                                                     </div>
  130.                                                     <p>Réalisé le {{ bestExerciseResult.startedAt|date('d/m/Y') }}.</p>
  131.                                                 </div>
  132.                                                 <p class="text-success font-weight-bold result-sentence">
  133.                                                     Vous avez obtenu un score suffisant à ce QCM pour poursuivre vers le
  134.                                                     cours suivant.
  135.                                                 </p>
  136.                                                 <div class="exercise-start-block">
  137.                                                     <a href="{{- exerciseStartPath -}}"
  138.                                                        class="btn-nellapp-v2 btn-begin-exercise">
  139.                                                         <i class="far fa-money-check-edit mark-icon"></i>
  140.                                                         Recommencer l'exercice
  141.                                                     </a>
  142.                                                     {% if currentRoute == 'front_channel_exercise_show' %}
  143.                                                         <a href="{{ path('front_exercise_solution', {
  144.                                                             'id': current_exercise.id,
  145.                                                             'trainingId': training.id,
  146.                                                             'moduleId': module.id,
  147.                                                             'lessonId': lesson.id,
  148.                                                             'resultId': bestExerciseResult.id
  149.                                                         }) }}"
  150.                                                            class="btn-nellapp-v2"
  151.                                                         >
  152.                                                             Voir mon résultat
  153.                                                         </a>
  154.                                                     {% endif %}
  155.                                                 </div>
  156.                                             {% else %}
  157.                                                 <div class="date-score-container justify-content-center justify-content-md-start">
  158.                                                     <div class="answer-timer-container d-flex justify-content-center align-items-center score-container not-passed">
  159.                                                         <i class="fal fa-times icone"></i>
  160.                                                         <div class="score">
  161.                                                             Score : {{ bestExerciseResult.score / 10 }} / 10
  162.                                                         </div>
  163.                                                     </div>
  164.                                                     <p>Réalisé le {{ bestExerciseResult.startedAt|date('d/m/Y') }}.</p>
  165.                                                 </div>
  166.                                                 <div class="result-advice">
  167.                                                     <p class="text-danger font-weight-bold result-sentence">Vous n'avez
  168.                                                         pas
  169.                                                         obtenu un score suffisant à ce QCM pour
  170.                                                         poursuivre vers le cours suivant.</p>
  171.                                                     <p class="advice">Veuillez retravailler le cours et repasser le
  172.                                                         QCM.</p>
  173.                                                 </div>
  174.                                                 <div class="exercise-start-block">
  175.                                                     <a href="{{- exerciseStartPath -}}"
  176.                                                        class="btn-nellapp-v2 btn-begin-exercise">
  177.                                                         <i class="far fa-money-check-edit mark-icon"></i>
  178.                                                         Recommencer l'exercice
  179.                                                     </a>
  180.                                                     {% if currentRoute == 'front_channel_exercise_show' %}
  181.                                                         <a href="{{ path('front_exercise_solution', {
  182.                                                             'id': current_exercise.id,
  183.                                                             'trainingId': training.id,
  184.                                                             'moduleId': module.id,
  185.                                                             'lessonId': lesson.id,
  186.                                                             'resultId': bestExerciseResult.id
  187.                                                         }) }}"
  188.                                                            class="btn-nellapp-v2"
  189.                                                         >
  190.                                                             Voir mon résultat
  191.                                                         </a>
  192.                                                     {% endif %}
  193.                                                 </div>
  194.                                             {% endif %}
  195.                                         </div>
  196.                                     </div>
  197.                                 {% endif %}
  198.                             {% else %}
  199.                                 <div class="exercise-start-block with-separation">
  200.                                     {% set exerciseStartPath = null %}
  201.                                     {% if currentRoute == 'front_channel_exercise_show' %}
  202.                                         {% set exerciseStartPath = path('front_exercise_start', {'trainingId': training.id,'moduleId': module.id,'lessonId': lesson.id,'id': current_exercise.id}) %}
  203.                                     {% elseif currentRoute == 'manager_channel_lesson_exercise_show' %}
  204.                                         {% set exerciseStartPath = path('manager_channel_lesson_exercise_start', {'channelId': channel.id, 'lessonId': lesson.id, 'exerciseId': current_exercise.id}) %}
  205.                                     {% elseif currentRoute == 'manager_channel_module_lesson_exercise_show' %}
  206.                                         {% set exerciseStartPath = path('manager_channel_module_lesson_exercise_start', {'channelId': channel.id, 'moduleId': module.id, 'lessonId': lesson.id, 'exerciseId': current_exercise.id}) %}
  207.                                     {% elseif currentRoute == 'manager_channel_training_module_lesson_exercise_show' %}
  208.                                         {% set exerciseStartPath = path('manager_channel_training_module_lesson_exercise_start', {'channelId': channel.id, 'trainingId': training.id, 'moduleId': module.id, 'lessonId': lesson.id, 'exerciseId': current_exercise.id}) %}
  209.                                     {% endif %}
  210.                                     <a href="{{- exerciseStartPath -}}" class="btn-nellapp-v2 btn-begin-exercise">
  211.                                         <i class="far fa-money-check-edit mark-icon"></i>
  212.                                         Commencer l'exercice
  213.                                     </a>
  214.                                 </div>
  215.                             {% endif %}
  216.                         </div>
  217.                     </div>
  218.                     {% if currentRoute == 'front_channel_exercise_show' %}
  219.                         {% include 'Front/Scholar/Partial/_scholar_navigation_previous_after.html.twig' with {
  220.                             next_informations: next_informations,
  221.                             previous_informations: get_previous_informations_exercise(training, module, lesson, current_exercise),
  222.                         } %}
  223.                     {% endif %}
  224.                 </div>
  225.             </div>
  226.             <div class="col-3 p-0 d-none d-md-block">
  227.                 {% include 'Front/Scholar/Partial/menu_lessons.html.twig' with {
  228.                     'current_exercise': current_exercise
  229.                 } %}
  230.             </div>
  231.         </div>
  232.     </div>
  233.     {{ parent() }}
  234. {% endblock content %}
  235. {% block inner_content %}
  236.     {{ parent() }}
  237. {% endblock inner_content %}
  238. {% block body %}
  239.     {{ parent() }}
  240. {% endblock %}