72 lines
2.6 KiB
HTML
72 lines
2.6 KiB
HTML
{% extends 'base.html' %}
|
|
{% block title %}Projets{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="page-header d-flex justify-content-between align-items-center">
|
|
<div>
|
|
<h1><i class="bi bi-folder2-open me-2 text-secondary"></i>Projets</h1>
|
|
<p class="text-muted small mt-1">Regroupez plusieurs impressions (runs) sous un même projet client.</p>
|
|
</div>
|
|
<a href="{{ url_for('new_project') }}" class="btn" style="background:#ff6b35;color:#fff">
|
|
<i class="bi bi-plus-lg me-1"></i>Nouveau projet
|
|
</a>
|
|
</div>
|
|
|
|
{% if projects %}
|
|
<div class="row g-3">
|
|
{% for p in projects %}
|
|
<div class="col-md-6">
|
|
<div class="card h-100">
|
|
<div class="card-body">
|
|
<div class="d-flex justify-content-between align-items-start mb-2">
|
|
<div>
|
|
<h5 class="mb-0">
|
|
<a href="{{ url_for('project_detail', id=p.id) }}" class="text-decoration-none text-dark">
|
|
{{ p.name }}
|
|
</a>
|
|
</h5>
|
|
<small class="text-muted">{{ p.client_name or 'Sans client' }}</small>
|
|
</div>
|
|
{% if p.deadline %}
|
|
<span class="badge bg-secondary">{{ p.deadline }}</span>
|
|
{% endif %}
|
|
</div>
|
|
<div class="d-flex gap-4 mt-3">
|
|
<div>
|
|
<div class="small text-muted">Runs</div>
|
|
<div class="fw-bold">{{ p.job_count }}</div>
|
|
</div>
|
|
<div>
|
|
<div class="small text-muted">Pièces totales</div>
|
|
<div class="fw-bold">{{ p.total_pieces }}</div>
|
|
</div>
|
|
<div>
|
|
<div class="small text-muted">CA total</div>
|
|
<div class="fw-bold" style="color:#ff6b35">{{ "%.2f"|format(p.total_revenue) }} €</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card-footer bg-transparent d-flex gap-2 py-2">
|
|
<a href="{{ url_for('project_detail', id=p.id) }}" class="btn btn-sm btn-outline-secondary">
|
|
<i class="bi bi-eye"></i> Voir
|
|
</a>
|
|
<a href="{{ url_for('edit_project', id=p.id) }}" class="btn btn-sm btn-outline-secondary">
|
|
<i class="bi bi-pencil"></i> Modifier
|
|
</a>
|
|
<form method="POST" action="{{ url_for('delete_project', id=p.id) }}"
|
|
onsubmit="return confirm('Supprimer ce projet ? Les jobs seront conservés mais détachés.')">
|
|
<button class="btn btn-sm btn-outline-danger"><i class="bi bi-trash"></i></button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
{% else %}
|
|
<div class="text-center text-muted py-5">
|
|
<i class="bi bi-folder2 fs-1 d-block mb-3"></i>
|
|
Aucun projet. <a href="{{ url_for('new_project') }}">Créer le premier</a>.
|
|
</div>
|
|
{% endif %}
|
|
{% endblock %}
|