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)
|
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
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue