```
✨ feat(Ag/MainVote): Ajoute relation ManyToOne vers Main et les votes.
Ajoute la relation ManyToOne entre MainVote et Main.
Ajoute les champs pour et contre dans la classe MainVote.
Ajoute les champs civ, name, surname dans la classe Members.
```
This commit is contained in:
@@ -54,7 +54,10 @@
|
||||
{% if ag.closed == false or ag.closed == null %}
|
||||
{# Bloc Actions: SUPPRIMER / MODIFIER #}
|
||||
<div class="mt-4 pt-4 border-t border-gray-200 dark:border-gray-600 flex space-x-3">
|
||||
|
||||
<a href="{{ path('admin_ag', {'idGenerate': ag.id}) }}"
|
||||
class="inline-flex items-center px-3 py-1.5 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-cyan-600 hover:bg-cyan-700 dark:bg-cyan-500 dark:hover:bg-cyan-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">
|
||||
Générer le pdf
|
||||
</a>
|
||||
{# Bouton Modifier #}
|
||||
<a href="{{ path('admin_ag_edit', {'id': ag.id}) }}"
|
||||
class="inline-flex items-center px-3 py-1.5 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-indigo-600 hover:bg-indigo-700 dark:bg-indigo-500 dark:hover:bg-indigo-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">
|
||||
@@ -71,6 +74,13 @@
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="mt-4 pt-4 border-t border-gray-200 dark:border-gray-600 flex space-x-3">
|
||||
<a href="{{ path('admin_ag',{id:ag.id,idSign:true}) }}"
|
||||
class="inline-flex items-center px-3 py-1.5 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-cyan-600 hover:bg-cyan-700 dark:bg-cyan-500 dark:hover:bg-cyan-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">
|
||||
Signature le pdf
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
</div>
|
||||
|
||||
{# ============================================== #}
|
||||
{# BLOC ORDRES DU JOUR (ODJ) #}
|
||||
{# BLOC ORDRES DU JOUR (ODJ) (Non répété ici) #}
|
||||
{# ============================================== #}
|
||||
<div class="mt-10 pt-6 border-t border-gray-200 dark:border-gray-700">
|
||||
<h2 class="text-xl font-bold mb-4 text-gray-900 dark:text-gray-100">Ajouter un Ordre du Jour</h2>
|
||||
@@ -116,20 +116,16 @@
|
||||
|
||||
{# FORMULAIRE D'AJOUT D'ODJ #}
|
||||
{{ form_start(agOrder, {'attr': {'class': 'space-y-4 p-4 border rounded-lg bg-gray-50 dark:bg-gray-700 mb-6'}}) }}
|
||||
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||
{{ form_row(agOrder.title) }}
|
||||
<div class="md:col-span-1 hidden md:block"></div>
|
||||
</div>
|
||||
|
||||
{{ form_row(agOrder.description) }}
|
||||
|
||||
<div class="flex justify-end pt-2">
|
||||
<button type="submit" class="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-teal-600 hover:bg-teal-700 dark:bg-teal-500 dark:hover:bg-teal-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-teal-500">
|
||||
Ajouter l'Ordre du Jour
|
||||
</button>
|
||||
</div>
|
||||
|
||||
{{ form_end(agOrder) }}
|
||||
|
||||
{# LISTE DES ORDRES DU JOUR ACTUELS #}
|
||||
@@ -137,27 +133,21 @@
|
||||
<h3 class="text-lg font-semibold mt-8 mb-4 border-b pb-2 text-gray-700 dark:text-gray-300">
|
||||
Ordres du Jour ({{ ag.vars.value.orders|length }})
|
||||
</h3>
|
||||
|
||||
<ul class="space-y-3">
|
||||
{% for order in ag.vars.value.orders %}
|
||||
<li class="p-4 rounded-md bg-white dark:bg-gray-800 shadow border border-gray-200 dark:border-gray-700">
|
||||
|
||||
<div class="flex justify-between items-start">
|
||||
<span class="text-gray-900 dark:text-gray-100 font-medium text-base">
|
||||
{{ loop.index }}. {{ order.title }}
|
||||
</span>
|
||||
|
||||
{# Formulaire de Suppression de l'ODJ #}
|
||||
<form method="POST" action="{{ path('admin_ag_edit', {'id': agMain.id, 'orderId': order.id}) }}" onsubmit="return confirm('Êtes-vous sûr de vouloir supprimer cet Ordre du Jour : {{ order.title }} ?');">
|
||||
<form method="POST" action="{{ path('admin_ag_edit', {'id': ag.vars.value.id, 'orderId': order.id}) }}" onsubmit="return confirm('Êtes-vous sûr de vouloir supprimer cet Ordre du Jour : {{ order.title }} ?');">
|
||||
<input type="hidden" name="_method" value="DELETE">
|
||||
|
||||
<button type="submit"
|
||||
class="inline-flex items-center px-3 py-1 text-xs font-medium rounded-md text-white bg-red-500 hover:bg-red-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 transition duration-150 ml-4">
|
||||
Supprimer
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<p class="mt-2 text-sm text-gray-600 dark:text-gray-400 whitespace-pre-line">
|
||||
{{ order.description|default('Aucune description fournie.') }}
|
||||
</p>
|
||||
@@ -169,7 +159,73 @@
|
||||
Aucun Ordre du Jour n'a encore été défini pour cette Assemblée Générale.
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{# ============================================== #}
|
||||
{# BLOC GESTION DES VOTES #}
|
||||
{# ============================================== #}
|
||||
<div class="mt-10 pt-6 border-t border-gray-200 dark:border-gray-700">
|
||||
<h2 class="text-xl font-bold mb-4 text-gray-900 dark:text-gray-100">Enregistrer et Gérer les Votes</h2>
|
||||
|
||||
{% form_theme agVote 'form_admin.twig' %}
|
||||
|
||||
{# FORMULAIRE D'ENREGISTREMENT DE VOTE #}
|
||||
{{ form_start(agVote, {'attr': {'class': 'space-y-4 p-4 border rounded-lg bg-gray-50 dark:bg-gray-700 mb-6'}}) }}
|
||||
|
||||
<div class="grid grid-cols-1 md:grid-cols-4 gap-6">
|
||||
{{ form_row(agVote.member) }}
|
||||
{{ form_row(agVote.role) }}
|
||||
{{ form_row(agVote.pour) }}
|
||||
{{ form_row(agVote.contre) }}
|
||||
</div>
|
||||
|
||||
<div class="flex justify-end pt-2">
|
||||
<button type="submit" class="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-pink-600 hover:bg-pink-700 dark:bg-pink-500 dark:hover:bg-pink-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-pink-500">
|
||||
Enregistrer le Vote
|
||||
</button>
|
||||
</div>
|
||||
|
||||
{{ form_end(agVote) }}
|
||||
|
||||
{# NOUVEAU: LISTE DES VOTES ACTUELS #}
|
||||
{% if ag.vars.value.mainVote is defined and ag.vars.value.mainVote|length > 0 %}
|
||||
<h3 class="text-lg font-semibold mt-8 mb-4 border-b pb-2 text-gray-700 dark:text-gray-300">
|
||||
Historique des Votes ({{ ag.vars.value.mainVote|length }})
|
||||
</h3>
|
||||
|
||||
<ul class="space-y-3">
|
||||
{% for vote in ag.vars.value.mainVote %}
|
||||
<li class="p-4 rounded-md bg-white dark:bg-gray-800 shadow border border-gray-200 dark:border-gray-700 flex justify-between items-center">
|
||||
|
||||
<div>
|
||||
<span class="text-gray-900 dark:text-gray-100 font-medium">
|
||||
{{ vote.member.pseudo }}
|
||||
</span>
|
||||
<span class="text-sm font-normal text-gray-600 dark:text-gray-400 ml-2">
|
||||
({{ vote.role }})
|
||||
</span>
|
||||
<p class="mt-1 text-sm">
|
||||
<span class="text-green-600 font-semibold">Pour: {{ vote.pour|default(0) }}</span> |
|
||||
<span class="text-red-600 font-semibold">Contre: {{ vote.contre|default(0) }}</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{# Formulaire de Suppression du Vote #}
|
||||
<form method="POST" action="{{ path('admin_ag_edit', {'id': agMain.id, 'agVoteId': vote.id}) }}" onsubmit="return confirm('Êtes-vous sûr de vouloir supprimer ce vote ?');">
|
||||
<input type="hidden" name="_method" value="DELETE">
|
||||
<button type="submit"
|
||||
class="inline-flex items-center px-3 py-1 text-xs font-medium rounded-md text-white bg-red-500 hover:bg-red-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 transition duration-150">
|
||||
Supprimer
|
||||
</button>
|
||||
</form>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% else %}
|
||||
<p class="mt-4 p-4 text-center text-gray-500 dark:text-gray-400 border border-dashed rounded-lg">
|
||||
Aucun vote n'a encore été enregistré pour cette Assemblée Générale.
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -52,6 +52,15 @@
|
||||
<div>
|
||||
{{ form_row(form.email) }}
|
||||
</div>
|
||||
<div>
|
||||
{{ form_row(form.civ) }}
|
||||
</div>
|
||||
<div>
|
||||
{{ form_row(form.name) }}
|
||||
</div>
|
||||
<div>
|
||||
{{ form_row(form.surname) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{# --- SECTION IMAGE DE PROFIL / UPLOAD --- #}
|
||||
|
||||
Reference in New Issue
Block a user