templates/annuaire/_includes/item-list.html.twig line 1

Open in your IDE?
  1. {% set urlFiche = pathBuilder.buildFiche(etablissement) %}
  2. {% set urlFicheInternat = pathBuilder.buildFicheInternat(etablissement) %}
  3. {% set imgAlt = [
  4.     etablissement.codePostal,
  5.     (etablissement.ville ? etablissement.ville.libelle : ''),
  6.     etablissement.denomination,
  7. ]|join(' - ')|trim(' -') %}
  8. {% set isForeignCityNear =
  9.     parametres.villes | length and
  10.     etablissement.ville and
  11.     etablissement.ville.id not in parametres.villes
  12. %}
  13. {% set isPlus =
  14.     etablissement.isClient and (
  15.         etablissement.videoPlus or
  16.         etablissement.diapoPlus or
  17.         etablissement.jpoPlus   or
  18.         etablissement.diplomePlus
  19.     )
  20. %}
  21. {% if itemsInsertions and itemsInsertions is not empty and itemsInsertions|length >= 3 %}
  22.     {% if loop.index == 3 %}
  23.         {% include 'annuaire/_includes/diplome-list.html.twig' %}
  24.     {% endif %}
  25. {% endif %}
  26. <article 
  27.     class="{{etablissement.isClient ? 'isClient' : 'non-client'}} {{typeOnglet(etablissement.type)}} item-fiche-etablissement"
  28.     data-etablissement-id="{{etablissement.id}}"
  29.     data-etablissement-denomination="{{etablissement.denomination}}"
  30.     data-etablissement-type="{{ typeEtablissementSimple(etablissement.type) | default(null) }}"
  31.     data-etablissement-sous-contrat="{{etablissement.sousContrat ? 'sous_contrat' : 'hors_contrat'}}"
  32.     data-etablissement-location-id="{{etablissement.ville.departement.id ~ '_' ~ etablissement.codePostal ~ '_' ~ etablissement.ville.slug | replace({'-': '_'})}}"
  33.     data-etablissement-segment="{{etablissement.isClient ? 'client' : 'prospect'}}"
  34.     data-etablissement-index="{{loop.index + (parametres.pageActuele-1) * parametres.maxParPage}}"
  35.     data-index="{{loop.index + (parametres.pageActuele-1) * parametres.maxParPage}}"
  36.     >
  37.     {#{% if etablissement.sousContrat == true %}
  38.         <p class="status">Sous contrat</p>
  39.     {% endif %}#}
  40.     <header>
  41.         {# -- DEBUG --------  #}
  42.         {# <h6><span class="badge badge-danger">{{ loop.index + (parametres.pageActuele-1) * parametres.maxParPage }}</span>
  43.         <span class="badge badge-warning">{% if etablissement.catholique %}#C{%else%}!C{%endif%}</span>
  44.         <span class="badge badge-primary">{% if etablissement.participant %}P{%endif%}</span>
  45.         </h6> #}
  46.         <div>
  47.             <strong>
  48.                 <a href="{{ urlFiche }}" class="url-fiche">
  49.                     {{ etablissement.denomination | u.truncate(80, '…', false)}}
  50.                 </a>
  51.             </strong>
  52.             <p class="establishment-address">
  53.                 {{ etablissement.adresse1 }} {{ etablissement.adresse2 }} {{ etablissement.adresse3 }}<br>
  54.                 {{ etablissement.codePostal }} {{ etablissement.ville ? etablissement.ville.libelle : '' }}
  55.             </p>
  56.         </div>
  57.         <p class="keywords">{{ etablissement.motsCles }}</p>
  58.         {% if etablissement.type in [ '08-LAGRI', '09-LPROF', '10-LEAP', '12-SUP' ] and etablissement.isClient %}
  59.             <div>
  60.                 <ul class="diplomes-list">
  61.                     {% set limit = 2 %}
  62.                     {% for item in etablissement.itemsInsertions | filter( item => item.diplomePlus == true ) %}
  63.                         {% if item.onglet == 'Formations' and item.onglet is not empty and not ('LANG' in item.pere) and limit > 0 and item.niveau == 4 %}
  64.                             <li class="diplome diplome-plus">
  65.                                 {{ item | itemLibelle | u.truncate(50, '…', false) }} {% if item.options is not empty %} - {{ item.options | u.truncate(20, '…', false) }} {% endif %}
  66.                             </li>
  67.                             {% set limit = limit - 1 %}
  68.                         {% endif %}
  69.                     {% endfor %}
  70.                     {% for item in etablissement.itemsInsertions | filter( item => item.diplomePlus == null or item.diplomePlus == false ) %}
  71.                         {% if item.onglet == 'Formations' and item.onglet is not empty and not ('LANG' in item.pere) and limit > 0 and item.niveau == 4 %}
  72.                             <li class="diplome">
  73.                                 {{ item | itemLibelle | u.truncate(50, '…', false) }} {% if item.options is not empty %} - {{ item.options | u.truncate(20, '…', false) }} {% endif %}
  74.                             </li>
  75.                             {% set limit = limit - 1 %}
  76.                         {% endif %}
  77.                     {% endfor %}
  78.                 </ul>
  79.                 {% if limit == 0 %}
  80.                     <div class="ts-diplome">
  81.                         {% include '_includes/lien-masque.html.twig' with {
  82.                             'target': urlFiche,
  83.                             'content': 'Afficher tous les diplômes'
  84.                         } only %}
  85.                     </div>
  86.                 {% endif %}
  87.             </div>
  88.         {% else %}
  89.             
  90.             {# environ 50 SQL ici !!! remplacé par une valeur pré-calculée #}
  91.             {# {% include 'annuaire/_includes/composition-ensemble-scolaire.html.twig' %} #}
  92.             {% set compositionEnsembleScolaire = etablissement.compositionEnsembleScolaire %}
  93.             {% if compositionEnsembleScolaire is defined and compositionEnsembleScolaire != '' %}
  94.                 <div>
  95.                     <p class="configuration">
  96.                         Composition de l'ensemble scolaire :<br class="mb-3">
  97.                         {{ compositionEnsembleScolaire | raw }}
  98.                     </p>
  99.                 </div>
  100.             {% endif %}  
  101.         {% endif %}
  102.     </header>
  103.     {% if etablissement.isClient %}
  104.         <figure class="resize" data-href="{% if etablissement.videoPlus %} {{ pathBuilder.buildFiche(etablissement,{'video-id':'0'})}} {% else %} {{ urlFiche }} {% endif %}">
  105.             {% if isForeignCityNear %}
  106.                 {% set distance = lieu | lieuDistance(etablissement.latitude, etablissement.longitude) | default('proximité') %}
  107.                 <span class="distance">à {{ distance }}</span>
  108.             {% endif %}
  109.             {% set mainImageFromDiapo = etablissement.getMainImageFromDiapo %}
  110.             {% if mainImageFromDiapo %}
  111.                 <img {% if loop.index0 == 0 %}fetchpriority="high"{% endif %} loading="lazy" class="resp etab_liste" src="{{ vich_uploader_asset(mainImageFromDiapo, 'photoFile')| imagine_filter('etab_liste') }}" alt="{{ imgAlt }}" title="{{ imgAlt }}">
  112.             {% elseif etablissement.imagesDiaporama is not empty %}
  113.                 <img {% if loop.index0 == 0 %}fetchpriority="high"{% endif %} loading="lazy" class="resp etab_liste-2" src="{{ asset('images/jouve/photo/' ~ etablissement.imagesDiaporama | first) | imagine_filter('etab_liste')}}" alt="{{ imgAlt }}" title="{{ imgAlt }}">
  114.             {% else %}
  115.                 <span class="no-logo"></span>
  116.             {% endif %}
  117.             {% if isPlus %}
  118.                 <span class="triangle-plus"></span>
  119.                 <span class="star-plus"></span>
  120.                 <div class="les-plus">
  121.                     <span>Les + :</span>
  122.                     {% if etablissement.diapoPlus %}
  123.                         <span class="icon diapo"></span>
  124.                     {% endif %}
  125.                     {% if etablissement.videoPlus %}
  126.                         <span class="icon video"></span>
  127.                     {% endif %}
  128.                     {% if etablissement.jpoPlus %}
  129.                         <span class="icon jpo"></span>
  130.                     {% endif %}
  131.                     {% if etablissement.diplomePlus %}
  132.                         <span class="icon diplome"></span>
  133.                     {% endif %}
  134.                 </div>
  135.             {% endif %}
  136.             
  137.             {% if etablissement.videos|length > 0 and etablissement.videoPlus %}
  138.                 <i class="i-video"></i>
  139.             {% elseif etablissement.diaporamas|length > 0 and etablissement.diapoPlus %}
  140.                 <i class="i-diapo"></i>
  141.             {% endif %}
  142.         </figure>
  143.     {% endif %}
  144.     <ul class="establishment-options {% if isPlus %}item-plus{% endif %}">
  145.           {% set isFav = favoris.has(etablissement) %}
  146.           {% if etablissement.isClient and etablissement.logo is not empty %}
  147.               <li class="logo">
  148.                 <figure data-href="{% if etablissement.videoPlus %} {{ pathBuilder.buildFiche(etablissement,{'video-id':'0'})}} {% else %} {{ urlFiche }} {% endif %}">
  149.                     <img {% if loop.index0 == 0 %}fetchpriority="high"{% endif %} loading="lazy" src="{{ vich_uploader_asset(etablissement.logo, 'logoFile') | imagine_filter('etab_fiche_logo') }}" alt="{{ imgAlt }}" title="{{ imgAlt }}" class="etab_liste_logo">
  150.                 </figure>
  151.               </li>
  152.           {% endif %}
  153.           <li class="fav-toggle {{ isFav ? 'fav-added' }}" data-id="{{ etablissement.id }}" title="{{ isFav ? 'Supprimer du favoris' : 'Ajouter aux favoris' }}"></li>
  154.         {% if etablissement.isClient %}
  155.             <li class="mail-list {% if isPlus %}icon-etablissement-plus{% endif %} {{typeOnglet(etablissement.type)}} item-fiche-contact">
  156.                 {% include '_includes/lien-masque.html.twig' with {
  157.                     'target': path('form-di', {id : etablissement.id}),
  158.                     'content': 'Contactez l’établissement',
  159.                 } only %}
  160.             </li>
  161.         {% endif %}
  162.         <li class="infos {% if isPlus %}icon-etablissement-plus{% elseif etablissement.isClient %}icon-etablissement{% else %}icon-etablissement-no-client {% endif %}">
  163.             {% include '_includes/lien-masque.html.twig' with {
  164.                 'target': urlFiche,
  165.                 'content': 'Plus d\'infos'
  166.             } only %}
  167.         </li>
  168.     </ul>
  169. </article>