loko/streetup/contracts/templates/contracts/claim_declaration_attachments.html
2026-07-22 14:48:40 +02:00

153 lines
7.2 KiB
HTML

{% extends "base.html" %}
{% load i18n %}
{% load short_name %}
{% block head %}
<style>
.attachment-card {
transition: all 0.2s ease;
}
.attachment-card:hover {
box-shadow: 0 0.25rem 0.5rem rgba(0,0,0,0.1);
}
.delete-btn {
opacity: 0.6;
transition: opacity 0.2s ease;
}
.delete-btn:hover {
opacity: 1;
}
</style>
{% endblock head %}
{% block content %}
<div class="container mt-5">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{% url 'contracts:contracts_index' %}">{% translate "Contrats" %}</a></li>
<li class="breadcrumb-item"><a href="{% url 'contracts:contracts_orders_detail' order.id %}">{{ order.order_code }}</a></li>
<li class="breadcrumb-item active" aria-current="page">{% translate "Justificatifs" %}</li>
</ol>
</nav>
<h2>{% translate "Justificatifs de la déclaration de créance" %}</h2>
{% if messages %}
{% for message in messages %}
<div class="alert {% if message.tags == 'success' %}alert-success{% elif message.tags == 'error' %}alert-danger{% else %}alert-info{% endif %} alert-dismissible fade show" role="alert">
{{ message }}
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
{% endfor %}
{% endif %}
<!-- Informations sur la déclaration de créance -->
<div class="card mb-4">
<div class="card-header">
<h5 class="mb-0"><i class="bi bi-file-earmark-text me-2"></i>{% translate "Déclaration de créance" %}</h5>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-8">
<p class="mb-1"><strong>{% translate "Titre" %} :</strong> {{ claim_doc.title }}</p>
<p class="mb-1"><strong>{% translate "Commande" %} :</strong> {{ order.order_code }}</p>
<p class="mb-0"><strong>{% translate "Date de création" %} :</strong> {{ claim_doc.uploaded_at|date:"d/m/Y H:i" }}</p>
</div>
<div class="col-md-4 text-md-end">
<a href="{{ claim_doc_private_url }}" target="_blank" class="btn btn-outline-primary">
<i class="bi bi-file-earmark-pdf me-1"></i>{% translate "Voir le document" %}
</a>
</div>
</div>
</div>
</div>
<!-- Formulaire d'ajout de pièce jointe -->
<div class="card mb-4">
<div class="card-header">
<h5 class="mb-0"><i class="bi bi-plus-circle me-2"></i>{% translate "Ajouter un justificatif" %}</h5>
</div>
<div class="card-body">
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<div class="row g-3">
<div class="col-md-5">
<label for="{{ form.title.id_for_label }}" class="form-label">{{ form.title.label }}</label>
{{ form.title }}
{% if form.title.errors %}
<div class="invalid-feedback d-block">{{ form.title.errors }}</div>
{% endif %}
</div>
<div class="col-md-5">
<label for="{{ form.document.id_for_label }}" class="form-label">{{ form.document.label }}</label>
{{ form.document }}
{% if form.document.errors %}
<div class="invalid-feedback d-block">{{ form.document.errors }}</div>
{% endif %}
</div>
<div class="col-md-2 d-flex align-items-end">
<button type="submit" class="btn btn-primary w-100">
<i class="bi bi-upload me-1"></i>{% translate "Ajouter" %}
</button>
</div>
</div>
</form>
</div>
</div>
<!-- Liste des pièces jointes -->
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h5 class="mb-0"><i class="bi bi-paperclip me-2"></i>{% translate "Justificatifs attachés" %}</h5>
<span class="badge bg-secondary">{{ attachments|length }}</span>
</div>
<div class="card-body">
{% if attachments %}
<div class="list-group">
{% for att in attachments %}
<div class="list-group-item list-group-item-action attachment-card d-flex justify-content-between align-items-center">
<div class="d-flex align-items-center">
<i class="bi bi-file-earmark text-secondary me-3 fs-4"></i>
<div>
<a href="{{ att.private_url }}" target="_blank" class="text-decoration-none fw-medium">
{{ att.title }}
</a>
<br>
<small class="text-muted">
{% translate "Ajouté le" %} {{ att.uploaded_at|date:"d/m/Y H:i" }}
{% if att.uploaded_by %}
{% translate "par" %} {{ att.uploaded_by|short_name }}
{% endif %}
</small>
</div>
</div>
<div class="d-flex align-items-center gap-2">
<a href="{{ att.private_url }}" target="_blank" class="btn btn-sm btn-outline-primary" title="{% translate 'Télécharger' %}">
<i class="bi bi-download"></i>
</a>
<form method="post" action="{% url 'contracts:delete_claim_attachment' att.id %}" class="d-inline" onsubmit="return confirm('{% translate "Êtes-vous sûr de vouloir supprimer ce justificatif ?" %}');">
{% csrf_token %}
<button type="submit" class="btn btn-sm btn-outline-danger delete-btn" title="{% translate 'Supprimer' %}">
<i class="bi bi-trash"></i>
</button>
</form>
</div>
</div>
{% endfor %}
</div>
{% else %}
<p class="text-muted mb-0 text-center py-4">
<i class="bi bi-inbox fs-1 d-block mb-2"></i>
{% translate "Aucun justificatif n'a encore été ajouté à cette déclaration de créance." %}
</p>
{% endif %}
</div>
</div>
<div class="mt-4">
<a href="{% url 'contracts:contracts_orders_detail' order.id %}" class="btn btn-secondary">
<i class="bi bi-arrow-left me-1"></i>{% translate "Retour à la commande" %}
</a>
</div>
</div>
{% endblock %}