version 1
This commit is contained in:
32
templates/membre/detail.html.twig
Normal file
32
templates/membre/detail.html.twig
Normal file
@@ -0,0 +1,32 @@
|
||||
{% extends 'base.html.twig' %}
|
||||
{% block title %}Détails utilisateur{% endblock %}
|
||||
{% block body %}
|
||||
<div class="container py-4">
|
||||
<h1 class="mb-4">Détails de l'utilisateur</h1>
|
||||
<div class="card mb-4">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">{{ membre.nom }} {{ membre.prenom }}</h5>
|
||||
<p class="card-text"><strong>Email :</strong> {{ membre.email }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<h3 class="mt-4">Contributions</h3>
|
||||
<ul class="list-group mb-4">
|
||||
{% for contribution in membre.contributions %}
|
||||
<li class="list-group-item">
|
||||
<strong>Projet :</strong> {{ contribution.projet.nom }}<br>
|
||||
{% set iaList = [] %}
|
||||
{% for contribIa in contribution.contribIas %}
|
||||
{% if contribIa.assistantIa is not null %}
|
||||
{% set iaList = iaList|merge([contribIa.assistantIa.nom]) %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<strong>Assistants IA :</strong> {{ iaList|join(', ') }}<br>
|
||||
<strong>Description :</strong> {{ contribution.commentaire }}
|
||||
</li>
|
||||
{% else %}
|
||||
<li class="list-group-item text-muted">Aucune contribution liée.</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<a href="{{ path('membre_index') }}" class="btn btn-secondary"><i class="bi bi-arrow-left"></i> Retour</a>
|
||||
</div>
|
||||
{% endblock %}
|
||||
109
templates/membre/index.html.twig
Normal file
109
templates/membre/index.html.twig
Normal file
@@ -0,0 +1,109 @@
|
||||
{% extends 'base.html.twig' %}
|
||||
{% block title %}Utilisateurs{% endblock %}
|
||||
{% block body %}
|
||||
<div class="d-flex align-items-center justify-content-between mb-4">
|
||||
<h1 class="display-5 fw-bold mb-0">Utilisateurs</h1>
|
||||
<button class="btn btn-primary btn-lg shadow" data-bs-toggle="modal" data-bs-target="#addMembreModal">
|
||||
<i class="bi bi-plus-lg me-1"></i> Ajouter un utilisateur
|
||||
</button>
|
||||
</div>
|
||||
<div class="table-responsive shadow-sm rounded">
|
||||
<table class="table table-hover align-middle mb-0">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th>Nom</th>
|
||||
<th>Prénom</th>
|
||||
<th>Email</th>
|
||||
<th>Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for membre in membres %}
|
||||
<tr>
|
||||
<td><span class="fw-semibold text-primary">{{ membre.nom }}</span></td>
|
||||
<td>{{ membre.prenom }}</td>
|
||||
<td>{{ membre.email }}</td>
|
||||
<td>
|
||||
<a href="{{ path('membre_detail', {id: membre.id}) }}" class="btn btn-sm btn-info me-1">
|
||||
<i class="bi bi-eye"></i> Détails
|
||||
</a>
|
||||
<button class="btn btn-sm btn-outline-secondary me-1" data-bs-toggle="modal" data-bs-target="#editMembreModal{{ membre.id }}">
|
||||
<i class="bi bi-pencil"></i> Modifier
|
||||
</button>
|
||||
<form method="post" action="{{ path('membre_delete', {id: membre.id}) }}" style="display:inline-block" onsubmit="return confirm('Supprimer cet utilisateur ?');">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token('delete_membre_' ~ membre.id) }}">
|
||||
<button class="btn btn-sm btn-danger"><i class="bi bi-trash"></i> Supprimer</button>
|
||||
</form>
|
||||
<div class="modal fade" id="editMembreModal{{ membre.id }}" tabindex="-1" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<form method="post" action="{{ path('membre_edit', {id: membre.id}) }}">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Modifier l'utilisateur</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="mb-2">
|
||||
<label class="form-label">Nom</label>
|
||||
<input type="text" name="nom" class="form-control" value="{{ membre.nom }}" required maxlength="50">
|
||||
</div>
|
||||
<div class="mb-2">
|
||||
<label class="form-label">Prénom</label>
|
||||
<input type="text" name="prenom" class="form-control" value="{{ membre.prenom }}" required maxlength="50">
|
||||
</div>
|
||||
<div class="mb-2">
|
||||
<label class="form-label">Email</label>
|
||||
<input type="email" name="email" class="form-control" value="{{ membre.email }}" required maxlength="100">
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Annuler</button>
|
||||
<button type="submit" class="btn btn-primary">Enregistrer</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{% else %}
|
||||
<tr>
|
||||
<td colspan="4" class="text-center text-muted">Aucun utilisateur trouvé.</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
{# Modal ajout utilisateur #}
|
||||
<div class="modal fade" id="addMembreModal" tabindex="-1" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<form method="post" action="{{ path('membre_add') }}">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Ajouter un utilisateur</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="mb-2">
|
||||
<label class="form-label">Nom</label>
|
||||
<input type="text" name="nom" class="form-control" required maxlength="50">
|
||||
</div>
|
||||
<div class="mb-2">
|
||||
<label class="form-label">Prénom</label>
|
||||
<input type="text" name="prenom" class="form-control" required maxlength="50">
|
||||
</div>
|
||||
<div class="mb-2">
|
||||
<label class="form-label">Email</label>
|
||||
<input type="email" name="email" class="form-control" required maxlength="100">
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Annuler</button>
|
||||
<button type="submit" class="btn btn-primary">Ajouter</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user