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 @@