From 718f3dffa99657585757996ba7d2d5c78422d679 Mon Sep 17 00:00:00 2001 From: Egor fureunoir Gorbunov Date: Fri, 27 Jun 2025 02:22:40 +0300 Subject: [PATCH] Features: 1) Added inactivation method parameter to `delete_inactives` for flexible product deletion options. Fixes: 1) Corrected error message in `products` update case for consistent terminology. Extra: 1) Refactored `delete_inactives` logic for clarity and added validation for inactivation methods. --- core/vendors/__init__.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/core/vendors/__init__.py b/core/vendors/__init__.py index 78a30e98..c188b966 100644 --- a/core/vendors/__init__.py +++ b/core/vendors/__init__.py @@ -294,10 +294,18 @@ class AbstractVendor: case "description": products.update(description="EVIBES_DELETED_PRODUCT") case _: - raise ValueError(f"Invalid method {method!r} for stock update...") + raise ValueError(f"Invalid method {method!r} for products update...") - def delete_inactives(self): - self.get_products_queryset().filter(is_active=False).delete() + def delete_inactives(self, inactivation_method: str = "deactivate"): + products = self.get_products_queryset() + + match inactivation_method: + case "deactivate": + products.filter(is_active=False).delete() + case "description": + products.filter(description__exact="EVIBES_DELETED_PRODUCT").delete() + case _: + raise ValueError(f"Invalid method {inactivation_method!r} for products cleaner...") def delete_belongings(self): self.get_products_queryset().delete()