gmao/app_new/templates/lots/detail.html

220 lines
11 KiB
HTML
Raw Normal View History

2026-08-14 18:02:25 +02:00
{% extends "base.html" %}
{% block title %}{{ lot.name }} — GMAO{% endblock %}
{% block content %}
<div class="container-fluid">
<div class="row mb-4">
<div class="col">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{{ url_for('lots.index') }}">Lots</a></li>
<li class="breadcrumb-item active">{{ lot.name }}</li>
</ol>
</nav>
<h1 class="h3">
<i class="fas fa-layer-group me-2"></i>{{ lot.name }}
</h1>
{% if lot.company %}
<p class="text-muted">
<i class="fas fa-building me-1"></i>{{ lot.company.trade_name or lot.company.specialty }}
</p>
{% endif %}
</div>
<div class="col-auto">
<a href="{{ url_for('lots.edit', id=lot.id) }}" class="btn btn-outline-primary">
<i class="fas fa-edit me-1"></i>Modifier
</a>
</div>
</div>
<div class="row">
<div class="col-lg-8">
{% if lot.needs_equipment_attention %}
<div class="alert alert-warning">
<i class="bi bi-exclamation-triangle me-1"></i>
<strong>Lot présent sans équipement.</strong> Rattachez au moins un équipement ou marquez ce lot comme non présent.
</div>
{% elif not lot.is_present %}
<div class="alert alert-secondary">
<i class="bi bi-dash-circle me-1"></i>
<strong>Ce lot nest pas présent dans létablissement.</strong>
{% if lot.absence_reason %}<div class="mt-1">{{ lot.absence_reason }}</div>{% endif %}
</div>
{% endif %}
2026-08-14 18:02:25 +02:00
<div class="card mb-4">
<div class="card-header">
<h5 class="mb-0">Informations</h5>
</div>
<div class="card-body">
<dl class="row">
<dt class="col-sm-4">Nom</dt>
<dd class="col-sm-8">{{ lot.name }}</dd>
<dt class="col-sm-4">Présence</dt>
<dd class="col-sm-8">
{% if lot.is_present %}<span class="badge bg-success">Présent</span>
{% else %}<span class="badge bg-secondary">Non présent</span>{% endif %}
</dd>
2026-08-14 18:02:25 +02:00
{% if lot.description %}
<dt class="col-sm-4">Description</dt>
<dd class="col-sm-8">{{ lot.description }}</dd>
{% endif %}
{% if lot.company %}
<dt class="col-sm-4">Entreprise</dt>
<dd class="col-sm-8">
<a href="{{ url_for('companies.detail', id=lot.company.id) }}">
{{ lot.company.trade_name or lot.company.specialty }}
</a>
</dd>
{% endif %}
<dt class="col-sm-4">Catégorie</dt>
<dd class="col-sm-8">
{% if lot.category %}
<a href="{{ url_for('equipments.category_detail', id=lot.category.id) }}">
{{ lot.category.name }}
</a>
{% else %}
<span class="text-muted">Non assignée</span>
{% endif %}
</dd>
</dl>
</div>
</div>
{% if not lot.active_equipment_count %}
<div class="card mb-4">
<div class="card-header">Statut du lot</div>
<div class="card-body">
<form method="POST" action="{{ url_for('lots.set_presence', id=lot.id) }}">
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
{% if lot.is_present %}
<input type="hidden" name="action" value="absent">
<div class="mb-3">
<label class="form-label" for="absence_reason">Raison facultative</label>
<input class="form-control" id="absence_reason" name="absence_reason" placeholder="Ex. aucun ascenseur dans létablissement">
</div>
<button class="btn btn-outline-secondary">Marquer le lot comme non présent</button>
{% else %}
<input type="hidden" name="action" value="present">
<button class="btn btn-outline-success">Marquer le lot comme présent</button>
{% endif %}
</form>
</div>
</div>
{% endif %}
2026-08-14 18:02:25 +02:00
{# Équipements du lot #}
{% if equipments %}
<div class="card mb-4">
<div class="card-header d-flex justify-content-between align-items-center">
<h5 class="mb-0"><i class="bi bi-hdd-stack me-2"></i>Équipements ({{ equipments|length }})</h5>
</div>
<div class="card-body p-0">
<div class="table-responsive">
<table class="table table-sm table-hover mb-0">
<thead>
<tr>
<th>Nom</th>
<th>Localisation</th>
<th>Statut</th>
<th>Compteurs</th>
<th></th>
</tr>
</thead>
<tbody>
{% for eq in equipments %}
<tr>
<td>
<a href="{{ url_for('equipments.detail', id=eq.id) }}">
{{ eq.name }}
</a>
</td>
<td>
{% if eq.room %}
2026-08-14 21:18:39 +02:00
<a href="{{ url_for('rooms.detail', id=eq.room.id) }}">
2026-08-14 18:02:25 +02:00
{{ eq.room.name }}
</a>
{% elif eq.location %}
{{ eq.location }}
{% else %}
<span class="text-muted"></span>
{% endif %}
</td>
<td>
{% if eq.status == 'active' %}
<span class="badge bg-success">En service</span>
{% elif eq.status == 'inactive' %}
<span class="badge bg-secondary">Inactif</span>
{% elif eq.status == 'maintenance' %}
<span class="badge bg-warning text-dark">Maintenance</span>
{% elif eq.status == 'retired' %}
<span class="badge bg-danger">Retiré</span>
{% else %}
<span class="badge bg-secondary">{{ eq.status }}</span>
{% endif %}
</td>
<td>
{% if eq.meters %}
{% for meter in eq.meters %}
<a href="{{ url_for('meters.detail', meter_id=meter.id) }}"
class="badge bg-info text-dark text-decoration-none me-1">
{{ meter.name }}: {{ meter.current_value }} {{ meter.unit }}
</a>
{% endfor %}
{% else %}
<span class="text-muted"></span>
{% endif %}
</td>
<td>
<a href="{{ url_for('equipments.detail', id=eq.id) }}"
class="btn btn-sm btn-outline-primary">
<i class="bi bi-eye"></i>
</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
{% else %}
<div class="card mb-4">
<div class="card-body text-muted">
<i class="bi bi-info-circle me-2"></i>Aucun équipement dans ce lot.
<a href="{{ url_for('equipments.index') }}">Rechercher un équipement</a> pour l'ajouter à ce lot.
</div>
</div>
{% endif %}
</div>
<div class="col-lg-4">
<div class="card">
<div class="card-header">
<h5 class="mb-0">Actions</h5>
</div>
<div class="card-body">
<div class="d-grid gap-2">
<a href="{{ url_for('lots.edit', id=lot.id) }}" class="btn btn-outline-primary">
<i class="fas fa-edit me-1"></i>Modifier le lot
</a>
<form method="POST" action="{{ url_for('lots.delete', id=lot.id) }}"
onsubmit="return confirm('Confirmer la suppression ?');">
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
<button type="submit" class="btn btn-outline-danger w-100">
<i class="fas fa-trash me-1"></i>Supprimer
</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}