From 25934d018ddbaaea834a2dd844c442e60b395058 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 14 Aug 2026 23:37:17 +0000 Subject: [PATCH] =?UTF-8?q?Ajoute=20la=20cr=C3=A9ation=20rapide=20des=20lo?= =?UTF-8?q?ts=20par=20cat=C3=A9gorie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app_new/equipments/main.py | 22 +++++++-- app_new/templates/equipments/edit.html | 47 +++++++++++++++++- app_new/templates/equipments/form.html | 49 ++++++++++++++++++- app_new/wizard/routes.py | 34 ++++++++++++- .../templates/wizard/equipment_wizard.html | 4 +- tests/integration/test_quick_lot_creation.py | 47 ++++++++++++++++++ 6 files changed, 194 insertions(+), 9 deletions(-) create mode 100644 tests/integration/test_quick_lot_creation.py diff --git a/app_new/equipments/main.py b/app_new/equipments/main.py index 7bf38a1..e8c5539 100644 --- a/app_new/equipments/main.py +++ b/app_new/equipments/main.py @@ -154,11 +154,18 @@ def create(): if request.method == 'POST': parent_id = request.form.get('parent_select') or request.form.get('parent_id') or None + category_id = request.form.get('category_id', type=int) + lot_id = request.form.get('lot_id', type=int) + if lot_id: + lot = db.session.get(Lot, lot_id) + if not category_id or not lot or lot.category_id != category_id: + flash('Le lot sélectionné doit appartenir à la catégorie choisie.', 'danger') + return redirect(url_for('equipments.create', advanced=1)), 400 equipment = Equipment( name=request.form.get('name'), - category_id=request.form.get('category_id') or None, + category_id=category_id, room_id=request.form.get('room_id') or None, - lot_id=request.form.get('lot_id') or None, + lot_id=lot_id, code=_empty_to_none(request.form.get('code', '').strip()), description=_empty_to_none(request.form.get('description', '').strip()), status=request.form.get('status', 'en_service'), @@ -225,11 +232,18 @@ def edit(id): equipment = Equipment.query.get_or_404(id) if request.method == 'POST': + category_id = request.form.get('category_id', type=int) + lot_id = request.form.get('lot_id', type=int) + if lot_id: + lot = db.session.get(Lot, lot_id) + if not category_id or not lot or lot.category_id != category_id: + flash('Le lot sélectionné doit appartenir à la catégorie choisie.', 'danger') + return redirect(url_for('equipments.edit', id=id)), 400 equipment.name = request.form.get('name') equipment.code = _empty_to_none(request.form.get('code')) equipment.description = _empty_to_none(request.form.get('description')) - equipment.category_id = _empty_to_none(request.form.get('category_id')) - equipment.lot_id = _empty_to_none(request.form.get('lot_id')) + equipment.category_id = category_id + equipment.lot_id = lot_id equipment.room_id = _empty_to_none(request.form.get('room_id')) equipment.status = request.form.get('status', 'en_service') equipment.quantity = int(request.form.get('quantity', 1)) or 1 diff --git a/app_new/templates/equipments/edit.html b/app_new/templates/equipments/edit.html index 0fd23d5..327ef87 100644 --- a/app_new/templates/equipments/edit.html +++ b/app_new/templates/equipments/edit.html @@ -90,11 +90,12 @@ + @@ -641,6 +642,50 @@