Découpler la création des équipements des tâches préventives
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run

This commit is contained in:
root 2026-08-16 23:23:48 +00:00
parent b1dd90e226
commit 1725d672a9

View file

@ -128,13 +128,27 @@ def bulk_create_equipments():
) )
db.session.add(unit) db.session.add(unit)
created.append(unit) created.append(unit)
# Les tâches sont générées sur les unités individualisées, sinon sur # Valider d'abord le patrimoine. La génération des échéances est
# les groupes de pièce, jamais sur le parent de synthèse. # volontairement découplée : une anomalie dans un lot ne doit jamais
task_targets = [eq for eq in created if (not eq.is_group or (eq.parent_id and not eq.tracked_individually))] # annuler les équipements déjà créés.
for equipment in task_targets:
equipment.create_scheduled_tasks_from_lot(commit=False)
db.session.commit() db.session.commit()
return jsonify({'success': True, 'created_count': len(created), 'families': len(items), 'rooms': len(rooms)}) task_targets = [eq for eq in created if (not eq.is_group or (eq.parent_id and not eq.tracked_individually))]
task_errors = []
for equipment in task_targets:
try:
equipment.create_scheduled_tasks_from_lot(commit=True)
except Exception as exc:
db.session.rollback()
message = f"Équipement {equipment.id} ({equipment.name}) : {str(exc)[:500]}"
task_errors.append(message)
current_app.logger.exception('Échec génération tâche préventive - %s', message)
try:
from app_new.watchdog_logger import log_watchdog
log_watchdog('wizard_equipements', message, level='error')
except Exception:
pass
return jsonify({'success': True, 'created_count': len(created), 'families': len(items), 'rooms': len(rooms),
'task_errors': task_errors})
except (TypeError, ValueError) as exc: except (TypeError, ValueError) as exc:
db.session.rollback() db.session.rollback()
return jsonify({'error': str(exc)}), 400 return jsonify({'error': str(exc)}), 400