mirror of
https://forge.chapril.org/tykayn/osm-commerces
synced 2025-10-04 17:04:53 +02:00
152 lines
8.7 KiB
Twig
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 %}
|