Fix: Filtre des produits
This commit is contained in:
@@ -172,7 +172,7 @@ def enregistrer_produit(request):
|
||||
return redirect("gestion_produit:index")
|
||||
|
||||
@login_required
|
||||
def detail_produit(request, id_produit):
|
||||
def detail_produit(_request, id_produit):
|
||||
"""Renvoyez les détails d'un produit spécifique au format JSON.
|
||||
|
||||
Parameters
|
||||
@@ -422,6 +422,73 @@ def enregistrer_categorie(request):
|
||||
return JsonResponse({"success": False})
|
||||
return None
|
||||
|
||||
def filtrer_produit_par_categorie(request, id_categorie):
|
||||
"""Filtrez les produits par catégorie et renvoyez-les au format JSON.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
request : HttpRequest
|
||||
La requête HTTP entrante.
|
||||
id_categorie : int
|
||||
L'ID de la catégorie pour laquelle filtrer les produits.
|
||||
|
||||
Returns
|
||||
-------
|
||||
JsonResponse
|
||||
Réponse JSON contenant la liste des produits filtrés par catégorie.
|
||||
|
||||
"""
|
||||
produits = Produit.objects.filter(categorie_id=id_categorie)
|
||||
produits_filtres = [
|
||||
{
|
||||
"id": produit.id,
|
||||
"libelle": produit.libelle,
|
||||
"conditionnement": produit.conditionnement,
|
||||
"quantite_stock": produit.quantite_stock,
|
||||
"seuil_pre_rupture": produit.seuil_pre_rupture,
|
||||
"image": produit.image.url if produit.image else "",
|
||||
"appartient_logistique": request.user.groups.filter(name="Logistique").exists(),
|
||||
|
||||
}
|
||||
for produit in produits
|
||||
]
|
||||
return JsonResponse(produits_filtres, safe=False)
|
||||
|
||||
def filtre_par_nom_produit(request):
|
||||
"""Filtrez les produits par nom et renvoyez-les au format JSON.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
request : HttpRequest
|
||||
La requête HTTP entrante.
|
||||
nom_produit : str
|
||||
Le nom du produit pour lequel filtrer les produits.
|
||||
|
||||
Returns
|
||||
-------
|
||||
JsonResponse
|
||||
Réponse JSON contenant la liste des produits filtrés par nom.
|
||||
|
||||
"""
|
||||
nom_produit = request.GET.get("nom", "")
|
||||
if nom_produit == "":
|
||||
produits = Produit.objects.all()
|
||||
else:
|
||||
produits = Produit.objects.filter(libelle__icontains=nom_produit)
|
||||
produits_filtres = [
|
||||
{
|
||||
"id": produit.id,
|
||||
"libelle": produit.libelle,
|
||||
"conditionnement": produit.conditionnement,
|
||||
"quantite_stock": produit.quantite_stock,
|
||||
"seuil_pre_rupture": produit.seuil_pre_rupture,
|
||||
"image": produit.image.url if produit.image else "",
|
||||
"appartient_logistique": request.user.groups.filter(name="Logistique").exists(),
|
||||
}
|
||||
for produit in produits
|
||||
]
|
||||
return JsonResponse(produits_filtres, safe=False)
|
||||
|
||||
@login_required
|
||||
def recuperer_fournisseur_par_categorie(_request, id_produit):
|
||||
"""Récupèrez les fournisseurs associés à la catégorie d'un produit donné.
|
||||
|
||||
Reference in New Issue
Block a user