templates/app/child/index.html.twig line 1

  1. {% extends 'app/index.html.twig' %} {% block title %} {% trans %} Children List
  2. {% endtrans %} {% endblock %} {% block content %} {% include
  3. "app/_partials/breadcrumb.html.twig" with { 'title': 'Enfants'|trans, 'parent':
  4. 'Enfants & Parents'|trans } %}
  5. <div class="row">
  6.   <div class="col-12">
  7.     <div class="card">
  8.       <div class="card-header">
  9.         <div class="row align-items-center">
  10.           <div class="col-md-6">
  11.             <div class="mb-3">
  12.               <h5 class="card-title">
  13.                 {% trans %} Tous les Enfants {% endtrans %}
  14.                 <span class="text-muted fw-normal ms-2"
  15.                   >({{ children | length }})</span
  16.                 >
  17.               </h5>
  18.             </div>
  19.           </div>
  20.           <div class="col-md-6">
  21.             <div
  22.               class="d-flex flex-wrap align-items-center justify-content-end gap-2 mb-3"
  23.             >
  24.               <div class="dropdown">
  25.                 <a
  26.                   class="btn btn-link text-muted py-1 font-size-16 shadow-none dropdown-toggle"
  27.                   href="#"
  28.                   role="button"
  29.                   data-bs-toggle="dropdown"
  30.                   aria-expanded="false"
  31.                 >
  32.                   <i class="bx bx-dots-horizontal-rounded"></i>
  33.                 </a>
  34.                 <ul class="dropdown-menu dropdown-menu-end" style="">
  35.                   <li>
  36.                     <a
  37.                       class="dropdown-item"
  38.                       href="{{ path('app_child_export_csv') }}"
  39.                     >
  40.                       <i class="mdi mdi-export"></i>
  41.                       {% trans %}Exporter la liste des enfants CSV {% endtrans
  42.                       %}
  43.                     </a>
  44.                   </li>
  45.                 </ul>
  46.               </div>
  47.               <div>
  48.                 <a
  49.                   href="{{ path('app_child_new') }}"
  50.                   class="btn btn-primary"
  51.                   data-bs-toggle="modal"
  52.                   data-bs-target="#add-modal"
  53.                 >
  54.                   <i class="bx bx-plus me-1"></i>
  55.                   {% trans %} Ajouter Nouveau {% endtrans %}
  56.                 </a>
  57.               </div>
  58.               {% include "app/child/add-modal.html.twig" %} {% include
  59.               "app/child/edit-modal.html.twig" %} {% include
  60.               "app/child/registration-certificate-modal.html.twig" %}
  61.             </div>
  62.           </div>
  63.         </div>
  64.       </div>
  65.       <div class="card-body">
  66.         <div class="table">
  67.           <table
  68.             id="datatable"
  69.             class="table table-bordered dt-responsive nowrap w-100"
  70.           >
  71.             <thead>
  72.               <tr>
  73.                 <th>#</th>
  74.                 <th>{% trans %} Nom Complet {% endtrans %}</th>
  75.                 <th>{% trans %} Parents {% endtrans %}</th>
  76.                 <th>{% trans %} Genre {% endtrans %}</th>
  77.                 <th>{% trans %} G. Sanguin {% endtrans %}</th>
  78.                 <th>{% trans %} Classe {% endtrans %}</th>
  79.                 <th>{% trans %} Abonnement {% endtrans %}</th>
  80.                 <th width="220px">{% trans %} Actions {% endtrans %}</th>
  81.               </tr>
  82.             </thead>
  83.             <tbody data-controller="child">
  84.               {% for child in children %}
  85.               <tr>
  86.                 <th scope="row">
  87.                   {{ loop.index }}
  88.                 </th>
  89.                 <td>
  90.                   {% if child.gender == 'Garçon' %} {% set avatar =
  91.                   '/app/images/defaults/son.png' %} {% else %} {% set avatar =
  92.                   '/app/images/defaults/daughter.png' %} {% endif %}
  93.                   <div class="d-flex align-items-center">
  94.                     <div class="flex-shrink-0 me-3">
  95.                       <img
  96.                         class="rounded-circle avatar-md"
  97.                         src="{{ child.photo ? '/uploads/children/' ~ child.photo : avatar }}"
  98.                         alt="{{ child.firstName }} {{ child.lastName }}"
  99.                       />
  100.                     </div>
  101.                     <div class="flex-grow-1">
  102.                       <a href="{{ path('app_child_show', { id: child.id }) }}">
  103.                         <h5 class="font-size-14 mb-0">
  104.                           {{ child.firstName }}
  105.                           {{ child.lastName }}
  106.                         </h5>
  107.                       </a>
  108.                       <small class="text-muted font-size-12">
  109.                         {{ child.ageMonths.y }}
  110.                         {% trans %} ans {% endtrans %}
  111.                         {{ child.ageMonths.m }}
  112.                         {% trans %} mois {% endtrans %}
  113.                         <br />
  114.                         {{ child.gender }}
  115.                         -
  116.                         {{ child.blood }}
  117.                       </small>
  118.                     </div>
  119.                   </div>
  120.                 </td>
  121.                 <td>
  122.                   <div class="avatar-group float-start task-assigne">
  123.                     {% for parrent in child.family %}
  124.                     <div class="avatar-group-item">
  125.                       <a
  126.                         href="{{
  127.                           path('app_family_member_show', { id: parrent.id })
  128.                         }}"
  129.                         class="d-inline-block"
  130.                         data-bs-toggle="popover"
  131.                         data-bs-trigger="hover"
  132.                         data-placement="top"
  133.                         title=""
  134.                         data-bs-content="{{ parrent.firstName }} {{
  135.                           parrent.lastName
  136.                         }}"
  137.                       >
  138.                         <div class="avatar-sm">
  139.                           <span
  140.                             class="avatar-title rounded-circle bg-success text-white font-size-16"
  141.                           >
  142.                             {{ parrent.firstName|slice(0, 1)
  143.                             }}{{ parrent.lastName|slice(0,
  144.                                                         1) }}
  145.                           </span>
  146.                         </div>
  147.                       </a>
  148.                     </div>
  149.                     {% endfor %}
  150.                   </div>
  151.                 </td>
  152.                 <td>
  153.                   {{ child.gender }}
  154.                 </td>
  155.                 <td>
  156.                   {{ child.blood }}
  157.                 </td>
  158.                 <td>
  159.                   {% for classe in child.classrooms %}
  160.                   <a
  161.                     style="border: 0px"
  162.                     href="{{ path('app_classroom_show', { id: classe.id }) }}"
  163.                     class="badge badge-pad bg-info text-uppercase"
  164.                     data-bs-toggle="popover"
  165.                     data-bs-trigger="hover"
  166.                     title=""
  167.                     data-bs-content="{{
  168.                       classe.description ? classe.description : ' '
  169.                     }} "
  170.                     data-bs-original-title="{{ classe.name }} - {{
  171.                       classe.section.name
  172.                     }}"
  173.                   >
  174.                     {{ classe.name }}
  175.                   </a>
  176.                   <br />
  177.                   {% endfor %}
  178.                 </td>
  179.                 <td>
  180.                   {% for subscription in child.subscriptions %}
  181.                   <button
  182.                     style="border: 0px"
  183.                     class="badge badge-pad bg-info text-uppercase"
  184.                     data-bs-toggle="popover"
  185.                     data-bs-trigger="hover"
  186.                     title=""
  187.                     data-bs-content="PRIX: {{ subscription.service.getPrice()|number_format(0, '.', ' ') }} {{
  188.                       company.currencie
  189.                     }} - REMISE: {{ subscription.getDiscount() }} {{
  190.                       company.currencie
  191.                     }} - TOTAL: {{ subscription.getTotal()|number_format(0, '.', ' ') }} {{
  192.                       company.currencie
  193.                     }} - REST: {{ subscription.getRestToPay() }} {{
  194.                       company.currencie
  195.                     }} - {{ subscription.startDate|date('d-m-Y') }}
  196.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               -> {{ subscription.expireDate|date('d-m-Y') }}"
  197.                     data-bs-original-title="{{ subscription.service.name }} - {{
  198.                       subscription.service.duration
  199.                     }} Days"
  200.                   >
  201.                     {{ subscription.service.name }}
  202.                     -
  203.                     {{ subscription.service.duration }}
  204.                     jours</button
  205.                   ><br />
  206.                   {% endfor %}
  207.                 </td>
  208.                 <td>
  209.                   <a
  210.                     href="{{ path('app_child_show', { id: child.id }) }}"
  211.                     class="btn btn-primary waves-effect waves-light me-2"
  212.                     data-toggle="tooltip"
  213.                     data-placement="top"
  214.                     title="{{ 'Profile' | trans }}"
  215.                   >
  216.                     <i class="bx bx-user font-size-16 align-middle"></i>
  217.                   </a>
  218.                   <a
  219.                     data-action="child#edit"
  220.                     data-child-id="{{ child.id }}"
  221.                     href="javascript:void(0)"
  222.                     class="btn btn-info waves-effect waves-light me-2"
  223.                     data-toggle="tooltip"
  224.                     data-placement="top"
  225.                     title="{{ 'Modifier' | trans }}"
  226.                   >
  227.                     <i class="bx bx-edit font-size-16 align-middle"></i>
  228.                   </a>
  229.                   <div class="btn-group" role="group">
  230.                     <button
  231.                       id="btnGroupDrop1"
  232.                       type="button"
  233.                       class="btn btn-secondary dropdown-toggle"
  234.                       data-bs-toggle="dropdown"
  235.                       aria-expanded="false"
  236.                       data-toggle="tooltip"
  237.                       data-placement="top"
  238.                       title="{{ 'Plus actions' | trans }}"
  239.                     >
  240.                       <i class="mdi mdi-chevron-down"></i>
  241.                     </button>
  242.                     <ul
  243.                       class="dropdown-menu"
  244.                       aria-labelledby="btnGroupDrop1"
  245.                       style="padding: 0.5rem"
  246.                     >
  247.                       <li>
  248.                         <a
  249.                           class="dropdown-item"
  250.                           href="{{
  251.                             path('app_child_check_in', { id: child.id })
  252.                           }}"
  253.                         >
  254.                           <i
  255.                             class="mdi mdi-clock-in font-size-16 align-middle"
  256.                           ></i>
  257.                           {% trans %} Arrivée {% endtrans %}</a
  258.                         >
  259.                       </li>
  260.                       <li>
  261.                         <a
  262.                           class="dropdown-item"
  263.                           href="{{
  264.                             path('app_child_check_out', { id: child.id })
  265.                           }}"
  266.                         >
  267.                           <i
  268.                             class="mdi mdi-clock-out font-size-16 align-middle"
  269.                           ></i>
  270.                           {% trans %} Départ {% endtrans %}
  271.                         </a>
  272.                       </li>
  273.                       <li>
  274.                         <a class="dropdown-item"></a>
  275.                       </li>
  276.                       <li>
  277.                         <a
  278.                           data-action="child#registration_certificat"
  279.                           data-child-id="{{ child.id }}"
  280.                           href="javascript:void(0)"
  281.                           class="dropdown-item"
  282.                         >
  283.                           <i
  284.                             class="mdi mdi-file-certificate-outline font-size-16 align-middle"
  285.                           ></i>
  286.                           {% trans %}Certificat d'enregistrement {% endtrans %}
  287.                         </a>
  288.                       </li>
  289.                     </ul>
  290.                   </div>
  291.                 </td>
  292.               </tr>
  293.               {% endfor %}
  294.             </tbody>
  295.           </table>
  296.         </div>
  297.       </div>
  298.     </div>
  299.   </div>
  300. </div>
  301. {% endblock %}