From 13ba136add590c5a16c8bd2b7b72ce38fc127896 Mon Sep 17 00:00:00 2001 From: Emmanuelle Helly Date: Mon, 17 Oct 2022 19:30:22 +0200 Subject: [PATCH 1/3] Fix filter_type1 and 2 for EspritParcParser when val is list --- geotrek/tourism/parsers.py | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/geotrek/tourism/parsers.py b/geotrek/tourism/parsers.py index c73d11ba4f..3faa9063c5 100644 --- a/geotrek/tourism/parsers.py +++ b/geotrek/tourism/parsers.py @@ -550,7 +550,7 @@ def filter_type1(self, src, val): return self.apply_filter('type1', src, [val]) -class EspritParcParser(AttachmentParserMixin, Parser): +class EspritParcParser(AttachmentParserMixin, TouristicContentMixin, Parser): model = TouristicContent eid = 'eid' separator = None @@ -654,22 +654,29 @@ def filter_category(self, src, val): def filter_type1(self, src, val): dst = [] if val: - try: - dst.append(TouristicContentType1.objects.get(category=self.obj.category, label=val)) - except TouristicContentType1.DoesNotExist: - self.add_warning( - _("Type 1 '{subval}' does not exist for category '{cat}'. Please add it").format( - subval=val, cat=self.obj.category.label)) + if isinstance(val, str): + val = set(val) + for subval in val: + try: + dst.append(TouristicContentType1.objects.get(category=self.obj.category, label=subval)) + except TouristicContentType1.DoesNotExist: + self.add_warning( + _("Type 1 '{subval}' does not exist for category '{cat}'. Please add it").format( + subval=subval, cat=self.obj.category.label)) return dst def filter_type2(self, src, val): dst = [] if val: - try: - dst.append(TouristicContentType2.objects.get(category=self.obj.category, label=val)) - except TouristicContentType2.DoesNotExist: - self.add_warning(_("Type 2 '{subval}' does not exist for category '{cat}'. Please add it").format( - subval=val, cat=self.obj.category.label)) + if isinstance(val, str): + val = set(val) + for subval in val: + try: + dst.append(TouristicContentType2.objects.get(category=self.obj.category, label=subval)) + except TouristicContentType2.DoesNotExist: + self.add_warning( + _("Type 1 '{subval}' does not exist for category '{cat}'. Please add it").format( + subval=subval, cat=self.obj.category.label)) return dst From 5a5ce475937335558fb7612c4fc911787547aeeb Mon Sep 17 00:00:00 2001 From: Emmanuelle Helly Date: Mon, 24 Oct 2022 10:35:10 +0200 Subject: [PATCH 2/3] Return [] if responseData is null --- geotrek/tourism/parsers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geotrek/tourism/parsers.py b/geotrek/tourism/parsers.py index 3faa9063c5..4fdac2ffdd 100644 --- a/geotrek/tourism/parsers.py +++ b/geotrek/tourism/parsers.py @@ -614,7 +614,7 @@ def filter_attachments(self, src, val): @property def items(self): - return self.root['responseData'] + return self.root['responseData'] or [] def next_row(self): response = self.request_or_retry(self.url) From 39ccd56331a05981551f71931c73c9ddcc97aae3 Mon Sep 17 00:00:00 2001 From: LePetitTim Date: Tue, 29 Nov 2022 12:54:57 +0100 Subject: [PATCH 3/3] Change set for list before create TouristicContentType --- geotrek/tourism/parsers.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/geotrek/tourism/parsers.py b/geotrek/tourism/parsers.py index 4fdac2ffdd..578b0051eb 100644 --- a/geotrek/tourism/parsers.py +++ b/geotrek/tourism/parsers.py @@ -655,7 +655,7 @@ def filter_type1(self, src, val): dst = [] if val: if isinstance(val, str): - val = set(val) + val = [val] for subval in val: try: dst.append(TouristicContentType1.objects.get(category=self.obj.category, label=subval)) @@ -669,13 +669,13 @@ def filter_type2(self, src, val): dst = [] if val: if isinstance(val, str): - val = set(val) + val = [val] for subval in val: try: dst.append(TouristicContentType2.objects.get(category=self.obj.category, label=subval)) except TouristicContentType2.DoesNotExist: self.add_warning( - _("Type 1 '{subval}' does not exist for category '{cat}'. Please add it").format( + _("Type 2 '{subval}' does not exist for category '{cat}'. Please add it").format( subval=subval, cat=self.obj.category.label)) return dst