From 83c6d85a2cc20d0db31bbb718d5037c9a8608856 Mon Sep 17 00:00:00 2001 From: Chatewgne Date: Tue, 31 Dec 2024 14:51:37 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20[BUG]=20Fix=20missing=20Structur?= =?UTF-8?q?es=20in=20APIv2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/changelog.rst | 5 +++++ geotrek/api/v2/filters.py | 16 +++++++++++++++- geotrek/api/v2/views/authent.py | 2 +- geotrek/api/v2/views/common.py | 2 +- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 87c8183fc6..d70ba0d31d 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -11,6 +11,11 @@ CHANGELOG - Fix typo in documentation - Update and homogenize README.rst +**Bug fixes** + +- Fix missing Structures in APIv2 + + 2.111.0 (2024-12-05) ---------------------------- diff --git a/geotrek/api/v2/filters.py b/geotrek/api/v2/filters.py index 0d30fba837..924fe7e603 100644 --- a/geotrek/api/v2/filters.py +++ b/geotrek/api/v2/filters.py @@ -1106,13 +1106,27 @@ def filter_queryset(self, request, qs, view): return (set_1 | set_2).distinct() -class RelatedPortalStructureOrReservationSystemFilter(RelatedObjectsPublishedNotDeletedByPortalFilter): +class RelatedPortalReservationSystemFilter(RelatedObjectsPublishedNotDeletedByPortalFilter): def filter_queryset(self, request, qs, view): set_1 = self.filter_queryset_related_objects_published_not_deleted_by_portal(qs, request, 'trek') set_2 = self.filter_queryset_related_objects_published_not_deleted_by_portal(qs, request, 'touristiccontent') return (set_1 | set_2).distinct() +class RelatedPortalStructureFilter(RelatedObjectsPublishedNotDeletedByPortalFilter): + def filter_queryset(self, request, qs, view): + set_1 = self.filter_queryset_related_objects_published_not_deleted_by_portal(qs, request, 'trek') + set_2 = self.filter_queryset_related_objects_published_not_deleted_by_portal(qs, request, 'touristiccontent') + set_3 = self.filter_queryset_related_objects_published_not_deleted_by_portal(qs, request, 'poi') + set_4 = self.filter_queryset_related_objects_published_not_deleted_by_portal(qs, request, 'service') + set_5 = self.filter_queryset_related_objects_published_not_deleted_by_portal(qs, request, 'infrastructure') + set_6 = self.filter_queryset_related_objects_published_not_deleted_by_portal(qs, request, 'signage') + set_7 = self.filter_queryset_related_objects_published_not_deleted_by_portal(qs, request, 'touristicevent') + set_8 = self.filter_queryset_related_objects_published_not_deleted_by_portal(qs, request, 'site') + set_9 = self.filter_queryset_related_objects_published_not_deleted_by_portal(qs, request, 'course') + return (set_1 | set_2 | set_3 | set_4 | set_5 | set_6 | set_7 | set_8 | set_9).distinct() + + class TouristicContentRelatedPortalFilter(RelatedObjectsPublishedNotDeletedByPortalFilter): def filter_queryset(self, request, qs, view): return self.filter_queryset_related_objects_published_not_deleted_by_portal(qs, request, 'contents') diff --git a/geotrek/api/v2/views/authent.py b/geotrek/api/v2/views/authent.py index 9c31f03bae..43ca7ed5be 100644 --- a/geotrek/api/v2/views/authent.py +++ b/geotrek/api/v2/views/authent.py @@ -8,7 +8,7 @@ class StructureViewSet(api_viewsets.GeotrekViewSet): - filter_backends = api_viewsets.GeotrekViewSet.filter_backends + (api_filters.RelatedPortalStructureOrReservationSystemFilter,) + filter_backends = api_viewsets.GeotrekViewSet.filter_backends + (api_filters.RelatedPortalStructureFilter,) serializer_class = api_serializers.StructureSerializer queryset = authent_models.Structure.objects.all() diff --git a/geotrek/api/v2/views/common.py b/geotrek/api/v2/views/common.py index 800edeccd2..0e5ab3899e 100644 --- a/geotrek/api/v2/views/common.py +++ b/geotrek/api/v2/views/common.py @@ -76,7 +76,7 @@ def retrieve(self, request, pk=None, format=None): class ReservationSystemViewSet(api_viewsets.GeotrekViewSet): - filter_backends = api_viewsets.GeotrekViewSet.filter_backends + (api_filters.RelatedPortalStructureOrReservationSystemFilter,) + filter_backends = api_viewsets.GeotrekViewSet.filter_backends + (api_filters.RelatedPortalReservationSystemFilter,) serializer_class = api_serializers.ReservationSystemSerializer queryset = common_models.ReservationSystem.objects.all()