From 7bc567ab955974120e6ec4ba64f0b39a43710d75 Mon Sep 17 00:00:00 2001 From: vabene1111 Date: Sun, 18 Feb 2024 18:01:59 +0100 Subject: [PATCH] name uniquness checking for food import --- cookbook/helper/open_data_importer.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/cookbook/helper/open_data_importer.py b/cookbook/helper/open_data_importer.py index 7cfba03c..868704a4 100644 --- a/cookbook/helper/open_data_importer.py +++ b/cookbook/helper/open_data_importer.py @@ -185,8 +185,11 @@ class OpenDataImporter: unit_g = Unit.objects.filter(space=self.request.space, base_unit__iexact='g').first() existing_data = {} - for obj in Food.objects.filter(space=self.request.space, open_data_slug__isnull=False).values('pk', 'name', 'open_data_slug'): - existing_data[obj['open_data_slug']] = obj + existing_data_names = {} + for obj in Food.objects.filter(space=self.request.space).values('pk', 'name', 'open_data_slug'): + if obj.open_data_slug: + existing_data[obj['open_data_slug']] = obj + existing_data_names[obj['name']] = obj update_list = [] create_list = [] @@ -203,9 +206,13 @@ class OpenDataImporter: 'space': self.request.space.id, } - if obj['open_data_slug'] in existing_data: + if obj['open_data_slug'] in existing_data or obj['name'] in existing_data_names: + if obj['open_data_slug'] in existing_data: + obj['pk'] = existing_data[obj['open_data_slug']]['pk'] + elif obj['name'] in existing_data_names: + obj['pk'] = existing_data_names[obj['name']]['pk'] + obj['space'] = self.request.space - obj['pk'] = existing_data[obj['open_data_slug']]['pk'] obj = Food(**obj) update_list.append(obj) else: