var/cache/dev/twig/65/656ef797e869a96134a303135ed3f7db.php line 69

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\CoreExtension;
  6. use Twig\Extension\SandboxExtension;
  7. use Twig\MacroNamespace;
  8. use Twig\Markup;
  9. use Twig\Sandbox\SecurityError;
  10. use Twig\Sandbox\SecurityNotAllowedTagError;
  11. use Twig\Sandbox\SecurityNotAllowedFilterError;
  12. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  13. use Twig\Sandbox\SecurityNotAllowedTestError;
  14. use Twig\Source;
  15. use Twig\Template;
  16. use Twig\TemplateWrapper;
  17. /* Front/Scholar/Training/show.html.twig */
  18. class __TwigTemplate_81fd3dad2aa9547dede2dff19e8383fc extends Template
  19. {
  20. private Source $source;
  21. /**
  22. * @var array<string, MacroNamespace>
  23. */
  24. private array $macros = [];
  25. private \Twig\Runtime\EscaperRuntime $escaper;
  26. public function __construct(Environment $env)
  27. {
  28. parent::__construct($env);
  29. $this->source = $this->getSourceContext();
  30. $this->escaper = $env->getRuntime('Twig\Runtime\EscaperRuntime');
  31. $this->blocks = [
  32. 'stylesheets' => [$this, 'block_stylesheets'],
  33. 'before_navbar' => [$this, 'block_before_navbar'],
  34. 'title' => [$this, 'block_title'],
  35. 'content' => [$this, 'block_content'],
  36. 'inner_content' => [$this, 'block_inner_content'],
  37. 'body' => [$this, 'block_body'],
  38. ];
  39. }
  40. protected function doGetParent(array $context): bool|string|Template|TemplateWrapper
  41. {
  42. // line 1
  43. return $this->parent ??= $this->load("base.html.twig", 1);
  44. }
  45. protected function doDisplay(array $context, array $blocks = []): iterable
  46. {
  47. $macros = $this->macros;
  48. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  49. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "Front/Scholar/Training/show.html.twig"));
  50. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  51. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "Front/Scholar/Training/show.html.twig"));
  52. // line 3
  53. $context["currentRoute"] = CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 3, $this->source); })()), "request", [], "any", false, false, false, 3), "attributes", [], "any", false, false, false, 3), "get", ["_route"], "method", false, false, false, 3);
  54. // line 4
  55. $context["has_front_access"] = $this->extensions['Symfony\Bridge\Twig\Extension\SecurityExtension']->isGranted("FRONT_ACCESS", ["training" => // line 5
  56. (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 5, $this->source); })())]);
  57. // line 1
  58. $this->parent = $this->load("base.html.twig", 1);
  59. yield from $this->parent->unwrap()->yield($context, array_merge($this->blocks, $blocks));
  60. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  61. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  62. }
  63. // line 8
  64. /**
  65. * @return iterable<null|scalar|\Stringable>
  66. */
  67. public function block_stylesheets(array $context, array $blocks = []): iterable
  68. {
  69. $macros = $this->macros;
  70. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  71. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "stylesheets"));
  72. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  73. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "stylesheets"));
  74. // line 9
  75. yield " ";
  76. yield from $this->yieldParentBlock("stylesheets", $context, $blocks);
  77. yield "
  78. ";
  79. // line 10
  80. yield (string) $this->extensions['Symfony\WebpackEncoreBundle\Twig\EntryFilesTwigExtension']->renderWebpackLinkTags("styles", "core", "core");
  81. yield "
  82. ";
  83. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  84. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  85. return; yield;
  86. }
  87. // line 13
  88. /**
  89. * @return iterable<null|scalar|\Stringable>
  90. */
  91. public function block_before_navbar(array $context, array $blocks = []): iterable
  92. {
  93. $macros = $this->macros;
  94. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  95. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "before_navbar"));
  96. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  97. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "before_navbar"));
  98. // line 14
  99. yield " ";
  100. if (((isset($context["currentRoute"]) || array_key_exists("currentRoute", $context) ? $context["currentRoute"] : (function () { throw new RuntimeError('Variable "currentRoute" does not exist.', 14, $this->source); })()) == "manager_channel_training_show")) {
  101. // line 15
  102. yield " <div style=\"background-color: #E9F8F8;\" class=\"p-2 justify-content-center align-items-center d-flex flex-column flex-md-row text-center\">
  103. ";
  104. // line 17
  105. $context["headerReturnLink"] = null;
  106. // line 18
  107. yield " ";
  108. if (((isset($context["currentRoute"]) || array_key_exists("currentRoute", $context) ? $context["currentRoute"] : (function () { throw new RuntimeError('Variable "currentRoute" does not exist.', 18, $this->source); })()) == "manager_channel_training_show")) {
  109. // line 19
  110. yield " ";
  111. $context["headerReturnLink"] = $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("manager_channel_trainings", ["channelId" => CoreExtension::getAttribute($this->env, $this->source, (isset($context["channel"]) || array_key_exists("channel", $context) ? $context["channel"] : (function () { throw new RuntimeError('Variable "channel" does not exist.', 19, $this->source); })()), "id", [], "any", false, false, false, 19)]);
  112. // line 20
  113. yield " ";
  114. }
  115. // line 21
  116. yield "
  117. <div style=\"font-weight: bold; color: #212B7A\" class=\"mx-1\">Vous êtes en mode visualisation de l\x27interface pour les administrateurs.</div>
  118. <div style=\"font-weight: bold\"><a href=\"";
  119. // line 23
  120. yield (string) $this->escaper->escape((isset($context["headerReturnLink"]) || array_key_exists("headerReturnLink", $context) ? $context["headerReturnLink"] : (function () { throw new RuntimeError('Variable "headerReturnLink" does not exist.', 23, $this->source); })()), "html", null, true);
  121. yield "\" style=\"text-decoration: underline\">Revenir à la page d\x27administration</a></div>
  122. </div>
  123. ";
  124. }
  125. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  126. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  127. return; yield;
  128. }
  129. // line 28
  130. /**
  131. * @return iterable<null|scalar|\Stringable>
  132. */
  133. public function block_title(array $context, array $blocks = []): iterable
  134. {
  135. $macros = $this->macros;
  136. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  137. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "title"));
  138. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  139. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "title"));
  140. yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 28, $this->source); })()), "name", [], "any", false, false, false, 28), "html", null, true);
  141. yield " - ";
  142. yield from $this->yieldParentBlock("title", $context, $blocks);
  143. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  144. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  145. return; yield;
  146. }
  147. // line 29
  148. /**
  149. * @return iterable<null|scalar|\Stringable>
  150. */
  151. public function block_content(array $context, array $blocks = []): iterable
  152. {
  153. $macros = $this->macros;
  154. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  155. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "content"));
  156. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  157. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "content"));
  158. // line 30
  159. yield " ";
  160. $context["advice_avg"] = $this->env->getRuntime('App\Twig\Runtime\AdviceRuntime')->adviceAvgByTraining((isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 30, $this->source); })()));
  161. // line 31
  162. yield " ";
  163. if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 31, $this->source); })()), "user", [], "any", false, false, false, 31)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  164. // line 32
  165. yield " ";
  166. $preRendered = $this->extensions["Symfony\\UX\\TwigComponent\\Twig\\ComponentExtension"]->extensionPreCreateForRender("ChannelUserData:CursusLockout", Twig\Extension\CoreExtension::toArray(["cursus" => (((array_key_exists("cursus", $context) && !(null === $context["cursus"]))) ? ($context["cursus"]) : (null))]));
  167. if (null !== $preRendered) {
  168. echo $preRendered;
  169. } else {
  170. $preRenderEvent = $this->extensions["Symfony\\UX\\TwigComponent\\Twig\\ComponentExtension"]->startEmbeddedComponentRender("ChannelUserData:CursusLockout", Twig\Extension\CoreExtension::toArray(["cursus" => (((array_key_exists("cursus", $context) && !(null === $context["cursus"]))) ? ($context["cursus"]) : (null))]), $context, "Front/Scholar/Training/show.html.twig", 35689168741);
  171. $embeddedContext = $preRenderEvent->getVariables();
  172. $embeddedContext["__parent__"] = $preRenderEvent->getTemplate();
  173. if (!isset($embeddedContext["outerBlocks"])) {
  174. $embeddedContext["outerBlocks"] = new \Symfony\UX\TwigComponent\BlockStack();
  175. }
  176. $embeddedBlocks = $embeddedContext["outerBlocks"]->convert($blocks, 35689168741);
  177. $this->loadTemplate("Front/Scholar/Training/show.html.twig", "Front/Scholar/Training/show.html.twig", 32, "35689168741")->display($embeddedContext, $embeddedBlocks);
  178. $this->extensions["Symfony\\UX\\TwigComponent\\Twig\\ComponentExtension"]->finishEmbeddedComponentRender();
  179. }
  180. // line 33
  181. yield " ";
  182. }
  183. // line 34
  184. yield "
  185. <div class=\"jumbotron-v2 mb-4\">
  186. <div class=\"container\">
  187. <h2 class=\"v2-title-big\">";
  188. // line 38
  189. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.title.label", ["%name%" => CoreExtension::getAttribute($this->env, $this->source, // line 39
  190. (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 39, $this->source); })()), "name", [], "any", false, false, false, 39)]), "html", null, true);
  191. // line 41
  192. yield "</h2>
  193. <div class=\"md-none\">
  194. <div class=\"info-content mt-4 ";
  195. // line 44
  196. if (((isset($context["advice_avg"]) || array_key_exists("advice_avg", $context) ? $context["advice_avg"] : (function () { throw new RuntimeError('Variable "advice_avg" does not exist.', 44, $this->source); })()) === null)) {
  197. yield " info-without-advice ";
  198. }
  199. yield "\">
  200. <div>
  201. <i class=\"fas fa-users\"></i>
  202. <p>";
  203. // line 47
  204. yield (string) $this->escaper->escape($this->env->getRuntime('App\Twig\Runtime\Scholar\ScholarTrainingRuntime')->countCursusForTraining((isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 47, $this->source); })())), "html", null, true);
  205. yield "</p>
  206. </div>
  207. ";
  208. // line 49
  209. if ( !((isset($context["advice_avg"]) || array_key_exists("advice_avg", $context) ? $context["advice_avg"] : (function () { throw new RuntimeError('Variable "advice_avg" does not exist.', 49, $this->source); })()) === null)) {
  210. // line 50
  211. yield " <div>
  212. <i class=\"fas fa-star\"></i>
  213. <p>";
  214. // line 52
  215. yield (string) $this->escaper->escape((isset($context["advice_avg"]) || array_key_exists("advice_avg", $context) ? $context["advice_avg"] : (function () { throw new RuntimeError('Variable "advice_avg" does not exist.', 52, $this->source); })()), "html", null, true);
  216. yield " (";
  217. yield (string) $this->escaper->escape($this->env->getRuntime('App\Twig\Runtime\AdviceRuntime')->getCountAdviceTraining((isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 52, $this->source); })())), "html", null, true);
  218. yield ")</p>
  219. </div>
  220. ";
  221. }
  222. // line 55
  223. yield " <div class=\"dot-div\"></div>
  224. <div>
  225. ";
  226. // line 57
  227. if ( !(null === CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 57, $this->source); })()), "updatedAt", [], "any", false, false, false, 57))) {
  228. // line 58
  229. yield (string) $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.createdAt.label", ["%date%" => $this->extensions['Twig\Extra\Intl\IntlExtension']->formatDateTime($this->env, CoreExtension::getAttribute($this->env, $this->source, // line 59
  230. (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 59, $this->source); })()), "updatedAt", [], "any", false, false, false, 59), "long", null, "", null, null, CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 59, $this->source); })()), "request", [], "any", false, false, false, 59), "locale", [], "any", false, false, false, 59))]);
  231. } else {
  232. // line 62
  233. yield (string) $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.createdAt.label", ["%date%" => $this->extensions['Twig\Extra\Intl\IntlExtension']->formatDateTime($this->env, CoreExtension::getAttribute($this->env, $this->source, // line 63
  234. (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 63, $this->source); })()), "createdAt", [], "any", false, false, false, 63), "long", null, "", null, null, CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 63, $this->source); })()), "request", [], "any", false, false, false, 63), "locale", [], "any", false, false, false, 63))]);
  235. }
  236. // line 66
  237. yield " </div>
  238. </div>
  239. </div>
  240. <div class=\"md-set\">
  241. <div class=\"info-content mt-4\">
  242. <div>
  243. <div>
  244. <i class=\"fas fa-users\"></i>
  245. <p>";
  246. // line 76
  247. yield (string) $this->escaper->escape($this->env->getRuntime('App\Twig\Runtime\Scholar\ScholarTrainingRuntime')->countCursusForTraining((isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 76, $this->source); })())), "html", null, true);
  248. yield "</p>
  249. </div>
  250. ";
  251. // line 78
  252. if ( !((isset($context["advice_avg"]) || array_key_exists("advice_avg", $context) ? $context["advice_avg"] : (function () { throw new RuntimeError('Variable "advice_avg" does not exist.', 78, $this->source); })()) === null)) {
  253. // line 79
  254. yield " <div class=\"info-content-stars\">
  255. <i class=\"fas fa-star\"></i>
  256. <p>";
  257. // line 81
  258. yield (string) $this->escaper->escape((isset($context["advice_avg"]) || array_key_exists("advice_avg", $context) ? $context["advice_avg"] : (function () { throw new RuntimeError('Variable "advice_avg" does not exist.', 81, $this->source); })()), "html", null, true);
  259. yield " (";
  260. yield (string) $this->escaper->escape($this->env->getRuntime('App\Twig\Runtime\AdviceRuntime')->getCountAdviceTraining((isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 81, $this->source); })())), "html", null, true);
  261. yield ")</p>
  262. </div>
  263. ";
  264. }
  265. // line 84
  266. yield " </div>
  267. <div class=\"mt-2\">
  268. <div class=\"dot-div\">
  269. <i class=\"fas fa-circle\"></i>
  270. </div>
  271. <div>
  272. ";
  273. // line 90
  274. if ( !(null === CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 90, $this->source); })()), "updatedAt", [], "any", false, false, false, 90))) {
  275. // line 91
  276. yield (string) $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.createdAt.label", ["%date%" => $this->extensions['Twig\Extra\Intl\IntlExtension']->formatDateTime($this->env, CoreExtension::getAttribute($this->env, $this->source, // line 92
  277. (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 92, $this->source); })()), "updatedAt", [], "any", false, false, false, 92), "long", null, "", null, null, CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 92, $this->source); })()), "request", [], "any", false, false, false, 92), "locale", [], "any", false, false, false, 92))]);
  278. } else {
  279. // line 95
  280. yield (string) $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.createdAt.label", ["%date%" => $this->extensions['Twig\Extra\Intl\IntlExtension']->formatDateTime($this->env, CoreExtension::getAttribute($this->env, $this->source, // line 96
  281. (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 96, $this->source); })()), "createdAt", [], "any", false, false, false, 96), "long", null, "", null, null, CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 96, $this->source); })()), "request", [], "any", false, false, false, 96), "locale", [], "any", false, false, false, 96))]);
  282. }
  283. // line 99
  284. yield " </div>
  285. </div>
  286. </div>
  287. </div>
  288. <div class=\"description mt-4\">
  289. <p>";
  290. // line 107
  291. yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 107, $this->source); })()), "description", [], "any", false, false, false, 107), "html", null, true);
  292. yield "</p>
  293. </div>
  294. </div>
  295. </div>
  296. ";
  297. // line 112
  298. yield from $this->yieldParentBlock("content", $context, $blocks);
  299. yield "
  300. ";
  301. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  302. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  303. return; yield;
  304. }
  305. // line 115
  306. /**
  307. * @return iterable<null|scalar|\Stringable>
  308. */
  309. public function block_inner_content(array $context, array $blocks = []): iterable
  310. {
  311. $macros = $this->macros;
  312. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  313. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "inner_content"));
  314. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  315. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "inner_content"));
  316. // line 116
  317. yield " <div class=\"row\">
  318. <div class=\"col-lg-9 col-md-8 mb-3\">
  319. <h2 class=\"v2-title-small mt-5\">";
  320. // line 118
  321. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.sub_title.programm.label"), "html", null, true);
  322. yield "</h2>
  323. <div id=\"accordion\" class=\"accordion-nellapp mt-5\">
  324. ";
  325. // line 120
  326. $context['_parent'] = $context;
  327. $context['_seq'] = CoreExtension::ensureTraversable((isset($context["firstModules"]) || array_key_exists("firstModules", $context) ? $context["firstModules"] : (function () { throw new RuntimeError('Variable "firstModules" does not exist.', 120, $this->source); })()));
  328. $context['loop'] = [
  329. 'parent' => $context['_parent'],
  330. 'index0' => 0,
  331. 'index' => 1,
  332. 'first' => true,
  333. ];
  334. if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  335. $length = count($context['_seq']);
  336. $context['loop']['revindex0'] = $length - 1;
  337. $context['loop']['revindex'] = $length;
  338. $context['loop']['length'] = $length;
  339. $context['loop']['last'] = 1 === $length;
  340. }
  341. foreach ($context['_seq'] as $context["_key"] => $context["module"]) {
  342. // line 121
  343. yield " ";
  344. yield from $this->load("Front/Scholar/Training/Partial/accordion-item.html.twig", 121)->unwrap()->yield(CoreExtension::merge($context, ["module" => $context["module"], "loop" => $context["loop"], "training" => (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 121, $this->source); })())]));
  345. // line 122
  346. yield " ";
  347. ++$context['loop']['index0'];
  348. ++$context['loop']['index'];
  349. $context['loop']['first'] = false;
  350. if (isset($context['loop']['revindex0'], $context['loop']['revindex'])) {
  351. --$context['loop']['revindex0'];
  352. --$context['loop']['revindex'];
  353. $context['loop']['last'] = 0 === $context['loop']['revindex0'];
  354. }
  355. }
  356. $_parent = $context['_parent'];
  357. unset($context['_seq'], $context['_key'], $context['module'], $context['_parent'], $context['loop']);
  358. $context = array_intersect_key($context, $_parent);
  359. $context += $_parent;
  360. // line 123
  361. yield " ";
  362. if ((($tmp = Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["lastModules"]) || array_key_exists("lastModules", $context) ? $context["lastModules"] : (function () { throw new RuntimeError('Variable "lastModules" does not exist.', 123, $this->source); })()))) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  363. // line 124
  364. yield " <div class=\"more-module\" style=\"display: none\">
  365. ";
  366. // line 125
  367. $context['_parent'] = $context;
  368. $context['_seq'] = CoreExtension::ensureTraversable((isset($context["lastModules"]) || array_key_exists("lastModules", $context) ? $context["lastModules"] : (function () { throw new RuntimeError('Variable "lastModules" does not exist.', 125, $this->source); })()));
  369. $context['loop'] = [
  370. 'parent' => $context['_parent'],
  371. 'index0' => 0,
  372. 'index' => 1,
  373. 'first' => true,
  374. ];
  375. if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  376. $length = count($context['_seq']);
  377. $context['loop']['revindex0'] = $length - 1;
  378. $context['loop']['revindex'] = $length;
  379. $context['loop']['length'] = $length;
  380. $context['loop']['last'] = 1 === $length;
  381. }
  382. foreach ($context['_seq'] as $context["_key"] => $context["module"]) {
  383. // line 126
  384. yield " ";
  385. yield from $this->load("Front/Scholar/Training/Partial/accordion-item.html.twig", 126)->unwrap()->yield(CoreExtension::merge($context, ["module" => $context["module"], "loop" => $context["loop"], "training" => (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 126, $this->source); })())]));
  386. // line 127
  387. yield " ";
  388. ++$context['loop']['index0'];
  389. ++$context['loop']['index'];
  390. $context['loop']['first'] = false;
  391. if (isset($context['loop']['revindex0'], $context['loop']['revindex'])) {
  392. --$context['loop']['revindex0'];
  393. --$context['loop']['revindex'];
  394. $context['loop']['last'] = 0 === $context['loop']['revindex0'];
  395. }
  396. }
  397. $_parent = $context['_parent'];
  398. unset($context['_seq'], $context['_key'], $context['module'], $context['_parent'], $context['loop']);
  399. $context = array_intersect_key($context, $_parent);
  400. $context += $_parent;
  401. // line 128
  402. yield " </div>
  403. <div class=\"w100-flex-center-x mt-3 div-btn-see-more\">
  404. <button class=\"btn-see-more-v2\"
  405. data-btn-more-module=\"true\">
  406. ";
  407. // line 132
  408. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.list.button.see_more.label"), "html", null, true);
  409. yield "
  410. 5/";
  411. // line 133
  412. yield (string) $this->escaper->escape((5 + Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["lastModules"]) || array_key_exists("lastModules", $context) ? $context["lastModules"] : (function () { throw new RuntimeError('Variable "lastModules" does not exist.', 133, $this->source); })()))), "html", null, true);
  413. yield "
  414. </button>
  415. </div>
  416. <div class=\"w100-flex-center-x mt-3 div-btn-see-less\" style=\"display: none\">
  417. <button class=\"btn-see-more-v2\"
  418. data-btn-less-module=\"true\">
  419. ";
  420. // line 139
  421. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.list.button.see_less.label"), "html", null, true);
  422. yield "
  423. </button>
  424. </div>
  425. ";
  426. }
  427. // line 143
  428. yield " </div>
  429. </div>
  430. <div class=\"col-lg-3 col-md-4 order-first order-md-last\">
  431. <div class=\"card-elevation-training\">
  432. <div class=\"card-img-top\">
  433. <img class=\"img-top-card img-responsive\" src=\"";
  434. // line 150
  435. yield (string) $this->escaper->escape($this->env->getRuntime('App\Twig\Runtime\Scholar\ScholarTrainingRuntime')->getTrainingImgUrl((isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 150, $this->source); })())), "html", null, true);
  436. yield "\" alt=\"";
  437. yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 150, $this->source); })()), "name", [], "any", false, false, false, 150), "html", null, true);
  438. yield "\">
  439. </div>
  440. <div class=\"card-body\">
  441. <div class=\"channel-name d-flex\">
  442. <div>
  443. <div class=\"img-logo-rounded\">
  444. ";
  445. // line 157
  446. yield from $this->load("Front/Channel/Image/_image_main_avatar.html.twig", 157)->unwrap()->yield(CoreExtension::merge($context, ["channel" => CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 157, $this->source); })()), "ownerChannel", [], "any", false, false, false, 157)]));
  447. // line 158
  448. yield " </div>
  449. </div>
  450. <div class=\"channel-description\">
  451. <a href=\"";
  452. // line 162
  453. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("front_channel_show", ["channelId" => CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 162, $this->source); })()), "ownerChannel", [], "any", false, false, false, 162), "id", [], "any", false, false, false, 162)]), "html", null, true);
  454. yield "\"
  455. class=\"font-weight-bold\">";
  456. // line 163
  457. yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 163, $this->source); })()), "ownerChannel", [], "any", false, false, false, 163), "name", [], "any", false, false, false, 163), "html", null, true);
  458. yield "</a>
  459. ";
  460. // line 164
  461. if ( !Twig\Extension\CoreExtension::testEmpty(CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 164, $this->source); })()), "ownerChannel", [], "any", false, false, false, 164), "slogan", [], "any", false, false, false, 164))) {
  462. // line 165
  463. yield " <p class=\"small\">
  464. ";
  465. // line 166
  466. yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 166, $this->source); })()), "ownerChannel", [], "any", false, false, false, 166), "slogan", [], "any", false, false, false, 166), "html", null, true);
  467. yield "
  468. </p>
  469. ";
  470. }
  471. // line 169
  472. yield " </div>
  473. </div>
  474. <div class=\"training-stats mt-4\">
  475. ";
  476. // line 172
  477. if ( !(null === CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 172, $this->source); })()), "trainingType", [], "any", false, false, false, 172))) {
  478. // line 173
  479. yield " <div class=\"row mt-3\">
  480. <div class=\"col-12 content-stat\">
  481. <div>
  482. <i class=\"fas fa-book-open\"></i>
  483. </div>
  484. <p>";
  485. // line 178
  486. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans($this->env->getRuntime('App\Twig\Runtime\Scholar\ScholarTrainingTypeRuntime')->getTrainingTypeKey((isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 178, $this->source); })()))), "html", null, true);
  487. yield "</p>
  488. </div>
  489. </div>
  490. ";
  491. }
  492. // line 182
  493. yield "
  494. ";
  495. // line 183
  496. if ( !(null === CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 183, $this->source); })()), "totalHourDescription", [], "any", false, false, false, 183))) {
  497. // line 184
  498. yield " <div class=\"row mt-3\">
  499. <div class=\"col-12 content-stat\">
  500. <div>
  501. <i class=\"fas fa-stopwatch\"></i>
  502. </div>
  503. <p>";
  504. // line 189
  505. yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 189, $this->source); })()), "totalHourDescription", [], "any", false, false, false, 189), "html", null, true);
  506. yield " ";
  507. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.card.total_hour.label"), "html", null, true);
  508. yield "</p>
  509. </div>
  510. </div>
  511. ";
  512. }
  513. // line 193
  514. yield " ";
  515. if ( !(null === CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 193, $this->source); })()), "videoDescription", [], "any", false, false, false, 193))) {
  516. // line 194
  517. yield " <div class=\"row mt-3\">
  518. <div class=\"col-12 content-stat\">
  519. <div>
  520. <i class=\"fas fa-file-video\"></i>
  521. </div>
  522. <p>";
  523. // line 199
  524. yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 199, $this->source); })()), "videoDescription", [], "any", false, false, false, 199), "html", null, true);
  525. yield " ";
  526. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.card.video_time.label"), "html", null, true);
  527. yield "</p>
  528. </div>
  529. </div>
  530. ";
  531. }
  532. // line 203
  533. yield " ";
  534. $context["count_exercises"] = $this->env->getRuntime('App\Twig\Runtime\Scholar\ScholarTrainingRuntime')->countExercisesByTraining((isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 203, $this->source); })()));
  535. // line 204
  536. yield " ";
  537. if (((isset($context["count_exercises"]) || array_key_exists("count_exercises", $context) ? $context["count_exercises"] : (function () { throw new RuntimeError('Variable "count_exercises" does not exist.', 204, $this->source); })()) != 0)) {
  538. // line 205
  539. yield " <div class=\"row mt-3\">
  540. <div class=\"col-12 content-stat\">
  541. <div>
  542. <i class=\"far fa-list-alt\"></i>
  543. </div>
  544. <p>";
  545. // line 211
  546. yield (string) $this->escaper->escape((isset($context["count_exercises"]) || array_key_exists("count_exercises", $context) ? $context["count_exercises"] : (function () { throw new RuntimeError('Variable "count_exercises" does not exist.', 211, $this->source); })()), "html", null, true);
  547. yield " ";
  548. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.card.use_case.label"), "html", null, true);
  549. yield "</p>
  550. </div>
  551. </div>
  552. ";
  553. }
  554. // line 215
  555. yield " ";
  556. if ( !(null === CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 215, $this->source); })()), "diplomaDescription", [], "any", false, false, false, 215))) {
  557. // line 216
  558. yield " <div class=\"row mt-3\">
  559. <div class=\"col-12 content-stat\">
  560. <div>
  561. <i class=\"fas fa-graduation-cap\"></i>
  562. </div>
  563. <p>";
  564. // line 221
  565. yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 221, $this->source); })()), "diplomaDescription", [], "any", false, false, false, 221), "html", null, true);
  566. yield "</p>
  567. </div>
  568. </div>
  569. ";
  570. }
  571. // line 225
  572. yield " </div>
  573. ";
  574. // line 227
  575. if (( !(null === CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 227, $this->source); })()), "trainingProduct", [], "any", false, false, false, 227)) && !(($tmp = (isset($context["has_front_access"]) || array_key_exists("has_front_access", $context) ? $context["has_front_access"] : (function () { throw new RuntimeError('Variable "has_front_access" does not exist.', 227, $this->source); })())) && $tmp instanceof Markup ? (string) $tmp : $tmp))) {
  576. // line 228
  577. yield " <div class=\"mt-4 w100-flex-center-x\">
  578. ";
  579. // line 229
  580. $context["value"] = (CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 229, $this->source); })()), "trainingProduct", [], "any", false, false, false, 229), "price", [], "any", false, false, false, 229) * 1);
  581. // line 230
  582. yield " <p class=\"price-card-training\">";
  583. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.card.price.label", ["%price%" => (isset($context["value"]) || array_key_exists("value", $context) ? $context["value"] : (function () { throw new RuntimeError('Variable "value" does not exist.', 230, $this->source); })())]), "html", null, true);
  584. yield "
  585. *</p>
  586. </div>
  587. <div class=\"mt-2 w100-flex-center-x\">
  588. <p class=\"price-note-card-training\">";
  589. // line 234
  590. yield (string) $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.card.price.note", ["%funding_contact_path%" => $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("front_channel_training_payment_funding_contact", ["training_id" => CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 234, $this->source); })()), "id", [], "any", false, false, false, 234)])]);
  591. yield "</p>
  592. </div>
  593. ";
  594. }
  595. // line 237
  596. yield "
  597. ";
  598. // line 238
  599. if (( !(($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 238, $this->source); })()), "public", [], "any", false, false, false, 238)) && $tmp instanceof Markup ? (string) $tmp : $tmp) && ((isset($context["currentRoute"]) || array_key_exists("currentRoute", $context) ? $context["currentRoute"] : (function () { throw new RuntimeError('Variable "currentRoute" does not exist.', 238, $this->source); })()) == "front_channel_training_show"))) {
  600. // line 239
  601. yield " <div class=\"text-center mt-4 div-btn-card-show-training d-flex flex-column\">
  602. ";
  603. // line 240
  604. if ((($tmp = (isset($context["has_front_access"]) || array_key_exists("has_front_access", $context) ? $context["has_front_access"] : (function () { throw new RuntimeError('Variable "has_front_access" does not exist.', 240, $this->source); })())) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  605. // line 241
  606. yield " <div class=\"w100-flex-center-x\">
  607. <div class=\"progress-circle\">
  608. <div class=\"c100 p";
  609. // line 243
  610. yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["trainingProgression"]) || array_key_exists("trainingProgression", $context) ? $context["trainingProgression"] : (function () { throw new RuntimeError('Variable "trainingProgression" does not exist.', 243, $this->source); })()), "progression", [], "any", false, false, false, 243), "html", null, true);
  611. yield " blue light-green-fill medium\">
  612. <div class=\"slice\">
  613. <div class=\"bar\"></div>
  614. <div class=\"fill\"></div>
  615. </div>
  616. </div>
  617. </div>
  618. </div>
  619. <div class=\"mb-2 training-progress-percent\">
  620. ";
  621. // line 252
  622. yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["trainingProgression"]) || array_key_exists("trainingProgression", $context) ? $context["trainingProgression"] : (function () { throw new RuntimeError('Variable "trainingProgression" does not exist.', 252, $this->source); })()), "progression", [], "any", false, false, false, 252), "html", null, true);
  623. yield " %
  624. </div>
  625. ";
  626. // line 255
  627. if ((((($tmp = $this->env->getRuntime('Nellapp\Bundle\SDKBundle\Routing\Twig\Runtime\UrlGeneratorRuntime')->exist("core", "app_account_show_cursus")) && $tmp instanceof Markup ? (string) $tmp : $tmp) && array_key_exists("cursus", $context)) && !(null === (isset($context["cursus"]) || array_key_exists("cursus", $context) ? $context["cursus"] : (function () { throw new RuntimeError('Variable "cursus" does not exist.', 255, $this->source); })())))) {
  628. // line 256
  629. yield " <a href=\"";
  630. yield (string) $this->escaper->escape($this->env->getRuntime('Nellapp\Bundle\SDKBundle\Routing\Twig\Runtime\UrlGeneratorRuntime')->generate("core", "app_account_show_cursus", ["cursusId" => CoreExtension::getAttribute($this->env, $this->source, // line 257
  631. (isset($context["cursus"]) || array_key_exists("cursus", $context) ? $context["cursus"] : (function () { throw new RuntimeError('Variable "cursus" does not exist.', 257, $this->source); })()), "id", [], "any", false, false, false, 257)]), "html", null, true);
  632. // line 258
  633. yield "\"
  634. class=\"see-training-progress-link\">";
  635. // line 259
  636. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.card.progression.link.label"), "html", null, true);
  637. yield "
  638. </a>
  639. ";
  640. }
  641. // line 262
  642. yield "
  643. ";
  644. // line 263
  645. $context["lastChapterAchieved"] = $this->env->getRuntime('App\Twig\Runtime\Scholar\ScholarTrainingRuntime')->getLastAchievedChapter((isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 263, $this->source); })()));
  646. // line 264
  647. yield " ";
  648. if ( !(null === (isset($context["lastChapterAchieved"]) || array_key_exists("lastChapterAchieved", $context) ? $context["lastChapterAchieved"] : (function () { throw new RuntimeError('Variable "lastChapterAchieved" does not exist.', 264, $this->source); })()))) {
  649. // line 265
  650. yield " <a href=\"";
  651. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("front_channel_chapter_show", ["trainingId" => CoreExtension::getAttribute($this->env, $this->source, // line 266
  652. (isset($context["lastChapterAchieved"]) || array_key_exists("lastChapterAchieved", $context) ? $context["lastChapterAchieved"] : (function () { throw new RuntimeError('Variable "lastChapterAchieved" does not exist.', 266, $this->source); })()), "trainingId", [], "array", false, false, false, 266), "moduleId" => CoreExtension::getAttribute($this->env, $this->source, // line 267
  653. (isset($context["lastChapterAchieved"]) || array_key_exists("lastChapterAchieved", $context) ? $context["lastChapterAchieved"] : (function () { throw new RuntimeError('Variable "lastChapterAchieved" does not exist.', 267, $this->source); })()), "moduleId", [], "array", false, false, false, 267), "lessonId" => CoreExtension::getAttribute($this->env, $this->source, // line 268
  654. (isset($context["lastChapterAchieved"]) || array_key_exists("lastChapterAchieved", $context) ? $context["lastChapterAchieved"] : (function () { throw new RuntimeError('Variable "lastChapterAchieved" does not exist.', 268, $this->source); })()), "lessonId", [], "array", false, false, false, 268), "chapterId" => CoreExtension::getAttribute($this->env, $this->source, // line 269
  655. (isset($context["lastChapterAchieved"]) || array_key_exists("lastChapterAchieved", $context) ? $context["lastChapterAchieved"] : (function () { throw new RuntimeError('Variable "lastChapterAchieved" does not exist.', 269, $this->source); })()), "chapterId", [], "array", false, false, false, 269)]), "html", null, true);
  656. // line 270
  657. yield "\"
  658. class=\"btn-nellapp-v2 mt-3 d-inline-block\">
  659. ";
  660. // line 272
  661. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.card.continue_btn.label"), "html", null, true);
  662. yield "
  663. </a>
  664. ";
  665. }
  666. // line 275
  667. yield " ";
  668. } else {
  669. // line 276
  670. yield " <a href=\"";
  671. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("front_channel_training_payment_funding_contact", ["training_id" => CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 276, $this->source); })()), "id", [], "any", false, false, false, 276)]), "html", null, true);
  672. yield "\"
  673. class=\"btn btn-nellapp-v2\">
  674. ";
  675. // line 278
  676. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.actions.follow.label"), "html", null, true);
  677. yield "
  678. </a>
  679. ";
  680. }
  681. // line 281
  682. yield " </div>
  683. ";
  684. }
  685. // line 283
  686. yield " </div>
  687. </div>
  688. ";
  689. // line 286
  690. yield from $this->load("Front/Scholar/Partial/_back_to_dashboard.html.twig", 286)->unwrap()->yield(CoreExtension::merge($context, ["wrapper_class" => "mt-3 d-flex justify-content-center", "button_class" => "nellapp-outline-btn text-decoration-none"]));
  691. // line 290
  692. yield " </div>
  693. </div>
  694. ";
  695. // line 293
  696. if ((Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["training_descriptions"]) || array_key_exists("training_descriptions", $context) ? $context["training_descriptions"] : (function () { throw new RuntimeError('Variable "training_descriptions" does not exist.', 293, $this->source); })())) > 0)) {
  697. // line 294
  698. yield " <div class=\"row\">
  699. <div class=\"col-12\">
  700. <h2 class=\"v2-title-small mt-5 mb-2\">";
  701. // line 296
  702. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.sub_title.plus.label"), "html", null, true);
  703. yield "</h2>
  704. </div>
  705. <div class=\"col-lg-9 col-md-8\">
  706. <div class=\"row\">
  707. ";
  708. // line 300
  709. $context['_parent'] = $context;
  710. $context['_seq'] = CoreExtension::ensureTraversable((isset($context["training_descriptions"]) || array_key_exists("training_descriptions", $context) ? $context["training_descriptions"] : (function () { throw new RuntimeError('Variable "training_descriptions" does not exist.', 300, $this->source); })()));
  711. $context['loop'] = [
  712. 'parent' => $context['_parent'],
  713. 'index0' => 0,
  714. 'index' => 1,
  715. 'first' => true,
  716. ];
  717. if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  718. $length = count($context['_seq']);
  719. $context['loop']['revindex0'] = $length - 1;
  720. $context['loop']['revindex'] = $length;
  721. $context['loop']['length'] = $length;
  722. $context['loop']['last'] = 1 === $length;
  723. }
  724. foreach ($context['_seq'] as $context["_key"] => $context["description"]) {
  725. // line 301
  726. yield " <div class=\"col-12 col-sm-12 col-md-12 col-lg-6 col-xl-6 mt-4\">
  727. ";
  728. // line 302
  729. yield from $this->load("Front/Scholar/Card/training-description.html.twig", 302)->unwrap()->yield(CoreExtension::merge($context, ["description" => $context["description"]]));
  730. // line 303
  731. yield " </div>
  732. ";
  733. ++$context['loop']['index0'];
  734. ++$context['loop']['index'];
  735. $context['loop']['first'] = false;
  736. if (isset($context['loop']['revindex0'], $context['loop']['revindex'])) {
  737. --$context['loop']['revindex0'];
  738. --$context['loop']['revindex'];
  739. $context['loop']['last'] = 0 === $context['loop']['revindex0'];
  740. }
  741. }
  742. $_parent = $context['_parent'];
  743. unset($context['_seq'], $context['_key'], $context['description'], $context['_parent'], $context['loop']);
  744. $context = array_intersect_key($context, $_parent);
  745. $context += $_parent;
  746. // line 305
  747. yield " </div>
  748. </div>
  749. </div>
  750. ";
  751. }
  752. // line 309
  753. yield "
  754. <div class=\"row mt-3\">
  755. <div class=\"col-12\">
  756. <h2 class=\"v2-title-small mt-5 mb-2\">";
  757. // line 312
  758. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.sub_title.channel.label"), "html", null, true);
  759. yield "</h2>
  760. </div>
  761. <div class=\"col-lg-9 col-md-8\">
  762. <div class=\"row\">
  763. <div class=\"col-12\">
  764. <div class=\"mt-3\">
  765. ";
  766. // line 318
  767. yield from $this->load("Front/Scholar/Card/channel.html.twig", 318)->unwrap()->yield(CoreExtension::merge($context, ["channel" => CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 318, $this->source); })()), "ownerChannel", [], "any", false, false, false, 318)]));
  768. // line 319
  769. yield " </div>
  770. </div>
  771. </div>
  772. </div>
  773. </div>
  774. ";
  775. // line 325
  776. if ((Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["teacher_entities"]) || array_key_exists("teacher_entities", $context) ? $context["teacher_entities"] : (function () { throw new RuntimeError('Variable "teacher_entities" does not exist.', 325, $this->source); })())) > 0)) {
  777. // line 326
  778. yield " <div class=\"row mt-3\">
  779. <div class=\"col-12\">
  780. <h2 class=\"v2-title-small mt-5 mb-2\">";
  781. // line 328
  782. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.sub_title.teacher.label"), "html", null, true);
  783. yield "
  784. (";
  785. // line 329
  786. yield (string) $this->escaper->escape(Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["teacher_entities"]) || array_key_exists("teacher_entities", $context) ? $context["teacher_entities"] : (function () { throw new RuntimeError('Variable "teacher_entities" does not exist.', 329, $this->source); })())), "html", null, true);
  787. yield ")</h2>
  788. </div>
  789. </div>
  790. ";
  791. // line 332
  792. $context['_parent'] = $context;
  793. $context['_seq'] = CoreExtension::ensureTraversable((isset($context["teacher_entities"]) || array_key_exists("teacher_entities", $context) ? $context["teacher_entities"] : (function () { throw new RuntimeError('Variable "teacher_entities" does not exist.', 332, $this->source); })()));
  794. $context['loop'] = [
  795. 'parent' => $context['_parent'],
  796. 'index0' => 0,
  797. 'index' => 1,
  798. 'first' => true,
  799. ];
  800. if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  801. $length = count($context['_seq']);
  802. $context['loop']['revindex0'] = $length - 1;
  803. $context['loop']['revindex'] = $length;
  804. $context['loop']['length'] = $length;
  805. $context['loop']['last'] = 1 === $length;
  806. }
  807. foreach ($context['_seq'] as $context["_key"] => $context["teacher"]) {
  808. // line 333
  809. yield " <div class=\"col-lg-9 col-md-8\">
  810. <div class=\"row\">
  811. <div class=\"col-12\">
  812. <div class=\"mt-3\">
  813. ";
  814. // line 337
  815. yield from $this->load("Front/Scholar/Card/teacher.html.twig", 337)->unwrap()->yield(CoreExtension::merge($context, ["teacher" => $context["teacher"]]));
  816. // line 338
  817. yield " </div>
  818. </div>
  819. </div>
  820. </div>
  821. ";
  822. ++$context['loop']['index0'];
  823. ++$context['loop']['index'];
  824. $context['loop']['first'] = false;
  825. if (isset($context['loop']['revindex0'], $context['loop']['revindex'])) {
  826. --$context['loop']['revindex0'];
  827. --$context['loop']['revindex'];
  828. $context['loop']['last'] = 0 === $context['loop']['revindex0'];
  829. }
  830. }
  831. $_parent = $context['_parent'];
  832. unset($context['_seq'], $context['_key'], $context['teacher'], $context['_parent'], $context['loop']);
  833. $context = array_intersect_key($context, $_parent);
  834. $context += $_parent;
  835. // line 343
  836. yield " ";
  837. }
  838. // line 344
  839. yield "
  840. ";
  841. // line 345
  842. if ((array_key_exists("training_advices", $context) && (Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["training_advices"]) || array_key_exists("training_advices", $context) ? $context["training_advices"] : (function () { throw new RuntimeError('Variable "training_advices" does not exist.', 345, $this->source); })())) > 0))) {
  843. // line 346
  844. yield " <div class=\"row mt-3 mb-5\">
  845. <div class=\"col-lg-9 col-md-8\">
  846. <div class=\"row\">
  847. <div class=\"col-12\">
  848. <div class=\"div-title-between mt-5 mb-2\">
  849. <h2 class=\"v2-title-small\">";
  850. // line 351
  851. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.sub_title.advice.label"), "html", null, true);
  852. yield "
  853. (";
  854. // line 352
  855. yield (string) $this->escaper->escape(Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["training_advices"]) || array_key_exists("training_advices", $context) ? $context["training_advices"] : (function () { throw new RuntimeError('Variable "training_advices" does not exist.', 352, $this->source); })())), "html", null, true);
  856. yield ")</h2>
  857. <p class=\"\"><i class=\"far fa-star\"></i> ";
  858. // line 353
  859. yield (string) $this->escaper->escape((isset($context["advice_avg"]) || array_key_exists("advice_avg", $context) ? $context["advice_avg"] : (function () { throw new RuntimeError('Variable "advice_avg" does not exist.', 353, $this->source); })()), "html", null, true);
  860. yield "</p>
  861. </div>
  862. </div>
  863. <div class=\"col-12\">
  864. <div class=\"mt-3\">
  865. ";
  866. // line 358
  867. $context["adviceCount"] = 1;
  868. // line 359
  869. yield " ";
  870. $context["break"] = false;
  871. // line 360
  872. yield " ";
  873. $context['_parent'] = $context;
  874. $context['_seq'] = CoreExtension::ensureTraversable((isset($context["training_advices"]) || array_key_exists("training_advices", $context) ? $context["training_advices"] : (function () { throw new RuntimeError('Variable "training_advices" does not exist.', 360, $this->source); })()));
  875. $context['loop'] = [
  876. 'parent' => $context['_parent'],
  877. 'index0' => 0,
  878. 'index' => 1,
  879. 'first' => true,
  880. ];
  881. if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  882. $length = count($context['_seq']);
  883. $context['loop']['revindex0'] = $length - 1;
  884. $context['loop']['revindex'] = $length;
  885. $context['loop']['length'] = $length;
  886. $context['loop']['last'] = 1 === $length;
  887. }
  888. foreach ($context['_seq'] as $context["_key"] => $context["advice"]) {
  889. // line 361
  890. yield " ";
  891. if ( !(($tmp = (isset($context["break"]) || array_key_exists("break", $context) ? $context["break"] : (function () { throw new RuntimeError('Variable "break" does not exist.', 361, $this->source); })())) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  892. // line 362
  893. yield " ";
  894. yield from $this->load("Front/Scholar/Card/advice.html.twig", 362)->unwrap()->yield(CoreExtension::merge($context, ["advice" => $context["advice"]]));
  895. // line 363
  896. yield " ";
  897. $context["adviceCount"] = ((isset($context["adviceCount"]) || array_key_exists("adviceCount", $context) ? $context["adviceCount"] : (function () { throw new RuntimeError('Variable "adviceCount" does not exist.', 363, $this->source); })()) + 1);
  898. // line 364
  899. yield " ";
  900. if (((isset($context["adviceCount"]) || array_key_exists("adviceCount", $context) ? $context["adviceCount"] : (function () { throw new RuntimeError('Variable "adviceCount" does not exist.', 364, $this->source); })()) == 6)) {
  901. // line 365
  902. yield " ";
  903. $context["break"] = true;
  904. // line 366
  905. yield " ";
  906. }
  907. // line 367
  908. yield " ";
  909. }
  910. // line 368
  911. yield " ";
  912. ++$context['loop']['index0'];
  913. ++$context['loop']['index'];
  914. $context['loop']['first'] = false;
  915. if (isset($context['loop']['revindex0'], $context['loop']['revindex'])) {
  916. --$context['loop']['revindex0'];
  917. --$context['loop']['revindex'];
  918. $context['loop']['last'] = 0 === $context['loop']['revindex0'];
  919. }
  920. }
  921. $_parent = $context['_parent'];
  922. unset($context['_seq'], $context['_key'], $context['advice'], $context['_parent'], $context['loop']);
  923. $context = array_intersect_key($context, $_parent);
  924. $context += $_parent;
  925. // line 369
  926. yield "
  927. ";
  928. // line 370
  929. $context["adviceCount"] = 1;
  930. // line 371
  931. yield " ";
  932. if ((Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["training_advices"]) || array_key_exists("training_advices", $context) ? $context["training_advices"] : (function () { throw new RuntimeError('Variable "training_advices" does not exist.', 371, $this->source); })())) > 5)) {
  933. // line 372
  934. yield " <div class=\"div-more-advice\">
  935. ";
  936. // line 373
  937. $context['_parent'] = $context;
  938. $context['_seq'] = CoreExtension::ensureTraversable((isset($context["training_advices"]) || array_key_exists("training_advices", $context) ? $context["training_advices"] : (function () { throw new RuntimeError('Variable "training_advices" does not exist.', 373, $this->source); })()));
  939. $context['loop'] = [
  940. 'parent' => $context['_parent'],
  941. 'index0' => 0,
  942. 'index' => 1,
  943. 'first' => true,
  944. ];
  945. if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  946. $length = count($context['_seq']);
  947. $context['loop']['revindex0'] = $length - 1;
  948. $context['loop']['revindex'] = $length;
  949. $context['loop']['length'] = $length;
  950. $context['loop']['last'] = 1 === $length;
  951. }
  952. foreach ($context['_seq'] as $context["_key"] => $context["advice"]) {
  953. // line 374
  954. yield " ";
  955. $context["adviceCount"] = ((isset($context["adviceCount"]) || array_key_exists("adviceCount", $context) ? $context["adviceCount"] : (function () { throw new RuntimeError('Variable "adviceCount" does not exist.', 374, $this->source); })()) + 1);
  956. // line 375
  957. yield " ";
  958. if (((isset($context["adviceCount"]) || array_key_exists("adviceCount", $context) ? $context["adviceCount"] : (function () { throw new RuntimeError('Variable "adviceCount" does not exist.', 375, $this->source); })()) > 6)) {
  959. // line 376
  960. yield " ";
  961. yield from $this->load("Front/Scholar/Card/advice.html.twig", 376)->unwrap()->yield(CoreExtension::merge($context, ["advice" => $context["advice"]]));
  962. // line 377
  963. yield " ";
  964. }
  965. // line 378
  966. yield " ";
  967. ++$context['loop']['index0'];
  968. ++$context['loop']['index'];
  969. $context['loop']['first'] = false;
  970. if (isset($context['loop']['revindex0'], $context['loop']['revindex'])) {
  971. --$context['loop']['revindex0'];
  972. --$context['loop']['revindex'];
  973. $context['loop']['last'] = 0 === $context['loop']['revindex0'];
  974. }
  975. }
  976. $_parent = $context['_parent'];
  977. unset($context['_seq'], $context['_key'], $context['advice'], $context['_parent'], $context['loop']);
  978. $context = array_intersect_key($context, $_parent);
  979. $context += $_parent;
  980. // line 379
  981. yield " </div>
  982. ";
  983. }
  984. // line 381
  985. yield " </div>
  986. </div>
  987. </div>
  988. </div>
  989. </div>
  990. ";
  991. }
  992. // line 387
  993. yield " ";
  994. if ((array_key_exists("form", $context) && (($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 387, $this->source); })()), "user", [], "any", false, false, false, 387)) && $tmp instanceof Markup ? (string) $tmp : $tmp))) {
  995. // line 388
  996. yield " <div class=\"row\">
  997. <div class=\"col-lg-9 col-md-8\">
  998. <p class=\"small-description\">";
  999. // line 390
  1000. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.sub_title.advice.sentence.enter_key.label"), "html", null, true);
  1001. yield "</p>
  1002. </div>
  1003. </div>
  1004. <div class=\"row\" ";
  1005. // line 393
  1006. if ((array_key_exists("advice_user", $context) && !(null === (isset($context["advice_user"]) || array_key_exists("advice_user", $context) ? $context["advice_user"] : (function () { throw new RuntimeError('Variable "advice_user" does not exist.', 393, $this->source); })())))) {
  1007. yield " ";
  1008. if ( !(null === CoreExtension::getAttribute($this->env, $this->source, (isset($context["advice_user"]) || array_key_exists("advice_user", $context) ? $context["advice_user"] : (function () { throw new RuntimeError('Variable "advice_user" does not exist.', 393, $this->source); })()), "note", [], "any", false, false, false, 393))) {
  1009. yield "data-advice-current-note=\"";
  1010. yield (string) $this->escaper->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["advice_user"]) || array_key_exists("advice_user", $context) ? $context["advice_user"] : (function () { throw new RuntimeError('Variable "advice_user" does not exist.', 393, $this->source); })()), "note", [], "any", false, false, false, 393), "html", null, true);
  1011. yield "\"";
  1012. }
  1013. }
  1014. yield ">
  1015. <div class=\"col-lg-9 col-md-8 mt-1\">
  1016. <div class=\"form-advice-content\">
  1017. <div class=\"avatar-rounded\">";
  1018. // line 396
  1019. yield (string) $this->env->getRuntime('Nellapp\Bundle\SDKBundle\Twig\Runtime\UserRunTime')->displayAvatar($this->env, CoreExtension::getAttribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 396, $this->source); })()), "user", [], "any", false, false, false, 396));
  1020. yield "</div>
  1021. <div class=\"form-advice-bg-gray\">
  1022. ";
  1023. // line 398
  1024. yield (string) $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->renderBlock((isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 398, $this->source); })()), 'form_start');
  1025. yield "
  1026. <div style=\"display: none\">
  1027. ";
  1028. // line 400
  1029. yield (string) $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(CoreExtension::getAttribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 400, $this->source); })()), "note", [], "any", false, false, false, 400), 'widget');
  1030. yield "
  1031. </div>
  1032. ";
  1033. // line 402
  1034. yield (string) $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(CoreExtension::getAttribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 402, $this->source); })()), "comment", [], "any", false, false, false, 402), 'widget');
  1035. yield "
  1036. ";
  1037. // line 403
  1038. yield (string) $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(CoreExtension::getAttribute($this->env, $this->source, (isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 403, $this->source); })()), "comment", [], "any", false, false, false, 403), 'errors');
  1039. yield "
  1040. ";
  1041. // line 404
  1042. yield (string) $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->renderBlock((isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 404, $this->source); })()), 'form_end');
  1043. yield "
  1044. <div class=\"stars-rating\">
  1045. <i class=\"far fa-star\" data-rating=\"1\"></i>
  1046. <i class=\"far fa-star\" data-rating=\"2\"></i>
  1047. <i class=\"far fa-star\" data-rating=\"3\"></i>
  1048. <i class=\"far fa-star\" data-rating=\"4\"></i>
  1049. <i class=\"far fa-star\" data-rating=\"5\"></i>
  1050. </div>
  1051. <div class=\"center-y ml-2\">
  1052. <span id=\"span-nb-note-advice\">0</span>
  1053. </div>
  1054. </div>
  1055. </div>
  1056. </div>
  1057. </div>
  1058. ";
  1059. // line 419
  1060. if ( !(null === (isset($context["advice_user"]) || array_key_exists("advice_user", $context) ? $context["advice_user"] : (function () { throw new RuntimeError('Variable "advice_user" does not exist.', 419, $this->source); })()))) {
  1061. // line 420
  1062. yield " ";
  1063. if ( !(null === CoreExtension::getAttribute($this->env, $this->source, (isset($context["advice_user"]) || array_key_exists("advice_user", $context) ? $context["advice_user"] : (function () { throw new RuntimeError('Variable "advice_user" does not exist.', 420, $this->source); })()), "id", [], "any", false, false, false, 420))) {
  1064. // line 421
  1065. yield " <div class=\"row\">
  1066. <div class=\"col-lg-9 col-md-8 mt-1\">
  1067. <div class=\"w100-flex-end-x\">
  1068. <a class=\"delete-btn-advice\"
  1069. href=\"";
  1070. // line 425
  1071. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("front_training_advice_delete", ["id" => CoreExtension::getAttribute($this->env, $this->source, (isset($context["advice_user"]) || array_key_exists("advice_user", $context) ? $context["advice_user"] : (function () { throw new RuntimeError('Variable "advice_user" does not exist.', 425, $this->source); })()), "id", [], "any", false, false, false, 425)]), "html", null, true);
  1072. yield "\">";
  1073. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.sub_title.advice.action.delete.label"), "html", null, true);
  1074. yield "</a>
  1075. </div>
  1076. </div>
  1077. </div>
  1078. ";
  1079. }
  1080. // line 430
  1081. yield " ";
  1082. }
  1083. // line 431
  1084. yield " ";
  1085. }
  1086. // line 432
  1087. yield "
  1088. ";
  1089. // line 436
  1090. if ((array_key_exists("training_advices", $context) && (Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["training_advices"]) || array_key_exists("training_advices", $context) ? $context["training_advices"] : (function () { throw new RuntimeError('Variable "training_advices" does not exist.', 436, $this->source); })())) > 5))) {
  1091. // line 437
  1092. yield " <div class=\"row\">
  1093. <div class=\"col-lg-9 col-md-8 mt-5\">
  1094. <div class=\"w100-flex-center-x\">
  1095. <button class=\"see-more-btn\"
  1096. id=\"training-advice-see-more\">";
  1097. // line 441
  1098. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.advice.see_more.label", ["%count%" => Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["training_advices"]) || array_key_exists("training_advices", $context) ? $context["training_advices"] : (function () { throw new RuntimeError('Variable "training_advices" does not exist.', 441, $this->source); })()))]), "html", null, true);
  1099. yield "</button>
  1100. </div>
  1101. </div>
  1102. </div>
  1103. ";
  1104. }
  1105. // line 446
  1106. yield " <div class=\"empty-div-bottom\"></div>
  1107. ";
  1108. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  1109. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  1110. return; yield;
  1111. }
  1112. // line 449
  1113. /**
  1114. * @return iterable<null|scalar|\Stringable>
  1115. */
  1116. public function block_body(array $context, array $blocks = []): iterable
  1117. {
  1118. $macros = $this->macros;
  1119. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  1120. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "body"));
  1121. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  1122. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "body"));
  1123. // line 450
  1124. yield " ";
  1125. yield from $this->yieldParentBlock("body", $context, $blocks);
  1126. yield "
  1127. ";
  1128. // line 451
  1129. if ((($tmp = $this->extensions['Symfony\Bridge\Twig\Extension\SecurityExtension']->isGranted("CHANNEL_USER_PERM_TRAINING_SHOW", (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 451, $this->source); })()))) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  1130. // line 452
  1131. yield " <div class=\"modal fade\" id=\"delete-modal\" tabindex=\"-1\" role=\"dialog\"
  1132. aria-labelledby=\"delete-modal-label\" aria-hidden=\"true\">
  1133. <div class=\"modal-dialog\" role=\"document\">
  1134. <div class=\"modal-content\">
  1135. <div class=\"modal-header\">
  1136. <h5 class=\"modal-title\" id=\"delete-modal-label\">
  1137. ";
  1138. // line 458
  1139. yield (string) $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.actions.delete.modal.title.label", ["%name%" => CoreExtension::getAttribute($this->env, $this->source, // line 459
  1140. (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 459, $this->source); })()), "name", [], "any", false, false, false, 459)]);
  1141. // line 460
  1142. yield "
  1143. </h5>
  1144. </div>
  1145. <div class=\"modal-body\">
  1146. ";
  1147. // line 465
  1148. yield (string) $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.actions.delete.modal.body.label", ["%name%" => CoreExtension::getAttribute($this->env, $this->source, // line 466
  1149. (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 466, $this->source); })()), "name", [], "any", false, false, false, 466)]);
  1150. // line 467
  1151. yield "
  1152. </div>
  1153. <div class=\"modal-footer\">
  1154. <button type=\"button\" class=\"btn btn-link\" data-dismiss=\"modal\">
  1155. ";
  1156. // line 472
  1157. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.actions.delete.modal.cancel.label"), "html", null, true);
  1158. yield "
  1159. </button>
  1160. <a href=\"";
  1161. // line 475
  1162. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("front_channel_training_delete", ["id" => CoreExtension::getAttribute($this->env, $this->source, (isset($context["sub"]) || array_key_exists("sub", $context) ? $context["sub"] : (function () { throw new RuntimeError('Variable "sub" does not exist.', 475, $this->source); })()), "id", [], "any", false, false, false, 475), "channelId" => CoreExtension::getAttribute($this->env, $this->source, (isset($context["channel"]) || array_key_exists("channel", $context) ? $context["channel"] : (function () { throw new RuntimeError('Variable "channel" does not exist.', 475, $this->source); })()), "id", [], "any", false, false, false, 475)]), "html", null, true);
  1163. yield "\"
  1164. class=\"btn btn-danger btn-raised\">
  1165. ";
  1166. // line 477
  1167. yield (string) $this->escaper->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("front.scholar.training.show.actions.delete.modal.delete.label"), "html", null, true);
  1168. yield "
  1169. </a>
  1170. </div>
  1171. </div>
  1172. </div>
  1173. </div>
  1174. ";
  1175. }
  1176. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  1177. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  1178. return; yield;
  1179. }
  1180. /**
  1181. * @codeCoverageIgnore
  1182. */
  1183. public function getTemplateName(): string
  1184. {
  1185. return "Front/Scholar/Training/show.html.twig";
  1186. }
  1187. /**
  1188. * @codeCoverageIgnore
  1189. */
  1190. public function isTraitable(): bool
  1191. {
  1192. return false;
  1193. }
  1194. /**
  1195. * @codeCoverageIgnore
  1196. */
  1197. public function getDefaultEscapeStrategy(): string|false
  1198. {
  1199. return "html";
  1200. }
  1201. /**
  1202. * @codeCoverageIgnore
  1203. */
  1204. public function getDebugInfo(): array
  1205. {
  1206. return array ( 1243 => 477, 1238 => 475, 1232 => 472, 1225 => 467, 1223 => 466, 1222 => 465, 1215 => 460, 1213 => 459, 1212 => 458, 1204 => 452, 1202 => 451, 1197 => 450, 1184 => 449, 1172 => 446, 1164 => 441, 1158 => 437, 1156 => 436, 1150 => 432, 1147 => 431, 1144 => 430, 1134 => 425, 1128 => 421, 1125 => 420, 1123 => 419, 1105 => 404, 1101 => 403, 1097 => 402, 1092 => 400, 1087 => 398, 1082 => 396, 1069 => 393, 1063 => 390, 1059 => 388, 1056 => 387, 1048 => 381, 1044 => 379, 1029 => 378, 1026 => 377, 1023 => 376, 1020 => 375, 1017 => 374, 1000 => 373, 997 => 372, 994 => 371, 992 => 370, 989 => 369, 974 => 368, 971 => 367, 968 => 366, 965 => 365, 962 => 364, 959 => 363, 956 => 362, 953 => 361, 935 => 360, 932 => 359, 930 => 358, 922 => 353, 918 => 352, 914 => 351, 907 => 346, 905 => 345, 902 => 344, 899 => 343, 880 => 338, 878 => 337, 872 => 333, 855 => 332, 849 => 329, 845 => 328, 841 => 326, 839 => 325, 831 => 319, 829 => 318, 820 => 312, 815 => 309, 809 => 305, 793 => 303, 791 => 302, 788 => 301, 771 => 300, 764 => 296, 760 => 294, 758 => 293, 753 => 290, 751 => 286, 746 => 283, 742 => 281, 736 => 278, 730 => 276, 727 => 275, 721 => 272, 717 => 270, 715 => 269, 714 => 268, 713 => 267, 712 => 266, 710 => 265, 707 => 264, 705 => 263, 702 => 262, 696 => 259, 693 => 258, 691 => 257, 689 => 256, 687 => 255, 681 => 252, 669 => 243, 665 => 241, 663 => 240, 660 => 239, 658 => 238, 655 => 237, 649 => 234, 641 => 230, 639 => 229, 636 => 228, 634 => 227, 630 => 225, 623 => 221, 616 => 216, 613 => 215, 604 => 211, 596 => 205, 593 => 204, 590 => 203, 581 => 199, 574 => 194, 571 => 193, 562 => 189, 555 => 184, 553 => 183, 550 => 182, 543 => 178, 536 => 173, 534 => 172, 529 => 169, 523 => 166, 520 => 165, 518 => 164, 514 => 163, 510 => 162, 504 => 158, 502 => 157, 490 => 150, 481 => 143, 474 => 139, 465 => 133, 461 => 132, 455 => 128, 440 => 127, 437 => 126, 420 => 125, 417 => 124, 414 => 123, 399 => 122, 396 => 121, 379 => 120, 374 => 118, 370 => 116, 357 => 115, 344 => 112, 336 => 107, 326 => 99, 323 => 96, 322 => 95, 319 => 92, 318 => 91, 316 => 90, 308 => 84, 300 => 81, 296 => 79, 294 => 78, 289 => 76, 277 => 66, 274 => 63, 273 => 62, 270 => 59, 269 => 58, 267 => 57, 263 => 55, 255 => 52, 251 => 50, 249 => 49, 244 => 47, 236 => 44, 231 => 41, 229 => 39, 228 => 38, 223 => 34, 220 => 33, 204 => 32, 201 => 31, 198 => 30, 185 => 29, 160 => 28, 145 => 23, 141 => 21, 138 => 20, 135 => 19, 132 => 18, 130 => 17, 126 => 15, 123 => 14, 110 => 13, 97 => 10, 92 => 9, 79 => 8, 68 => 1, 66 => 5, 65 => 4, 63 => 3, 50 => 1,);
  1207. }
  1208. public function getSourceContext(): Source
  1209. {
  1210. return new Source("{% extends \x27base.html.twig\x27 %}
  1211. {% set currentRoute = app.request.attributes.get(\x27_route\x27) %}
  1212. {% set has_front_access = is_granted(\x27FRONT_ACCESS\x27, {
  1213. \x27training\x27: sub,
  1214. }) %}
  1215. {% block stylesheets %}
  1216. {{ parent() }}
  1217. {{ encore_entry_link_tags(\x27styles\x27, \x27core\x27, \x27core\x27) }}
  1218. {% endblock %}
  1219. {% block before_navbar %}
  1220. {% if currentRoute == \x27manager_channel_training_show\x27 %}
  1221. <div style=\"background-color: #E9F8F8;\" class=\"p-2 justify-content-center align-items-center d-flex flex-column flex-md-row text-center\">
  1222. {% set headerReturnLink = null %}
  1223. {% if currentRoute == \x27manager_channel_training_show\x27 %}
  1224. {% set headerReturnLink = path(\x27manager_channel_trainings\x27, {\x27channelId\x27: channel.id}) %}
  1225. {% endif %}
  1226. <div style=\"font-weight: bold; color: #212B7A\" class=\"mx-1\">Vous êtes en mode visualisation de l\x27interface pour les administrateurs.</div>
  1227. <div style=\"font-weight: bold\"><a href=\"{{- headerReturnLink -}}\" style=\"text-decoration: underline\">Revenir à la page d\x27administration</a></div>
  1228. </div>
  1229. {% endif %}
  1230. {% endblock before_navbar %}
  1231. {% block title %}{{ sub.name }} - {{ parent() }}{% endblock %}
  1232. {% block content %}
  1233. {% set advice_avg = sub|advice_avg_by_training %}
  1234. {% if app.user %}
  1235. {% component \x27ChannelUserData:CursusLockout\x27 with { cursus: cursus ?? null } %}{% endcomponent %}
  1236. {% endif %}
  1237. <div class=\"jumbotron-v2 mb-4\">
  1238. <div class=\"container\">
  1239. <h2 class=\"v2-title-big\">
  1240. {{- \x27front.scholar.training.show.title.label\x27|trans({
  1241. \x27%name%\x27: sub.name,
  1242. }) -}}
  1243. </h2>
  1244. <div class=\"md-none\">
  1245. <div class=\"info-content mt-4 {% if advice_avg is same as null %} info-without-advice {% endif %}\">
  1246. <div>
  1247. <i class=\"fas fa-users\"></i>
  1248. <p>{{ sub|countCursusForTraining }}</p>
  1249. </div>
  1250. {% if advice_avg is not same as null %}
  1251. <div>
  1252. <i class=\"fas fa-star\"></i>
  1253. <p>{{ advice_avg }} ({{ sub|get_count_advice_training }})</p>
  1254. </div>
  1255. {% endif %}
  1256. <div class=\"dot-div\"></div>
  1257. <div>
  1258. {% if sub.updatedAt is not null %}
  1259. {{- \x27front.scholar.training.show.createdAt.label\x27|trans({
  1260. \x27%date%\x27: sub.updatedAt|format_datetime(\x27long\x27, locale=app.request.locale),
  1261. })|raw -}}
  1262. {% else %}
  1263. {{- \x27front.scholar.training.show.createdAt.label\x27|trans({
  1264. \x27%date%\x27: sub.createdAt|format_datetime(\x27long\x27, locale=app.request.locale),
  1265. })|raw -}}
  1266. {% endif %}
  1267. </div>
  1268. </div>
  1269. </div>
  1270. <div class=\"md-set\">
  1271. <div class=\"info-content mt-4\">
  1272. <div>
  1273. <div>
  1274. <i class=\"fas fa-users\"></i>
  1275. <p>{{ sub|countCursusForTraining }}</p>
  1276. </div>
  1277. {% if advice_avg is not same as null %}
  1278. <div class=\"info-content-stars\">
  1279. <i class=\"fas fa-star\"></i>
  1280. <p>{{ advice_avg }} ({{ sub|get_count_advice_training }})</p>
  1281. </div>
  1282. {% endif %}
  1283. </div>
  1284. <div class=\"mt-2\">
  1285. <div class=\"dot-div\">
  1286. <i class=\"fas fa-circle\"></i>
  1287. </div>
  1288. <div>
  1289. {% if sub.updatedAt is not null %}
  1290. {{- \x27front.scholar.training.show.createdAt.label\x27|trans({
  1291. \x27%date%\x27: sub.updatedAt|format_datetime(\x27long\x27, locale=app.request.locale),
  1292. })|raw -}}
  1293. {% else %}
  1294. {{- \x27front.scholar.training.show.createdAt.label\x27|trans({
  1295. \x27%date%\x27: sub.createdAt|format_datetime(\x27long\x27, locale=app.request.locale),
  1296. })|raw -}}
  1297. {% endif %}
  1298. </div>
  1299. </div>
  1300. </div>
  1301. </div>
  1302. <div class=\"description mt-4\">
  1303. <p>{{ sub.description }}</p>
  1304. </div>
  1305. </div>
  1306. </div>
  1307. {{ parent() }}
  1308. {% endblock content %}
  1309. {% block inner_content %}
  1310. <div class=\"row\">
  1311. <div class=\"col-lg-9 col-md-8 mb-3\">
  1312. <h2 class=\"v2-title-small mt-5\">{{ \x27front.scholar.training.show.sub_title.programm.label\x27|trans }}</h2>
  1313. <div id=\"accordion\" class=\"accordion-nellapp mt-5\">
  1314. {% for module in firstModules %}
  1315. {% include \x27Front/Scholar/Training/Partial/accordion-item.html.twig\x27 with {\x27module\x27 : module, \x27loop\x27: loop, \x27training\x27 : sub} %}
  1316. {% endfor %}
  1317. {% if lastModules|length %}
  1318. <div class=\"more-module\" style=\"display: none\">
  1319. {% for module in lastModules %}
  1320. {% include \x27Front/Scholar/Training/Partial/accordion-item.html.twig\x27 with {\x27module\x27 : module, \x27loop\x27: loop, \x27training\x27: sub} %}
  1321. {% endfor %}
  1322. </div>
  1323. <div class=\"w100-flex-center-x mt-3 div-btn-see-more\">
  1324. <button class=\"btn-see-more-v2\"
  1325. data-btn-more-module=\"true\">
  1326. {{ \x27front.scholar.training.list.button.see_more.label\x27|trans }}
  1327. 5/{{ 5 + lastModules|length }}
  1328. </button>
  1329. </div>
  1330. <div class=\"w100-flex-center-x mt-3 div-btn-see-less\" style=\"display: none\">
  1331. <button class=\"btn-see-more-v2\"
  1332. data-btn-less-module=\"true\">
  1333. {{ \x27front.scholar.training.list.button.see_less.label\x27|trans }}
  1334. </button>
  1335. </div>
  1336. {% endif %}
  1337. </div>
  1338. </div>
  1339. <div class=\"col-lg-3 col-md-4 order-first order-md-last\">
  1340. <div class=\"card-elevation-training\">
  1341. <div class=\"card-img-top\">
  1342. <img class=\"img-top-card img-responsive\" src=\"{{ sub|get_training_img_url }}\" alt=\"{{ sub.name }}\">
  1343. </div>
  1344. <div class=\"card-body\">
  1345. <div class=\"channel-name d-flex\">
  1346. <div>
  1347. <div class=\"img-logo-rounded\">
  1348. {% include \x27Front/Channel/Image/_image_main_avatar.html.twig\x27 with {\x27channel\x27: sub.ownerChannel} %}
  1349. </div>
  1350. </div>
  1351. <div class=\"channel-description\">
  1352. <a href=\"{{ path(\x27front_channel_show\x27, {\x27channelId\x27 : sub.ownerChannel.id }) }}\"
  1353. class=\"font-weight-bold\">{{ sub.ownerChannel.name }}</a>
  1354. {% if sub.ownerChannel.slogan is not empty %}
  1355. <p class=\"small\">
  1356. {{ sub.ownerChannel.slogan }}
  1357. </p>
  1358. {% endif %}
  1359. </div>
  1360. </div>
  1361. <div class=\"training-stats mt-4\">
  1362. {% if sub.trainingType is not null %}
  1363. <div class=\"row mt-3\">
  1364. <div class=\"col-12 content-stat\">
  1365. <div>
  1366. <i class=\"fas fa-book-open\"></i>
  1367. </div>
  1368. <p>{{ sub | get_training_type_key | trans }}</p>
  1369. </div>
  1370. </div>
  1371. {% endif %}
  1372. {% if sub.totalHourDescription is not null %}
  1373. <div class=\"row mt-3\">
  1374. <div class=\"col-12 content-stat\">
  1375. <div>
  1376. <i class=\"fas fa-stopwatch\"></i>
  1377. </div>
  1378. <p>{{ sub.totalHourDescription }} {{ \x27front.scholar.training.show.card.total_hour.label\x27|trans }}</p>
  1379. </div>
  1380. </div>
  1381. {% endif %}
  1382. {% if sub.videoDescription is not null %}
  1383. <div class=\"row mt-3\">
  1384. <div class=\"col-12 content-stat\">
  1385. <div>
  1386. <i class=\"fas fa-file-video\"></i>
  1387. </div>
  1388. <p>{{ sub.videoDescription }} {{ \x27front.scholar.training.show.card.video_time.label\x27|trans }}</p>
  1389. </div>
  1390. </div>
  1391. {% endif %}
  1392. {% set count_exercises = sub|count_exercises_by_training %}
  1393. {% if count_exercises != 0 %}
  1394. <div class=\"row mt-3\">
  1395. <div class=\"col-12 content-stat\">
  1396. <div>
  1397. <i class=\"far fa-list-alt\"></i>
  1398. </div>
  1399. <p>{{ count_exercises }} {{ \x27front.scholar.training.show.card.use_case.label\x27|trans }}</p>
  1400. </div>
  1401. </div>
  1402. {% endif %}
  1403. {% if sub.diplomaDescription is not null %}
  1404. <div class=\"row mt-3\">
  1405. <div class=\"col-12 content-stat\">
  1406. <div>
  1407. <i class=\"fas fa-graduation-cap\"></i>
  1408. </div>
  1409. <p>{{ sub.diplomaDescription }}</p>
  1410. </div>
  1411. </div>
  1412. {% endif %}
  1413. </div>
  1414. {% if sub.trainingProduct is not null and not has_front_access %}
  1415. <div class=\"mt-4 w100-flex-center-x\">
  1416. {% set value = sub.trainingProduct.price * 1 %}
  1417. <p class=\"price-card-training\">{{ \x27front.scholar.training.show.card.price.label\x27|trans({\x27%price%\x27 : value}) }}
  1418. *</p>
  1419. </div>
  1420. <div class=\"mt-2 w100-flex-center-x\">
  1421. <p class=\"price-note-card-training\">{{ \x27front.scholar.training.show.card.price.note\x27|trans({\x27%funding_contact_path%\x27 : path(\x27front_channel_training_payment_funding_contact\x27, {\x27training_id\x27: sub.id})}) | raw }}</p>
  1422. </div>
  1423. {% endif %}
  1424. {% if not sub.public and currentRoute == \x27front_channel_training_show\x27 %}
  1425. <div class=\"text-center mt-4 div-btn-card-show-training d-flex flex-column\">
  1426. {% if has_front_access %}
  1427. <div class=\"w100-flex-center-x\">
  1428. <div class=\"progress-circle\">
  1429. <div class=\"c100 p{{ trainingProgression.progression }} blue light-green-fill medium\">
  1430. <div class=\"slice\">
  1431. <div class=\"bar\"></div>
  1432. <div class=\"fill\"></div>
  1433. </div>
  1434. </div>
  1435. </div>
  1436. </div>
  1437. <div class=\"mb-2 training-progress-percent\">
  1438. {{ trainingProgression.progression }} %
  1439. </div>
  1440. {% if nellapp_url_exist(\x27core\x27, \x27app_account_show_cursus\x27) and cursus is defined and cursus is not null %}
  1441. <a href=\"{{ nellapp_url(\x27core\x27, \x27app_account_show_cursus\x27, {
  1442. \x27cursusId\x27: cursus.id
  1443. }) }}\"
  1444. class=\"see-training-progress-link\">{{ \x27front.scholar.training.show.card.progression.link.label\x27 | trans }}
  1445. </a>
  1446. {% endif %}
  1447. {% set lastChapterAchieved = getLastAchievedChapter(sub) %}
  1448. {% if lastChapterAchieved is not null %}
  1449. <a href=\"{{ path(\x27front_channel_chapter_show\x27, {
  1450. \x27trainingId\x27: lastChapterAchieved[\x27trainingId\x27],
  1451. \x27moduleId\x27: lastChapterAchieved[\x27moduleId\x27],
  1452. \x27lessonId\x27: lastChapterAchieved[\x27lessonId\x27],
  1453. \x27chapterId\x27: lastChapterAchieved[\x27chapterId\x27],
  1454. }) }}\"
  1455. class=\"btn-nellapp-v2 mt-3 d-inline-block\">
  1456. {{ \x27front.scholar.training.show.card.continue_btn.label\x27 | trans }}
  1457. </a>
  1458. {% endif %}
  1459. {% else %}
  1460. <a href=\"{{ path(\x27front_channel_training_payment_funding_contact\x27, {\x27training_id\x27: sub.id}) }}\"
  1461. class=\"btn btn-nellapp-v2\">
  1462. {{ \x27front.scholar.training.show.actions.follow.label\x27|trans }}
  1463. </a>
  1464. {% endif %}
  1465. </div>
  1466. {% endif %}
  1467. </div>
  1468. </div>
  1469. {% include \x27Front/Scholar/Partial/_back_to_dashboard.html.twig\x27 with {
  1470. \x27wrapper_class\x27: \x27mt-3 d-flex justify-content-center\x27,
  1471. \x27button_class\x27: \x27nellapp-outline-btn text-decoration-none\x27,
  1472. } %}
  1473. </div>
  1474. </div>
  1475. {% if training_descriptions|length > 0 %}
  1476. <div class=\"row\">
  1477. <div class=\"col-12\">
  1478. <h2 class=\"v2-title-small mt-5 mb-2\">{{ \x27front.scholar.training.show.sub_title.plus.label\x27|trans }}</h2>
  1479. </div>
  1480. <div class=\"col-lg-9 col-md-8\">
  1481. <div class=\"row\">
  1482. {% for description in training_descriptions %}
  1483. <div class=\"col-12 col-sm-12 col-md-12 col-lg-6 col-xl-6 mt-4\">
  1484. {% include \x27Front/Scholar/Card/training-description.html.twig\x27 with {\x27description\x27 : description} %}
  1485. </div>
  1486. {% endfor %}
  1487. </div>
  1488. </div>
  1489. </div>
  1490. {% endif %}
  1491. <div class=\"row mt-3\">
  1492. <div class=\"col-12\">
  1493. <h2 class=\"v2-title-small mt-5 mb-2\">{{ \x27front.scholar.training.show.sub_title.channel.label\x27|trans }}</h2>
  1494. </div>
  1495. <div class=\"col-lg-9 col-md-8\">
  1496. <div class=\"row\">
  1497. <div class=\"col-12\">
  1498. <div class=\"mt-3\">
  1499. {% include \x27Front/Scholar/Card/channel.html.twig\x27 with {\x27channel\x27 : sub.ownerChannel} %}
  1500. </div>
  1501. </div>
  1502. </div>
  1503. </div>
  1504. </div>
  1505. {% if teacher_entities|length > 0 %}
  1506. <div class=\"row mt-3\">
  1507. <div class=\"col-12\">
  1508. <h2 class=\"v2-title-small mt-5 mb-2\">{{ \x27front.scholar.training.show.sub_title.teacher.label\x27|trans }}
  1509. ({{ teacher_entities|length }})</h2>
  1510. </div>
  1511. </div>
  1512. {% for teacher in teacher_entities %}
  1513. <div class=\"col-lg-9 col-md-8\">
  1514. <div class=\"row\">
  1515. <div class=\"col-12\">
  1516. <div class=\"mt-3\">
  1517. {% include \x27Front/Scholar/Card/teacher.html.twig\x27 with {\x27teacher\x27 : teacher} %}
  1518. </div>
  1519. </div>
  1520. </div>
  1521. </div>
  1522. {% endfor %}
  1523. {% endif %}
  1524. {% if training_advices is defined and training_advices|length > 0 %}
  1525. <div class=\"row mt-3 mb-5\">
  1526. <div class=\"col-lg-9 col-md-8\">
  1527. <div class=\"row\">
  1528. <div class=\"col-12\">
  1529. <div class=\"div-title-between mt-5 mb-2\">
  1530. <h2 class=\"v2-title-small\">{{ \x27front.scholar.training.show.sub_title.advice.label\x27|trans }}
  1531. ({{ training_advices|length }})</h2>
  1532. <p class=\"\"><i class=\"far fa-star\"></i> {{ advice_avg }}</p>
  1533. </div>
  1534. </div>
  1535. <div class=\"col-12\">
  1536. <div class=\"mt-3\">
  1537. {% set adviceCount = 1 %}
  1538. {% set break = false %}
  1539. {% for advice in training_advices %}
  1540. {% if not break %}
  1541. {% include \x27Front/Scholar/Card/advice.html.twig\x27 with {\x27advice\x27 : advice} %}
  1542. {% set adviceCount = adviceCount + 1 %}
  1543. {% if adviceCount == 6 %}
  1544. {% set break = true %}
  1545. {% endif %}
  1546. {% endif %}
  1547. {% endfor %}
  1548. {% set adviceCount = 1 %}
  1549. {% if training_advices|length > 5 %}
  1550. <div class=\"div-more-advice\">
  1551. {% for advice in training_advices %}
  1552. {% set adviceCount = adviceCount + 1 %}
  1553. {% if adviceCount > 6 %}
  1554. {% include \x27Front/Scholar/Card/advice.html.twig\x27 with {\x27advice\x27 : advice} %}
  1555. {% endif %}
  1556. {% endfor %}
  1557. </div>
  1558. {% endif %}
  1559. </div>
  1560. </div>
  1561. </div>
  1562. </div>
  1563. </div>
  1564. {% endif %}
  1565. {% if form is defined and app.user %}
  1566. <div class=\"row\">
  1567. <div class=\"col-lg-9 col-md-8\">
  1568. <p class=\"small-description\">{{ \x27front.scholar.training.show.sub_title.advice.sentence.enter_key.label\x27|trans }}</p>
  1569. </div>
  1570. </div>
  1571. <div class=\"row\" {% if advice_user is defined and advice_user is not null %} {% if advice_user.note is not null %}data-advice-current-note=\"{{ advice_user.note }}\"{% endif %}{% endif %}>
  1572. <div class=\"col-lg-9 col-md-8 mt-1\">
  1573. <div class=\"form-advice-content\">
  1574. <div class=\"avatar-rounded\">{{ app.user|user_avatar }}</div>
  1575. <div class=\"form-advice-bg-gray\">
  1576. {{ form_start(form) }}
  1577. <div style=\"display: none\">
  1578. {{ form_widget(form.note) }}
  1579. </div>
  1580. {{ form_widget(form.comment) }}
  1581. {{ form_errors(form.comment) }}
  1582. {{ form_end(form) }}
  1583. <div class=\"stars-rating\">
  1584. <i class=\"far fa-star\" data-rating=\"1\"></i>
  1585. <i class=\"far fa-star\" data-rating=\"2\"></i>
  1586. <i class=\"far fa-star\" data-rating=\"3\"></i>
  1587. <i class=\"far fa-star\" data-rating=\"4\"></i>
  1588. <i class=\"far fa-star\" data-rating=\"5\"></i>
  1589. </div>
  1590. <div class=\"center-y ml-2\">
  1591. <span id=\"span-nb-note-advice\">0</span>
  1592. </div>
  1593. </div>
  1594. </div>
  1595. </div>
  1596. </div>
  1597. {% if advice_user is not null %}
  1598. {% if advice_user.id is not null %}
  1599. <div class=\"row\">
  1600. <div class=\"col-lg-9 col-md-8 mt-1\">
  1601. <div class=\"w100-flex-end-x\">
  1602. <a class=\"delete-btn-advice\"
  1603. href=\"{{ path(\x27front_training_advice_delete\x27, {\x27id\x27 : advice_user.id}) }}\">{{ \x27front.scholar.training.show.sub_title.advice.action.delete.label\x27|trans }}</a>
  1604. </div>
  1605. </div>
  1606. </div>
  1607. {% endif %}
  1608. {% endif %}
  1609. {% endif %}
  1610. {% if training_advices is defined and training_advices|length > 5 %}
  1611. <div class=\"row\">
  1612. <div class=\"col-lg-9 col-md-8 mt-5\">
  1613. <div class=\"w100-flex-center-x\">
  1614. <button class=\"see-more-btn\"
  1615. id=\"training-advice-see-more\">{{ \x27front.scholar.training.advice.see_more.label\x27|trans({\x27%count%\x27: training_advices|length}) }}</button>
  1616. </div>
  1617. </div>
  1618. </div>
  1619. {% endif %}
  1620. <div class=\"empty-div-bottom\"></div>
  1621. {% endblock inner_content %}
  1622. {% block body %}
  1623. {{ parent() }}
  1624. {% if is_granted(\x27CHANNEL_USER_PERM_TRAINING_SHOW\x27, sub) %}
  1625. <div class=\"modal fade\" id=\"delete-modal\" tabindex=\"-1\" role=\"dialog\"
  1626. aria-labelledby=\"delete-modal-label\" aria-hidden=\"true\">
  1627. <div class=\"modal-dialog\" role=\"document\">
  1628. <div class=\"modal-content\">
  1629. <div class=\"modal-header\">
  1630. <h5 class=\"modal-title\" id=\"delete-modal-label\">
  1631. {{ \x27front.scholar.training.show.actions.delete.modal.title.label\x27|trans({
  1632. \x27%name%\x27: sub.name,
  1633. })|raw }}
  1634. </h5>
  1635. </div>
  1636. <div class=\"modal-body\">
  1637. {{ \x27front.scholar.training.show.actions.delete.modal.body.label\x27|trans({
  1638. \x27%name%\x27: sub.name,
  1639. })|raw }}
  1640. </div>
  1641. <div class=\"modal-footer\">
  1642. <button type=\"button\" class=\"btn btn-link\" data-dismiss=\"modal\">
  1643. {{ \x27front.scholar.training.show.actions.delete.modal.cancel.label\x27|trans }}
  1644. </button>
  1645. <a href=\"{{ path(\x27front_channel_training_delete\x27, {\x27id\x27: sub.id, \x27channelId\x27: channel.id}) }}\"
  1646. class=\"btn btn-danger btn-raised\">
  1647. {{ \x27front.scholar.training.show.actions.delete.modal.delete.label\x27|trans }}
  1648. </a>
  1649. </div>
  1650. </div>
  1651. </div>
  1652. </div>
  1653. {% endif %}
  1654. {% endblock body %}", "Front/Scholar/Training/show.html.twig", "/var/www/html/templates/Front/Scholar/Training/show.html.twig");
  1655. }
  1656. }
  1657. /* Front/Scholar/Training/show.html.twig */
  1658. class __TwigTemplate_81fd3dad2aa9547dede2dff19e8383fc___35689168741 extends Template
  1659. {
  1660. private Source $source;
  1661. /**
  1662. * @var array<string, MacroNamespace>
  1663. */
  1664. private array $macros = [];
  1665. public function __construct(Environment $env)
  1666. {
  1667. parent::__construct($env);
  1668. $this->source = $this->getSourceContext();
  1669. $this->blocks = [
  1670. 'outer__block_fallback' => [$this, 'block_outer__block_fallback'],
  1671. ];
  1672. }
  1673. protected function doGetParent(array $context): bool|string|Template|TemplateWrapper
  1674. {
  1675. // line 32
  1676. return $this->load((isset($context["__parent__"]) || array_key_exists("__parent__", $context) ? $context["__parent__"] : (function () { throw new RuntimeError('Variable "__parent__" does not exist.', 32, $this->source); })()), 32);
  1677. }
  1678. protected function doDisplay(array $context, array $blocks = []): iterable
  1679. {
  1680. $macros = $this->macros;
  1681. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  1682. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "Front/Scholar/Training/show.html.twig"));
  1683. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  1684. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "Front/Scholar/Training/show.html.twig"));
  1685. yield from $this->getParent($context)->unwrap()->yield($context, array_merge($this->blocks, $blocks));
  1686. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  1687. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  1688. }
  1689. /**
  1690. * @return iterable<null|scalar|\Stringable>
  1691. */
  1692. public function block_outer__block_fallback(array $context, array $blocks = []): iterable
  1693. {
  1694. $macros = $this->macros;
  1695. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  1696. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "outer__block_fallback"));
  1697. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  1698. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "outer__block_fallback"));
  1699. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  1700. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  1701. return; yield;
  1702. }
  1703. /**
  1704. * @codeCoverageIgnore
  1705. */
  1706. public function getTemplateName(): string
  1707. {
  1708. return "Front/Scholar/Training/show.html.twig";
  1709. }
  1710. /**
  1711. * @codeCoverageIgnore
  1712. */
  1713. public function isTraitable(): bool
  1714. {
  1715. return false;
  1716. }
  1717. /**
  1718. * @codeCoverageIgnore
  1719. */
  1720. public function getDefaultEscapeStrategy(): string|false
  1721. {
  1722. return "html";
  1723. }
  1724. /**
  1725. * @codeCoverageIgnore
  1726. */
  1727. public function getDebugInfo(): array
  1728. {
  1729. return array ( 1808 => 32, 1243 => 477, 1238 => 475, 1232 => 472, 1225 => 467, 1223 => 466, 1222 => 465, 1215 => 460, 1213 => 459, 1212 => 458, 1204 => 452, 1202 => 451, 1197 => 450, 1184 => 449, 1172 => 446, 1164 => 441, 1158 => 437, 1156 => 436, 1150 => 432, 1147 => 431, 1144 => 430, 1134 => 425, 1128 => 421, 1125 => 420, 1123 => 419, 1105 => 404, 1101 => 403, 1097 => 402, 1092 => 400, 1087 => 398, 1082 => 396, 1069 => 393, 1063 => 390, 1059 => 388, 1056 => 387, 1048 => 381, 1044 => 379, 1029 => 378, 1026 => 377, 1023 => 376, 1020 => 375, 1017 => 374, 1000 => 373, 997 => 372, 994 => 371, 992 => 370, 989 => 369, 974 => 368, 971 => 367, 968 => 366, 965 => 365, 962 => 364, 959 => 363, 956 => 362, 953 => 361, 935 => 360, 932 => 359, 930 => 358, 922 => 353, 918 => 352, 914 => 351, 907 => 346, 905 => 345, 902 => 344, 899 => 343, 880 => 338, 878 => 337, 872 => 333, 855 => 332, 849 => 329, 845 => 328, 841 => 326, 839 => 325, 831 => 319, 829 => 318, 820 => 312, 815 => 309, 809 => 305, 793 => 303, 791 => 302, 788 => 301, 771 => 300, 764 => 296, 760 => 294, 758 => 293, 753 => 290, 751 => 286, 746 => 283, 742 => 281, 736 => 278, 730 => 276, 727 => 275, 721 => 272, 717 => 270, 715 => 269, 714 => 268, 713 => 267, 712 => 266, 710 => 265, 707 => 264, 705 => 263, 702 => 262, 696 => 259, 693 => 258, 691 => 257, 689 => 256, 687 => 255, 681 => 252, 669 => 243, 665 => 241, 663 => 240, 660 => 239, 658 => 238, 655 => 237, 649 => 234, 641 => 230, 639 => 229, 636 => 228, 634 => 227, 630 => 225, 623 => 221, 616 => 216, 613 => 215, 604 => 211, 596 => 205, 593 => 204, 590 => 203, 581 => 199, 574 => 194, 571 => 193, 562 => 189, 555 => 184, 553 => 183, 550 => 182, 543 => 178, 536 => 173, 534 => 172, 529 => 169, 523 => 166, 520 => 165, 518 => 164, 514 => 163, 510 => 162, 504 => 158, 502 => 157, 490 => 150, 481 => 143, 474 => 139, 465 => 133, 461 => 132, 455 => 128, 440 => 127, 437 => 126, 420 => 125, 417 => 124, 414 => 123, 399 => 122, 396 => 121, 379 => 120, 374 => 118, 370 => 116, 357 => 115, 344 => 112, 336 => 107, 326 => 99, 323 => 96, 322 => 95, 319 => 92, 318 => 91, 316 => 90, 308 => 84, 300 => 81, 296 => 79, 294 => 78, 289 => 76, 277 => 66, 274 => 63, 273 => 62, 270 => 59, 269 => 58, 267 => 57, 263 => 55, 255 => 52, 251 => 50, 249 => 49, 244 => 47, 236 => 44, 231 => 41, 229 => 39, 228 => 38, 223 => 34, 220 => 33, 204 => 32, 201 => 31, 198 => 30, 185 => 29, 160 => 28, 145 => 23, 141 => 21, 138 => 20, 135 => 19, 132 => 18, 130 => 17, 126 => 15, 123 => 14, 110 => 13, 97 => 10, 92 => 9, 79 => 8, 68 => 1, 66 => 5, 65 => 4, 63 => 3, 50 => 1,);
  1730. }
  1731. public function getSourceContext(): Source
  1732. {
  1733. return new Source("{% extends \x27base.html.twig\x27 %}
  1734. {% set currentRoute = app.request.attributes.get(\x27_route\x27) %}
  1735. {% set has_front_access = is_granted(\x27FRONT_ACCESS\x27, {
  1736. \x27training\x27: sub,
  1737. }) %}
  1738. {% block stylesheets %}
  1739. {{ parent() }}
  1740. {{ encore_entry_link_tags(\x27styles\x27, \x27core\x27, \x27core\x27) }}
  1741. {% endblock %}
  1742. {% block before_navbar %}
  1743. {% if currentRoute == \x27manager_channel_training_show\x27 %}
  1744. <div style=\"background-color: #E9F8F8;\" class=\"p-2 justify-content-center align-items-center d-flex flex-column flex-md-row text-center\">
  1745. {% set headerReturnLink = null %}
  1746. {% if currentRoute == \x27manager_channel_training_show\x27 %}
  1747. {% set headerReturnLink = path(\x27manager_channel_trainings\x27, {\x27channelId\x27: channel.id}) %}
  1748. {% endif %}
  1749. <div style=\"font-weight: bold; color: #212B7A\" class=\"mx-1\">Vous êtes en mode visualisation de l\x27interface pour les administrateurs.</div>
  1750. <div style=\"font-weight: bold\"><a href=\"{{- headerReturnLink -}}\" style=\"text-decoration: underline\">Revenir à la page d\x27administration</a></div>
  1751. </div>
  1752. {% endif %}
  1753. {% endblock before_navbar %}
  1754. {% block title %}{{ sub.name }} - {{ parent() }}{% endblock %}
  1755. {% block content %}
  1756. {% set advice_avg = sub|advice_avg_by_training %}
  1757. {% if app.user %}
  1758. {% component \x27ChannelUserData:CursusLockout\x27 with { cursus: cursus ?? null } %}{% endcomponent %}
  1759. {% endif %}
  1760. <div class=\"jumbotron-v2 mb-4\">
  1761. <div class=\"container\">
  1762. <h2 class=\"v2-title-big\">
  1763. {{- \x27front.scholar.training.show.title.label\x27|trans({
  1764. \x27%name%\x27: sub.name,
  1765. }) -}}
  1766. </h2>
  1767. <div class=\"md-none\">
  1768. <div class=\"info-content mt-4 {% if advice_avg is same as null %} info-without-advice {% endif %}\">
  1769. <div>
  1770. <i class=\"fas fa-users\"></i>
  1771. <p>{{ sub|countCursusForTraining }}</p>
  1772. </div>
  1773. {% if advice_avg is not same as null %}
  1774. <div>
  1775. <i class=\"fas fa-star\"></i>
  1776. <p>{{ advice_avg }} ({{ sub|get_count_advice_training }})</p>
  1777. </div>
  1778. {% endif %}
  1779. <div class=\"dot-div\"></div>
  1780. <div>
  1781. {% if sub.updatedAt is not null %}
  1782. {{- \x27front.scholar.training.show.createdAt.label\x27|trans({
  1783. \x27%date%\x27: sub.updatedAt|format_datetime(\x27long\x27, locale=app.request.locale),
  1784. })|raw -}}
  1785. {% else %}
  1786. {{- \x27front.scholar.training.show.createdAt.label\x27|trans({
  1787. \x27%date%\x27: sub.createdAt|format_datetime(\x27long\x27, locale=app.request.locale),
  1788. })|raw -}}
  1789. {% endif %}
  1790. </div>
  1791. </div>
  1792. </div>
  1793. <div class=\"md-set\">
  1794. <div class=\"info-content mt-4\">
  1795. <div>
  1796. <div>
  1797. <i class=\"fas fa-users\"></i>
  1798. <p>{{ sub|countCursusForTraining }}</p>
  1799. </div>
  1800. {% if advice_avg is not same as null %}
  1801. <div class=\"info-content-stars\">
  1802. <i class=\"fas fa-star\"></i>
  1803. <p>{{ advice_avg }} ({{ sub|get_count_advice_training }})</p>
  1804. </div>
  1805. {% endif %}
  1806. </div>
  1807. <div class=\"mt-2\">
  1808. <div class=\"dot-div\">
  1809. <i class=\"fas fa-circle\"></i>
  1810. </div>
  1811. <div>
  1812. {% if sub.updatedAt is not null %}
  1813. {{- \x27front.scholar.training.show.createdAt.label\x27|trans({
  1814. \x27%date%\x27: sub.updatedAt|format_datetime(\x27long\x27, locale=app.request.locale),
  1815. })|raw -}}
  1816. {% else %}
  1817. {{- \x27front.scholar.training.show.createdAt.label\x27|trans({
  1818. \x27%date%\x27: sub.createdAt|format_datetime(\x27long\x27, locale=app.request.locale),
  1819. })|raw -}}
  1820. {% endif %}
  1821. </div>
  1822. </div>
  1823. </div>
  1824. </div>
  1825. <div class=\"description mt-4\">
  1826. <p>{{ sub.description }}</p>
  1827. </div>
  1828. </div>
  1829. </div>
  1830. {{ parent() }}
  1831. {% endblock content %}
  1832. {% block inner_content %}
  1833. <div class=\"row\">
  1834. <div class=\"col-lg-9 col-md-8 mb-3\">
  1835. <h2 class=\"v2-title-small mt-5\">{{ \x27front.scholar.training.show.sub_title.programm.label\x27|trans }}</h2>
  1836. <div id=\"accordion\" class=\"accordion-nellapp mt-5\">
  1837. {% for module in firstModules %}
  1838. {% include \x27Front/Scholar/Training/Partial/accordion-item.html.twig\x27 with {\x27module\x27 : module, \x27loop\x27: loop, \x27training\x27 : sub} %}
  1839. {% endfor %}
  1840. {% if lastModules|length %}
  1841. <div class=\"more-module\" style=\"display: none\">
  1842. {% for module in lastModules %}
  1843. {% include \x27Front/Scholar/Training/Partial/accordion-item.html.twig\x27 with {\x27module\x27 : module, \x27loop\x27: loop, \x27training\x27: sub} %}
  1844. {% endfor %}
  1845. </div>
  1846. <div class=\"w100-flex-center-x mt-3 div-btn-see-more\">
  1847. <button class=\"btn-see-more-v2\"
  1848. data-btn-more-module=\"true\">
  1849. {{ \x27front.scholar.training.list.button.see_more.label\x27|trans }}
  1850. 5/{{ 5 + lastModules|length }}
  1851. </button>
  1852. </div>
  1853. <div class=\"w100-flex-center-x mt-3 div-btn-see-less\" style=\"display: none\">
  1854. <button class=\"btn-see-more-v2\"
  1855. data-btn-less-module=\"true\">
  1856. {{ \x27front.scholar.training.list.button.see_less.label\x27|trans }}
  1857. </button>
  1858. </div>
  1859. {% endif %}
  1860. </div>
  1861. </div>
  1862. <div class=\"col-lg-3 col-md-4 order-first order-md-last\">
  1863. <div class=\"card-elevation-training\">
  1864. <div class=\"card-img-top\">
  1865. <img class=\"img-top-card img-responsive\" src=\"{{ sub|get_training_img_url }}\" alt=\"{{ sub.name }}\">
  1866. </div>
  1867. <div class=\"card-body\">
  1868. <div class=\"channel-name d-flex\">
  1869. <div>
  1870. <div class=\"img-logo-rounded\">
  1871. {% include \x27Front/Channel/Image/_image_main_avatar.html.twig\x27 with {\x27channel\x27: sub.ownerChannel} %}
  1872. </div>
  1873. </div>
  1874. <div class=\"channel-description\">
  1875. <a href=\"{{ path(\x27front_channel_show\x27, {\x27channelId\x27 : sub.ownerChannel.id }) }}\"
  1876. class=\"font-weight-bold\">{{ sub.ownerChannel.name }}</a>
  1877. {% if sub.ownerChannel.slogan is not empty %}
  1878. <p class=\"small\">
  1879. {{ sub.ownerChannel.slogan }}
  1880. </p>
  1881. {% endif %}
  1882. </div>
  1883. </div>
  1884. <div class=\"training-stats mt-4\">
  1885. {% if sub.trainingType is not null %}
  1886. <div class=\"row mt-3\">
  1887. <div class=\"col-12 content-stat\">
  1888. <div>
  1889. <i class=\"fas fa-book-open\"></i>
  1890. </div>
  1891. <p>{{ sub | get_training_type_key | trans }}</p>
  1892. </div>
  1893. </div>
  1894. {% endif %}
  1895. {% if sub.totalHourDescription is not null %}
  1896. <div class=\"row mt-3\">
  1897. <div class=\"col-12 content-stat\">
  1898. <div>
  1899. <i class=\"fas fa-stopwatch\"></i>
  1900. </div>
  1901. <p>{{ sub.totalHourDescription }} {{ \x27front.scholar.training.show.card.total_hour.label\x27|trans }}</p>
  1902. </div>
  1903. </div>
  1904. {% endif %}
  1905. {% if sub.videoDescription is not null %}
  1906. <div class=\"row mt-3\">
  1907. <div class=\"col-12 content-stat\">
  1908. <div>
  1909. <i class=\"fas fa-file-video\"></i>
  1910. </div>
  1911. <p>{{ sub.videoDescription }} {{ \x27front.scholar.training.show.card.video_time.label\x27|trans }}</p>
  1912. </div>
  1913. </div>
  1914. {% endif %}
  1915. {% set count_exercises = sub|count_exercises_by_training %}
  1916. {% if count_exercises != 0 %}
  1917. <div class=\"row mt-3\">
  1918. <div class=\"col-12 content-stat\">
  1919. <div>
  1920. <i class=\"far fa-list-alt\"></i>
  1921. </div>
  1922. <p>{{ count_exercises }} {{ \x27front.scholar.training.show.card.use_case.label\x27|trans }}</p>
  1923. </div>
  1924. </div>
  1925. {% endif %}
  1926. {% if sub.diplomaDescription is not null %}
  1927. <div class=\"row mt-3\">
  1928. <div class=\"col-12 content-stat\">
  1929. <div>
  1930. <i class=\"fas fa-graduation-cap\"></i>
  1931. </div>
  1932. <p>{{ sub.diplomaDescription }}</p>
  1933. </div>
  1934. </div>
  1935. {% endif %}
  1936. </div>
  1937. {% if sub.trainingProduct is not null and not has_front_access %}
  1938. <div class=\"mt-4 w100-flex-center-x\">
  1939. {% set value = sub.trainingProduct.price * 1 %}
  1940. <p class=\"price-card-training\">{{ \x27front.scholar.training.show.card.price.label\x27|trans({\x27%price%\x27 : value}) }}
  1941. *</p>
  1942. </div>
  1943. <div class=\"mt-2 w100-flex-center-x\">
  1944. <p class=\"price-note-card-training\">{{ \x27front.scholar.training.show.card.price.note\x27|trans({\x27%funding_contact_path%\x27 : path(\x27front_channel_training_payment_funding_contact\x27, {\x27training_id\x27: sub.id})}) | raw }}</p>
  1945. </div>
  1946. {% endif %}
  1947. {% if not sub.public and currentRoute == \x27front_channel_training_show\x27 %}
  1948. <div class=\"text-center mt-4 div-btn-card-show-training d-flex flex-column\">
  1949. {% if has_front_access %}
  1950. <div class=\"w100-flex-center-x\">
  1951. <div class=\"progress-circle\">
  1952. <div class=\"c100 p{{ trainingProgression.progression }} blue light-green-fill medium\">
  1953. <div class=\"slice\">
  1954. <div class=\"bar\"></div>
  1955. <div class=\"fill\"></div>
  1956. </div>
  1957. </div>
  1958. </div>
  1959. </div>
  1960. <div class=\"mb-2 training-progress-percent\">
  1961. {{ trainingProgression.progression }} %
  1962. </div>
  1963. {% if nellapp_url_exist(\x27core\x27, \x27app_account_show_cursus\x27) and cursus is defined and cursus is not null %}
  1964. <a href=\"{{ nellapp_url(\x27core\x27, \x27app_account_show_cursus\x27, {
  1965. \x27cursusId\x27: cursus.id
  1966. }) }}\"
  1967. class=\"see-training-progress-link\">{{ \x27front.scholar.training.show.card.progression.link.label\x27 | trans }}
  1968. </a>
  1969. {% endif %}
  1970. {% set lastChapterAchieved = getLastAchievedChapter(sub) %}
  1971. {% if lastChapterAchieved is not null %}
  1972. <a href=\"{{ path(\x27front_channel_chapter_show\x27, {
  1973. \x27trainingId\x27: lastChapterAchieved[\x27trainingId\x27],
  1974. \x27moduleId\x27: lastChapterAchieved[\x27moduleId\x27],
  1975. \x27lessonId\x27: lastChapterAchieved[\x27lessonId\x27],
  1976. \x27chapterId\x27: lastChapterAchieved[\x27chapterId\x27],
  1977. }) }}\"
  1978. class=\"btn-nellapp-v2 mt-3 d-inline-block\">
  1979. {{ \x27front.scholar.training.show.card.continue_btn.label\x27 | trans }}
  1980. </a>
  1981. {% endif %}
  1982. {% else %}
  1983. <a href=\"{{ path(\x27front_channel_training_payment_funding_contact\x27, {\x27training_id\x27: sub.id}) }}\"
  1984. class=\"btn btn-nellapp-v2\">
  1985. {{ \x27front.scholar.training.show.actions.follow.label\x27|trans }}
  1986. </a>
  1987. {% endif %}
  1988. </div>
  1989. {% endif %}
  1990. </div>
  1991. </div>
  1992. {% include \x27Front/Scholar/Partial/_back_to_dashboard.html.twig\x27 with {
  1993. \x27wrapper_class\x27: \x27mt-3 d-flex justify-content-center\x27,
  1994. \x27button_class\x27: \x27nellapp-outline-btn text-decoration-none\x27,
  1995. } %}
  1996. </div>
  1997. </div>
  1998. {% if training_descriptions|length > 0 %}
  1999. <div class=\"row\">
  2000. <div class=\"col-12\">
  2001. <h2 class=\"v2-title-small mt-5 mb-2\">{{ \x27front.scholar.training.show.sub_title.plus.label\x27|trans }}</h2>
  2002. </div>
  2003. <div class=\"col-lg-9 col-md-8\">
  2004. <div class=\"row\">
  2005. {% for description in training_descriptions %}
  2006. <div class=\"col-12 col-sm-12 col-md-12 col-lg-6 col-xl-6 mt-4\">
  2007. {% include \x27Front/Scholar/Card/training-description.html.twig\x27 with {\x27description\x27 : description} %}
  2008. </div>
  2009. {% endfor %}
  2010. </div>
  2011. </div>
  2012. </div>
  2013. {% endif %}
  2014. <div class=\"row mt-3\">
  2015. <div class=\"col-12\">
  2016. <h2 class=\"v2-title-small mt-5 mb-2\">{{ \x27front.scholar.training.show.sub_title.channel.label\x27|trans }}</h2>
  2017. </div>
  2018. <div class=\"col-lg-9 col-md-8\">
  2019. <div class=\"row\">
  2020. <div class=\"col-12\">
  2021. <div class=\"mt-3\">
  2022. {% include \x27Front/Scholar/Card/channel.html.twig\x27 with {\x27channel\x27 : sub.ownerChannel} %}
  2023. </div>
  2024. </div>
  2025. </div>
  2026. </div>
  2027. </div>
  2028. {% if teacher_entities|length > 0 %}
  2029. <div class=\"row mt-3\">
  2030. <div class=\"col-12\">
  2031. <h2 class=\"v2-title-small mt-5 mb-2\">{{ \x27front.scholar.training.show.sub_title.teacher.label\x27|trans }}
  2032. ({{ teacher_entities|length }})</h2>
  2033. </div>
  2034. </div>
  2035. {% for teacher in teacher_entities %}
  2036. <div class=\"col-lg-9 col-md-8\">
  2037. <div class=\"row\">
  2038. <div class=\"col-12\">
  2039. <div class=\"mt-3\">
  2040. {% include \x27Front/Scholar/Card/teacher.html.twig\x27 with {\x27teacher\x27 : teacher} %}
  2041. </div>
  2042. </div>
  2043. </div>
  2044. </div>
  2045. {% endfor %}
  2046. {% endif %}
  2047. {% if training_advices is defined and training_advices|length > 0 %}
  2048. <div class=\"row mt-3 mb-5\">
  2049. <div class=\"col-lg-9 col-md-8\">
  2050. <div class=\"row\">
  2051. <div class=\"col-12\">
  2052. <div class=\"div-title-between mt-5 mb-2\">
  2053. <h2 class=\"v2-title-small\">{{ \x27front.scholar.training.show.sub_title.advice.label\x27|trans }}
  2054. ({{ training_advices|length }})</h2>
  2055. <p class=\"\"><i class=\"far fa-star\"></i> {{ advice_avg }}</p>
  2056. </div>
  2057. </div>
  2058. <div class=\"col-12\">
  2059. <div class=\"mt-3\">
  2060. {% set adviceCount = 1 %}
  2061. {% set break = false %}
  2062. {% for advice in training_advices %}
  2063. {% if not break %}
  2064. {% include \x27Front/Scholar/Card/advice.html.twig\x27 with {\x27advice\x27 : advice} %}
  2065. {% set adviceCount = adviceCount + 1 %}
  2066. {% if adviceCount == 6 %}
  2067. {% set break = true %}
  2068. {% endif %}
  2069. {% endif %}
  2070. {% endfor %}
  2071. {% set adviceCount = 1 %}
  2072. {% if training_advices|length > 5 %}
  2073. <div class=\"div-more-advice\">
  2074. {% for advice in training_advices %}
  2075. {% set adviceCount = adviceCount + 1 %}
  2076. {% if adviceCount > 6 %}
  2077. {% include \x27Front/Scholar/Card/advice.html.twig\x27 with {\x27advice\x27 : advice} %}
  2078. {% endif %}
  2079. {% endfor %}
  2080. </div>
  2081. {% endif %}
  2082. </div>
  2083. </div>
  2084. </div>
  2085. </div>
  2086. </div>
  2087. {% endif %}
  2088. {% if form is defined and app.user %}
  2089. <div class=\"row\">
  2090. <div class=\"col-lg-9 col-md-8\">
  2091. <p class=\"small-description\">{{ \x27front.scholar.training.show.sub_title.advice.sentence.enter_key.label\x27|trans }}</p>
  2092. </div>
  2093. </div>
  2094. <div class=\"row\" {% if advice_user is defined and advice_user is not null %} {% if advice_user.note is not null %}data-advice-current-note=\"{{ advice_user.note }}\"{% endif %}{% endif %}>
  2095. <div class=\"col-lg-9 col-md-8 mt-1\">
  2096. <div class=\"form-advice-content\">
  2097. <div class=\"avatar-rounded\">{{ app.user|user_avatar }}</div>
  2098. <div class=\"form-advice-bg-gray\">
  2099. {{ form_start(form) }}
  2100. <div style=\"display: none\">
  2101. {{ form_widget(form.note) }}
  2102. </div>
  2103. {{ form_widget(form.comment) }}
  2104. {{ form_errors(form.comment) }}
  2105. {{ form_end(form) }}
  2106. <div class=\"stars-rating\">
  2107. <i class=\"far fa-star\" data-rating=\"1\"></i>
  2108. <i class=\"far fa-star\" data-rating=\"2\"></i>
  2109. <i class=\"far fa-star\" data-rating=\"3\"></i>
  2110. <i class=\"far fa-star\" data-rating=\"4\"></i>
  2111. <i class=\"far fa-star\" data-rating=\"5\"></i>
  2112. </div>
  2113. <div class=\"center-y ml-2\">
  2114. <span id=\"span-nb-note-advice\">0</span>
  2115. </div>
  2116. </div>
  2117. </div>
  2118. </div>
  2119. </div>
  2120. {% if advice_user is not null %}
  2121. {% if advice_user.id is not null %}
  2122. <div class=\"row\">
  2123. <div class=\"col-lg-9 col-md-8 mt-1\">
  2124. <div class=\"w100-flex-end-x\">
  2125. <a class=\"delete-btn-advice\"
  2126. href=\"{{ path(\x27front_training_advice_delete\x27, {\x27id\x27 : advice_user.id}) }}\">{{ \x27front.scholar.training.show.sub_title.advice.action.delete.label\x27|trans }}</a>
  2127. </div>
  2128. </div>
  2129. </div>
  2130. {% endif %}
  2131. {% endif %}
  2132. {% endif %}
  2133. {% if training_advices is defined and training_advices|length > 5 %}
  2134. <div class=\"row\">
  2135. <div class=\"col-lg-9 col-md-8 mt-5\">
  2136. <div class=\"w100-flex-center-x\">
  2137. <button class=\"see-more-btn\"
  2138. id=\"training-advice-see-more\">{{ \x27front.scholar.training.advice.see_more.label\x27|trans({\x27%count%\x27: training_advices|length}) }}</button>
  2139. </div>
  2140. </div>
  2141. </div>
  2142. {% endif %}
  2143. <div class=\"empty-div-bottom\"></div>
  2144. {% endblock inner_content %}
  2145. {% block body %}
  2146. {{ parent() }}
  2147. {% if is_granted(\x27CHANNEL_USER_PERM_TRAINING_SHOW\x27, sub) %}
  2148. <div class=\"modal fade\" id=\"delete-modal\" tabindex=\"-1\" role=\"dialog\"
  2149. aria-labelledby=\"delete-modal-label\" aria-hidden=\"true\">
  2150. <div class=\"modal-dialog\" role=\"document\">
  2151. <div class=\"modal-content\">
  2152. <div class=\"modal-header\">
  2153. <h5 class=\"modal-title\" id=\"delete-modal-label\">
  2154. {{ \x27front.scholar.training.show.actions.delete.modal.title.label\x27|trans({
  2155. \x27%name%\x27: sub.name,
  2156. })|raw }}
  2157. </h5>
  2158. </div>
  2159. <div class=\"modal-body\">
  2160. {{ \x27front.scholar.training.show.actions.delete.modal.body.label\x27|trans({
  2161. \x27%name%\x27: sub.name,
  2162. })|raw }}
  2163. </div>
  2164. <div class=\"modal-footer\">
  2165. <button type=\"button\" class=\"btn btn-link\" data-dismiss=\"modal\">
  2166. {{ \x27front.scholar.training.show.actions.delete.modal.cancel.label\x27|trans }}
  2167. </button>
  2168. <a href=\"{{ path(\x27front_channel_training_delete\x27, {\x27id\x27: sub.id, \x27channelId\x27: channel.id}) }}\"
  2169. class=\"btn btn-danger btn-raised\">
  2170. {{ \x27front.scholar.training.show.actions.delete.modal.delete.label\x27|trans }}
  2171. </a>
  2172. </div>
  2173. </div>
  2174. </div>
  2175. </div>
  2176. {% endif %}
  2177. {% endblock body %}", "Front/Scholar/Training/show.html.twig", "/var/www/html/templates/Front/Scholar/Training/show.html.twig");
  2178. }
  2179. }