From 01da49569000fa9565f8dbfdde76ccdac300ab07 Mon Sep 17 00:00:00 2001 From: Samar Hassan Date: Mon, 26 Aug 2024 15:35:44 +0100 Subject: [PATCH 1/2] feat :star: return valid resources after full clean --- oscar_odin/mappings/catalogue.py | 2 +- oscar_odin/utils.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/oscar_odin/mappings/catalogue.py b/oscar_odin/mappings/catalogue.py index 2791c63..47cc407 100644 --- a/oscar_odin/mappings/catalogue.py +++ b/oscar_odin/mappings/catalogue.py @@ -434,7 +434,7 @@ def products_to_db( After that all the products will be bulk saved. At last all related models like images, stockrecords, and related_products can will be saved and set on the product. """ - errors = validate_resources(products) + _, errors = validate_resources(products) if errors: return [], errors instances, context = products_to_model( diff --git a/oscar_odin/utils.py b/oscar_odin/utils.py index 9ae3de0..7c206fd 100644 --- a/oscar_odin/utils.py +++ b/oscar_odin/utils.py @@ -77,6 +77,7 @@ def querycounter(*labels, print_queries=False): def validate_resources(resources): errors = [] + valid_resources = [] if not resources: return if not isinstance(resources, (list, tuple)): @@ -87,6 +88,7 @@ def validate_resources(resources): for resource in resources: try: resource.full_clean() + valid_resources.append(resource) except ValidationError as error: errors.append(error) - return errors + return valid_resources, errors From 8ad8629aadb9b895e430f7572515698e932228c5 Mon Sep 17 00:00:00 2001 From: Samar Hassan Date: Mon, 26 Aug 2024 20:28:01 +0100 Subject: [PATCH 2/2] feat :star: consistent return statements --- oscar_odin/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oscar_odin/utils.py b/oscar_odin/utils.py index 7c206fd..b29b7f9 100644 --- a/oscar_odin/utils.py +++ b/oscar_odin/utils.py @@ -79,7 +79,7 @@ def validate_resources(resources): errors = [] valid_resources = [] if not resources: - return + return [], [] if not isinstance(resources, (list, tuple)): if isinstance(resources, MappingResult): resources = resources.items