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()