osm-commerces/templates/admin/demandes/list.html.twig
2025-07-16 17:00:09 +02:00

152 lines
8.7 KiB
Twig

{% extends 'base.html.twig' %}
{% block title %}Liste des demandes{% endblock %}
{% block body %}
<div class="container mt-4">
<h1>Liste des demandes</h1>
<div class="mb-4">
<a href="{{ path('app_admin') }}" class="btn btn-secondary">Retour à l'administration</a>
</div>
<div class="card mb-4">
<div class="card-header d-flex justify-content-between align-items-center">
<h2 class="mb-0">Filtrer par statut</h2>
{% if current_status %}
<a href="{{ path('app_admin_demandes') }}" class="btn btn-sm btn-outline-secondary">
<i class="bi bi-x-circle"></i> Effacer le filtre
</a>
{% endif %}
</div>
<div class="card-body">
<div class="d-flex flex-wrap gap-2" style="row-gap: 0.5rem;">
<a href="{{ path('app_admin_demandes') }}" class="btn btn-sm {% if current_status is null %}btn-primary{% else %}btn-outline-primary{% endif %}">
<i class="bi bi-funnel"></i> Tous <span class="badge bg-secondary">{{ total_count }}</span>
</a>
{% for status in all_statuses %}
<a href="{{ path('app_admin_demandes', {'status': status}) }}" class="btn btn-sm {% if current_status == status %}btn-primary{% else %}btn-outline-primary{% endif %}">
{% if status == 'new' %}
<i class="bi bi-star"></i> Nouveau
{% elseif status == 'email_provided' %}
<i class="bi bi-envelope"></i> Email fourni
{% elseif status == 'ready' %}
<i class="bi bi-check-circle"></i> Prêt
{% elseif status == 'email_sent' %}
<i class="bi bi-send"></i> Email envoyé
{% elseif status == 'email_failed' %}
<i class="bi bi-exclamation-triangle"></i> Échec d'envoi
{% elseif status == 'email_opened' %}
<i class="bi bi-envelope-open"></i> Email ouvert
{% elseif status == 'edit_form_opened' %}
<i class="bi bi-pencil-square"></i> Formulaire ouvert
{% elseif status == 'place_modified' %}
<i class="bi bi-check2-all"></i> Place modifiée
{% elseif status == 'linked_to_place' %}
<i class="bi bi-link"></i> Lié à une place
{% else %}
{{ status }}
{% endif %}
<span class="badge bg-secondary">{{ status_counts[status]|length }}</span>
</a>
{% endfor %}
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h2>
Demandes ({{ demandes|length }})
{% if current_status %}
<small class="text-muted">
- Filtre actif :
{% if current_status == 'new' %}
<span class="badge bg-primary">Nouveau</span>
{% elseif current_status == 'email_provided' %}
<span class="badge bg-info">Email fourni</span>
{% elseif current_status == 'ready' %}
<span class="badge bg-success">Prêt</span>
{% elseif current_status == 'email_sent' %}
<span class="badge bg-success">Email envoyé</span>
{% elseif current_status == 'email_failed' %}
<span class="badge bg-danger">Échec d'envoi</span>
{% elseif current_status == 'email_opened' %}
<span class="badge bg-warning">Email ouvert</span>
{% elseif current_status == 'edit_form_opened' %}
<span class="badge bg-warning">Formulaire ouvert</span>
{% elseif current_status == 'place_modified' %}
<span class="badge bg-success">Place modifiée</span>
{% elseif current_status == 'linked_to_place' %}
<span class="badge bg-success">Lié à une place</span>
{% else %}
<span class="badge bg-secondary">{{ current_status }}</span>
{% endif %}
</small>
{% endif %}
</h2>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>ID</th>
<th>Nom du commerce</th>
<th>Email</th>
<th>Date de création</th>
<th>Statut</th>
<th>Place UUID</th>
<th>Dernière tentative de contact</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
{% for demande in demandes %}
<tr>
<td>{{ demande.id }}</td>
<td>{{ demande.query }}</td>
<td>{{ demande.email }}</td>
<td>{{ demande.createdAt ? demande.createdAt|date('Y-m-d H:i:s') : '' }}</td>
<td>
<span class="badge
{% if demande.status == 'new' %}bg-primary
{% elseif demande.status == 'email_provided' %}bg-info
{% elseif demande.status == 'ready' %}bg-success
{% elseif demande.status == 'email_sent' %}bg-success
{% elseif demande.status == 'email_failed' %}bg-danger
{% elseif demande.status == 'email_opened' %}bg-warning
{% elseif demande.status == 'edit_form_opened' %}bg-warning
{% elseif demande.status == 'place_modified' %}bg-success
{% elseif demande.status == 'linked_to_place' %}bg-success
{% else %}bg-secondary{% endif %}">
{{ demande.status }}
</span>
</td>
<td>{{ demande.placeUuid }}</td>
<td>{{ demande.lastContactAttempt ? demande.lastContactAttempt|date('Y-m-d H:i:s') : '' }}</td>
<td>
<div class="btn-group" role="group">
<a href="{{ path('app_admin_demande_edit', {'id': demande.id}) }}" class="btn btn-sm btn-primary">
<i class="bi bi-pencil"></i> Éditer
</a>
{% if demande.place %}
<a href="{{ path('app_admin_demande_send_email', {'id': demande.id}) }}" class="btn btn-sm btn-success">
<i class="bi bi-envelope"></i> Envoyer un email
</a>
{% endif %}
</div>
</td>
</tr>
{% else %}
<tr>
<td colspan="8" class="text-center">Aucune demande trouvée</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
</div>
{% endblock %}