diff --git a/assets/app.scss b/assets/app.scss index e16622f..e84b7ad 100644 --- a/assets/app.scss +++ b/assets/app.scss @@ -24,3 +24,7 @@ } } } +#join_role { + display: flex; + flex-direction: row; +} diff --git a/src/Controller/JoinController.php b/src/Controller/JoinController.php index d60b9ad..fba824e 100644 --- a/src/Controller/JoinController.php +++ b/src/Controller/JoinController.php @@ -65,7 +65,7 @@ class JoinController extends AbstractController 'E-Cosplay', '[E-Cosplay] - Nouvelle candidature', 'mails/candidat/new.twig', - ['joint'=>$j], + ['join'=>$j], [new DataPart($content,'candidat.pdf','application/pdf')] ); @@ -74,7 +74,7 @@ class JoinController extends AbstractController $j->getSurname()." ".$j->getName(), "[E-Cosplay] - Confirmation de votre candidature", 'mails/candidat/confirm.twig', - ['joint'=>$j], + ['join'=>$j], [new DataPart($content,'candidat.pdf','application/pdf')] ); return $this->redirectToRoute('app_recruit_confirmed'); diff --git a/templates/form_tailwind.twig b/templates/form_tailwind.twig index f2f3cc0..40a2f65 100644 --- a/templates/form_tailwind.twig +++ b/templates/form_tailwind.twig @@ -9,22 +9,27 @@ {%- endblock %} {# ---------- ROW ---------- #} +{# ---------- ROW : Version Esport / Neubrutaliste ---------- #} {% block form_row %} -
- {{ form_label(form) }} -
+
+ {# Label avec style forcé #} + {{ form_label(form, null, { + 'label_attr': {'class': 'font-black uppercase italic text-xs tracking-widest text-gray-900 mb-2'} + }) }} + + {# Widget (Input, Select, etc.) #} +
{{ form_widget(form) }}
- {% if not compound and not form.vars.valid %} - {# Affiche l'erreur en bas du champ simple #} -

{{ form_errors(form) }}

- {% else %} - {# Affiche l'erreur pour les champs composés (si form_errors n'est pas déjà dans le widget) #} - {{ form_errors(form) }} + + {# Erreurs de validation #} + {% if not form.vars.valid %} +
+ {{ form_errors(form) }} +
{% endif %}
{% endblock %} - {# ---------- LABEL ---------- #} {% block form_label %} @@ -78,47 +83,28 @@ class="form-textarea form-input mt-1 block w-full px-3 py-2 bg-white border border-gray-300 text-gray-900 placeholder-gray-400 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm transition duration-150" >{{ value }} {% endblock %} - -{# ---------- SELECT ---------- #} -{% block choice_widget_collapsed %} - -{% endblock %} - -{# ---------- CHECKBOX ---------- #} +{# ---------- CHECKBOX : Alignée en ligne ---------- #} {% block checkbox_widget %} -
- -
+ {% endblock %} + {# ---------- RADIO ---------- #} {% block radio_widget %} {% endblock %} + + + +{% block choice_widget_expanded %} +
+ {% for child in form %} +
+ {{ form_widget(child) }} +
+ {% endfor %} +
+{% endblock %} diff --git a/templates/join.twig b/templates/join.twig index 1c000b6..9df09cc 100644 --- a/templates/join.twig +++ b/templates/join.twig @@ -221,11 +221,23 @@

{{ 'form.section.social'|trans }}

- {{ form_row(form.discordAccount, {'label': 'form.label.discord'|trans, 'attr': {'class': 'border-2 border-black p-2 w-full font-bold'}}) }} - {{ form_row(form.instaLink, {'label': 'form.label.insta'|trans, 'attr': {'class': 'border-2 border-black p-2 w-full font-bold'}}) }} - {{ form_row(form.tiktokLink, {'label': 'form.label.tiktok'|trans, 'attr': {'class': 'border-2 border-black p-2 w-full font-bold'}}) }} - {{ form_row(form.facebookLink, {'label': 'form.label.facebook'|trans, 'attr': {'class': 'border-2 border-black p-2 w-full font-bold'}}) }} -
+
+ {{ form_label(form.discordAccount, 'form.label.discord'|trans, {'label_attr': {'class': 'font-black uppercase text-sm mb-2'}}) }} + {{ form_widget(form.discordAccount, {'attr': {'class': 'border-4 border-black p-3'}}) }} +
+
+ {{ form_label(form.instaLink, 'form.label.insta'|trans, {'label_attr': {'class': 'font-black uppercase text-sm mb-2'}}) }} + {{ form_widget(form.instaLink, {'attr': {'class': 'border-4 border-black p-3'}}) }} +
+
+ {{ form_label(form.tiktokLink, 'form.label.tiktok'|trans, {'label_attr': {'class': 'font-black uppercase text-sm mb-2'}}) }} + {{ form_widget(form.tiktokLink, {'attr': {'class': 'border-4 border-black p-3'}}) }} +
+
+ {{ form_label(form.facebookLink, 'form.label.facebook'|trans, {'label_attr': {'class': 'font-black uppercase text-sm mb-2'}}) }} + {{ form_widget(form.facebookLink, {'attr': {'class': 'border-4 border-black p-3'}}) }} +
+
{# RÔLE & MOTIVATION #} @@ -234,11 +246,9 @@ {{ form_widget(form.who, {'attr': {'class': 'border-4 border-black p-3 min-h-[120px]'}}) }}
-
- {{ form_label(form.role, 'form.label.role'|trans, {'label_attr': {'class': 'font-black uppercase text-sm mb-2'}}) }} -
- {{ form_widget(form.role) }} -
+ {# Remplace tout ton bloc manuel par cette ligne unique #} +
+ {{ form_row(form.role) }}
{# BOUTON ENVOI #} diff --git a/templates/txt-mails/candidat/confirm.twig b/templates/txt-mails/candidat/confirm.twig index 459f4cd..81bdfea 100644 --- a/templates/txt-mails/candidat/confirm.twig +++ b/templates/txt-mails/candidat/confirm.twig @@ -5,7 +5,7 @@ {% endblock %} {% block content %} - BONJOUR {{ join.name|upper }}, + BONJOUR {{ datas.join.name|upper }}, C'est confirmé ! Nous avons bien reçu ta candidature pour rejoindre l'association E-Cosplay. @@ -13,7 +13,7 @@ LA SUITE DES ÉVÉNEMENTS : ------------------------- - Nous reviendrons vers toi sous peu (généralement sous quelques jours) pour te donner une réponse ou convenir d'un petit échange, soit par email, soit directement sur Discord ({{ join.discordAccount|default('via le compte fourni') }}). + Nous reviendrons vers toi sous peu (généralement sous quelques jours) pour te donner une réponse ou convenir d'un petit échange, soit par email, soit directement sur Discord ({{ datas.join.discordAccount|default('via le compte fourni') }}). À très bientôt, diff --git a/templates/txt-mails/candidat/new.twig b/templates/txt-mails/candidat/new.twig index 7c81b18..d204bc3 100644 --- a/templates/txt-mails/candidat/new.twig +++ b/templates/txt-mails/candidat/new.twig @@ -1,7 +1,7 @@ {% extends 'mails/base.twig' %} {% block subject %} - [NOUVELLE CANDIDATURE] - {{ join.pseudo|default(join.surname|upper) }} ({{ join.civ|upper }}) + [NOUVELLE CANDIDATURE] - {{ datas.join.pseudo|default(join.surname|upper) }} ({{ datas.join.civ|upper }}) {% endblock %} {% block content %} @@ -15,27 +15,27 @@ IDENTITÉ COSPLAY : ------------------ - - Pseudo / Scène : {{ join.pseudo|default('Non renseigné') }} - - Nom Complet : ({{ join.civ|upper }}) {{ join.surname|upper }} {{ join.name }} - - Identité : {{ join.crossCosplay|upper }} (Cross) | {{ join.trans|upper }} (Trans) + - Pseudo / Scène : {{ datas.join.pseudo|default('Non renseigné') }} + - Nom Complet : ({{ datas.join.civ|upper }}) {{ datas.join.surname|upper }} {{ datas.join.name }} + - Identité : {{ datas.join.crossCosplay|upper }} (Cross) | {{ datas.join.trans|upper }} (Trans) DÉTAILS DU CANDIDAT : --------------------- - - Email : {{ join.email }} - - Téléphone : {{ join.phone }} - - Rôles souhaités : {% if join.role is iterable %}{{ join.role|join(', ') }}{% else %}{{ join.role }}{% endif %} - - Date de dépôt : {{ join.createAt|date('d/m/Y à H:i') }} + - Email : {{ datas.join.email }} + - Téléphone : {{ datas.join.phone }} + - Rôles souhaités : {% if datas.join.role is iterable %}{{ datas.join.role|join(', ') }}{% else %}{{ datas.join.role }}{% endif %} + - Date de dépôt : {{ datas.join.createAt|date('d/m/Y à H:i') }} PRÉSENTATION : -------------- - {{ join.who|default('Aucune présentation fournie.') }} + {{ datas.join.who|default('Aucune présentation fournie.') }} COORDONNÉES NUMÉRIQUES : ------------------------ - - Discord : {{ join.discordAccount|default('Non renseigné') }} - - Instagram : {{ join.instaLink|default('N/A') }} - - TikTok : {{ join.tiktokLink|default('N/A') }} - - Facebook : {{ join.facebookLink|default('N/A') }} + - Discord : {{ datas.join.discordAccount|default('Non renseigné') }} + - Instagram : {{ datas.join.instaLink|default('N/A') }} + - TikTok : {{ datas.join.tiktokLink|default('N/A') }} + - Facebook : {{ datas.join.facebookLink|default('N/A') }} ---------------------------------------------------------- Note : Le dossier complet avec le calcul de l'âge est