diff --git a/app_new/meters/routes.py b/app_new/meters/routes.py index 37c04d0..d4df451 100644 --- a/app_new/meters/routes.py +++ b/app_new/meters/routes.py @@ -82,7 +82,11 @@ def new(): @login_required def detail(meter_id): """Détails d'un compteur avec historique des relevés.""" - meter = Meter.query.get_or_404(meter_id) + meter = Meter.query.options( + joinedload(Meter.equipment), joinedload(Meter.building), joinedload(Meter.zone), + joinedload(Meter.room), joinedload(Meter.housing_unit), + joinedload(Meter.replaced_meter), joinedload(Meter.replacement), + ).get_or_404(meter_id) readings = MeterReading.query.options(joinedload(MeterReading.read_by)).filter_by(meter_id=meter_id)\ .order_by(MeterReading.reading_date.desc()).limit(50).all() @@ -164,6 +168,7 @@ def edit(meter_id): if scope_key: for key in scope_keys: setattr(meter, key, scope_id if key == scope_key else None) + meter.parent_id = request.form.get('parent_id', type=int) meter.usage = (request.form.get('usage') or '').strip() or None meter.remainder_label = (request.form.get('remainder_label') or '').strip() or None meter.status = request.form.get('status') or meter.status @@ -186,6 +191,7 @@ def edit(meter_id): zones=Zone.query.order_by(Zone.name).all(), rooms=Room.query.order_by(Room.name).all(), housing_units=HousingUnit.query.order_by(HousingUnit.name).all(), + meters=Meter.query.filter(Meter.id != meter_id).order_by(Meter.name).all(), timedelta=timedelta, today=date.today()) diff --git a/app_new/meters/templates/meters/detail.html b/app_new/meters/templates/meters/detail.html index 55be5bf..b8c65cb 100644 --- a/app_new/meters/templates/meters/detail.html +++ b/app_new/meters/templates/meters/detail.html @@ -89,7 +89,18 @@ {% endif %} -
Statut
+
État du compteur
+
+ {% if meter.status == 'replaced' %} + Remplacé + {% elif meter.status == 'active' %} + Actif + {% else %} + {{ meter.status }} + {% endif %} +
+ +
État des seuils historiques
{% if meter.warning_level == 'critical' %} Critique @@ -101,6 +112,15 @@ OK {% endif %}
+ + {% if meter.replaced_meter %} +
Remplace
+
{{ meter.replaced_meter.name }}
+ {% endif %} + {% if meter.replacement %} +
Remplacé par
+
{{ meter.replacement.name }}
+ {% endif %} diff --git a/app_new/meters/templates/meters/edit.html b/app_new/meters/templates/meters/edit.html index 6d7809f..eab6f93 100644 --- a/app_new/meters/templates/meters/edit.html +++ b/app_new/meters/templates/meters/edit.html @@ -45,15 +45,37 @@ + +
+ + + Le compteur ne peut pas être son propre parent ni appartenir à un cycle. +
@@ -144,7 +166,7 @@
Intervalle de relevé

Définissez la fréquence à laquelle vous souhaitez effectuer les relevés. - Le système vous rappellera quand un relevé est attendu. + Il s'agit d'une fréquence indicative. La planification automatique des échéances sera gérée par le module de relevés planifiés.

Prochain relevé
@@ -153,7 +175,7 @@

{{ next_date.strftime('%d/%m/%Y') }} {% if next_date < today %} - En retard + Indication calculée : date dépassée {% endif %}

{% else %} @@ -162,10 +184,14 @@
Types de compteurs