templates/registration/_form.html.twig line 1

  1. {% set classNames = userType is defined and userType is same as 'trainer' ? 'needs-validation' : '' %}
  2. {{ form_start(registrationForm, {'attr': {'class': 'mt-4', 'id': 'registration_form'}}) }}
  3.     {% if registrationForm.parentCode is defined %}
  4.         <div class="mb-3">
  5.             <label class="form-label">{{ form_label(registrationForm.parentCode) }}</label>
  6.             {% set invitationCode = app.request.query.get('code') ?? app.request.query.get('invitation') %}
  7.             {{ form_widget(registrationForm.parentCode, {
  8.                 'attr': {
  9.                     'class': 'form-control' ~ (form_errors(registrationForm.parentCode) ? ' is-invalid' : ''),
  10.                     'readonly': invitationCode is not empty,
  11.                     'value': invitationCode|default('')
  12.                 }
  13.             }) }}
  14.             {% if form_errors(registrationForm.parentCode) %}
  15.                 <div class="invalid-feedback d-block">
  16.                     {{ form_errors(registrationForm.parentCode) }}
  17.                 </div>
  18.             {% endif %}
  19.             {% if invitationCode is not empty %}
  20.                 <small class="text-muted">Code d'invitation appliqué automatiquement</small>
  21.             {% endif %}
  22.         </div>
  23.     {% endif %}
  24.     {% if userType is defined and userType is same as 'trainer' %}
  25.         <div class="mb-4">
  26.             <h5 class="mb-3">Personal Information</h5>
  27.             <div class="row g-3">
  28.                 {% for item in registrationForm.personne %}
  29.                     <div class="col-12">
  30.                         <label class="form-label">{{ form_label(item) }}</label>
  31.                         {% if item is same as registrationForm.personne.sexe or item is same as registrationForm.personne.pays %}
  32.                             {{ form_widget(item, {'attr': {'class': 'form-select'}}) }}
  33.                         {% elseif item is same as registrationForm.personne.imageFile %}
  34.                             {{ form_widget(item, {'attr': {'class': 'form-control', 'accept': 'image/*'}}) }}
  35.                             <div class="form-text">Upload a profile photo (optional)</div>
  36.                         {% else %}
  37.                             {{ form_widget(item, {'attr': {'class': 'form-control' ~ (form_errors(item) ? ' is-invalid' : '')}}) }}
  38.                         {% endif %}
  39.                         {% if form_errors(item) %}
  40.                             <div class="invalid-feedback d-block">
  41.                                 {{ form_errors(item) }}
  42.                             </div>
  43.                         {% endif %}
  44.                     </div>
  45.                 {% endfor %}
  46.             </div>
  47.         </div>
  48.         {% if registrationForm.enseignant is defined %}
  49.             <div class="mb-4">
  50.                 <h5 class="mb-3">Teacher Information</h5>
  51.                 <div class="row g-3">
  52.                     {% for item in registrationForm.enseignant %}
  53.                         <div class="col-12">
  54.                             <label class="form-label">{{ form_label(item) }}</label>
  55.                             {% if item.vars.name ends with 'File' %}
  56.                                 {{ form_widget(item, {'attr': {'class': 'form-control', 'accept': 'image/*'}}) }}
  57.                                 <div class="form-text">Upload required document</div>
  58.                             {% else %}
  59.                                 {{ form_widget(item, {'attr': {'class': 'form-control' ~ (form_errors(item) ? ' is-invalid' : '')}}) }}
  60.                             {% endif %}
  61.                             {% if form_errors(item) %}
  62.                                 <div class="invalid-feedback d-block">
  63.                                     {{ form_errors(item) }}
  64.                                 </div>
  65.                             {% endif %}
  66.                         </div>
  67.                     {% endfor %}
  68.                 </div>
  69.             </div>
  70.         {% endif %}
  71.     {% else %}
  72.         {% if registrationForm.fullName is defined %}
  73.             <div class="mb-3">
  74.                 <label class="form-label">{{ form_label(registrationForm.fullName) }}</label>
  75.                 {{ form_widget(registrationForm.fullName, {'attr': {'class': 'form-control' ~ (form_errors(registrationForm.fullName) ? ' is-invalid' : '')}}) }}
  76.                 {% if form_errors(registrationForm.fullName) %}
  77.                     <div class="invalid-feedback d-block">
  78.                         {{ form_errors(registrationForm.fullName) }}
  79.                     </div>
  80.                 {% endif %}
  81.             </div>
  82.         {% endif %}
  83.         {% if registrationForm.username is defined %}
  84.             <div class="mb-3">
  85.                 <label class="form-label">{{ form_label(registrationForm.username) }}</label>
  86.                 {{ form_widget(registrationForm.username, {
  87.                     'attr': {
  88.                         'class': 'form-control' ~ (form_errors(registrationForm.username) ? ' is-invalid' : ''),
  89.                         'minlength': 5,
  90.                         'maxlength': 8,
  91.                         'pattern': '[a-zA-Z0-9_]+',
  92.                         'title': 'Username must be 5-8 characters long and can only contain letters, numbers, and underscores'
  93.                     }
  94.                 }) }}
  95.                 {% if form_errors(registrationForm.username) %}
  96.                     <div class="invalid-feedback d-block">
  97.                         {{ form_errors(registrationForm.username) }}
  98.                     </div>
  99.                 {% endif %}
  100.                 <small class="text-muted">Username must be 5-8 characters long</small>
  101.             </div>
  102.         {% endif %}
  103.         {% if registrationForm.phoneNumber is defined %}
  104.             <div class="mb-3">
  105.                 <label class="form-label">{{ form_label(registrationForm.phoneNumber) }}</label>
  106.                 {{ form_widget(registrationForm.phoneNumber, {'attr': {'class': 'form-control' ~ (form_errors(registrationForm.phoneNumber) ? ' is-invalid' : '')}}) }}
  107.                 {% if form_errors(registrationForm.phoneNumber) %}
  108.                     <div class="invalid-feedback d-block">
  109.                         {{ form_errors(registrationForm.phoneNumber) }}
  110.                     </div>
  111.                 {% endif %}
  112.             </div>
  113.         {% endif %}
  114.     {% endif %}
  115.     <div class="mb-3">
  116.         <label class="form-label">{{ 'EMAIL_KEY'|trans }}</label>
  117.         {{ form_widget(registrationForm.email, {'attr': {'class': 'form-control' ~ (form_errors(registrationForm.email) ? ' is-invalid' : '')}}) }}
  118.         {% if form_errors(registrationForm.email) %}
  119.             <div class="invalid-feedback d-block">
  120.                 {{ form_errors(registrationForm.email) }}
  121.             </div>
  122.         {% endif %}
  123.     </div>
  124.     <div class="mb-3">
  125.         <label class="form-label">{{ 'PASSWORD_KEY'|trans }}</label>
  126.         {{ form_widget(registrationForm.plainPassword, {'attr': {'class': 'form-control' ~ (form_errors(registrationForm.plainPassword) ? ' is-invalid' : '')}}) }}
  127.         {% if form_errors(registrationForm.plainPassword) %}
  128.             <div class="invalid-feedback d-block">
  129.                 {{ form_errors(registrationForm.plainPassword) }}
  130.             </div>
  131.         {% endif %}
  132.     </div>
  133.     {% if registrationForm.confirmPassword is defined %}
  134.         <div class="mb-3">
  135.             <label class="form-label">{{ form_label(registrationForm.confirmPassword) }}</label>
  136.             {{ form_widget(registrationForm.confirmPassword, {'attr': {'class': 'form-control' ~ (form_errors(registrationForm.confirmPassword) ? ' is-invalid' : '')}}) }}
  137.             {% if form_errors(registrationForm.confirmPassword) %}
  138.                 <div class="invalid-feedback d-block">
  139.                     {{ form_errors(registrationForm.confirmPassword) }}
  140.                 </div>
  141.             {% endif %}
  142.         </div>
  143.     {% endif %}
  144.     <div class="mb-3">
  145.         <div class="form-check">
  146.             {{ form_widget(registrationForm.agreeTerms, {'attr': {'class': 'form-check-input' ~ (form_errors(registrationForm.agreeTerms) ? ' is-invalid' : '')}}) }}
  147.             <label class="form-check-label">
  148.                 {{ form_label(registrationForm.agreeTerms) }}
  149.             </label>
  150.             {% if form_errors(registrationForm.agreeTerms) %}
  151.                 <div class="invalid-feedback d-block">
  152.                     {{ form_errors(registrationForm.agreeTerms) }}
  153.                 </div>
  154.             {% endif %}
  155.         </div>
  156.     </div>
  157.     <button type="submit" class="btn btn-primary w-100">{{ 'REGISTER_KEY'|trans }}</button>
  158. {{ form_end(registrationForm) }}