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
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run
This commit is contained in:
parent
b1dd90e226
commit
1725d672a9
1 changed files with 20 additions and 6 deletions
|
|
@ -128,13 +128,27 @@ def bulk_create_equipments():
|
|||
)
|
||||
db.session.add(unit)
|
||||
created.append(unit)
|
||||
# Les tâches sont générées sur les unités individualisées, sinon sur
|
||||
# les groupes de pièce, jamais sur le parent de synthèse.
|
||||
task_targets = [eq for eq in created if (not eq.is_group or (eq.parent_id and not eq.tracked_individually))]
|
||||
for equipment in task_targets:
|
||||
equipment.create_scheduled_tasks_from_lot(commit=False)
|
||||
# Valider d'abord le patrimoine. La génération des échéances est
|
||||
# volontairement découplée : une anomalie dans un lot ne doit jamais
|
||||
# annuler les équipements déjà créés.
|
||||
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:
|
||||
db.session.rollback()
|
||||
return jsonify({'error': str(exc)}), 400
|
||||
|
|
|
|||
Loading…
Reference in a new issue