fix(meters): block readings on replaced meters

This commit is contained in:
root 2026-08-23 23:31:37 +00:00
parent fee3f97859
commit 8ab3dceb5d
2 changed files with 18 additions and 0 deletions

View file

@ -98,6 +98,10 @@ def record_meter_reading(*, meter, value, user_id, reading_date=None, notes=None
is_reset=False, reset_reason=None,
photo_filename=None, photo_path=None, commit=True):
"""Enregistre une vraie mesure et synchronise l'index courant."""
if meter.status == "replaced" or not meter.is_active:
raise MeterDomainError(
"Ce compteur est inactif ou remplacé. Les nouveaux relevés doivent être saisis sur le compteur actif."
)
try:
value = float(value)
except (TypeError, ValueError):

View file

@ -125,6 +125,19 @@
</div>
</div>
{% if meter.status == 'replaced' or not meter.is_active %}
<div class="alert alert-secondary" role="status">
<h5 class="alert-heading"><i class="bi bi-archive me-1"></i>Compteur remplacé</h5>
<p class="mb-1">Ce compteur n'accepte plus de nouveaux relevés. Son historique reste consultable.</p>
{% if meter.replacement %}
<p class="mb-0">Les nouveaux relevés doivent être saisis sur le compteur remplaçant :
<a href="{{ url_for('meters.detail', meter_id=meter.replacement.id) }}">{{ meter.replacement.name }}</a>.
</p>
{% else %}
<p class="mb-0">Les nouveaux relevés doivent être saisis sur le compteur actif.</p>
{% endif %}
</div>
{% else %}
<!-- Formulaire de relevé -->
<div class="card">
<div class="card-header">
@ -157,6 +170,7 @@
</form>
</div>
</div>
{% endif %}
</div>
<div class="col-lg-8">