From 80ec64c00251e27b929b4f04e56a2b75ac6eb562 Mon Sep 17 00:00:00 2001 From: mpeltriaux Date: Sat, 12 Sep 2026 15:29:47 +0200 Subject: [PATCH 1/2] # Client error code * refactors internal server error (validationError) into assertionError (client error) --- api/utils/serializer/serializer.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/api/utils/serializer/serializer.py b/api/utils/serializer/serializer.py index 9fcd5338..7b1661d4 100644 --- a/api/utils/serializer/serializer.py +++ b/api/utils/serializer/serializer.py @@ -11,7 +11,7 @@ from abc import abstractmethod from django.contrib.gis import geos from django.contrib.gis.geos import GEOSGeometry -from django.core.exceptions import ObjectDoesNotExist +from django.core.exceptions import ObjectDoesNotExist, ValidationError from django.core.paginator import Paginator from django.db.models import Q @@ -102,13 +102,16 @@ class AbstractModelAPISerializer: Returns: serialized_data (dict) """ - entries = self.model.objects.filter( - **self.lookup - ).filter( - self.shared_lookup - ).order_by( - "id" - ).distinct() + try: + entries = self.model.objects.filter( + **self.lookup + ).filter( + self.shared_lookup + ).order_by( + "id" + ).distinct() + except ValidationError: + raise AssertionError("ID expected to be of UUID4 for internal lookup.") self.paginator = Paginator(entries, self.rpp) requested_entries = self.paginator.page(self.page_number) -- 2.52.0 From 552811caf39c4b9f3d096683cc8a49b32f40198e Mon Sep 17 00:00:00 2001 From: mpeltriaux Date: Sat, 12 Sep 2026 15:39:35 +0200 Subject: [PATCH 2/2] # Requirements update * updates requirements.txt to latest stable versions --- requirements.txt | 76 ++++++++++++++++++++++++------------------------ 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/requirements.txt b/requirements.txt index a9cf5fbe..fa5ff5a3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,65 +1,65 @@ amqp==5.3.1 -asgiref==3.11.1 +asgiref==3.12.1 async-timeout==5.0.1 -beautifulsoup4==4.14.3 +beautifulsoup4==4.15.0 billiard==4.2.4 cached-property==2.0.1 celery==5.6.3 -certifi==2026.4.22 -cffi==2.0.0 -chardet==7.4.3 -charset-normalizer==3.4.7 -click==8.3.3 +certifi==2026.7.22 +cffi==2.1.1 +chardet==7.6.0 +charset-normalizer==3.5.1 +click==8.5.0 click-didyoumean==0.3.1 click-plugins==1.1.1.2 click-repl==0.3.0 -coverage==7.13.5 -cryptography==48.0.0 +coverage==7.16.0 +cryptography==50.0.1 Deprecated==1.3.1 -Django==6.0.5 -django-autocomplete-light==4.0.0 +Django==6.1.1 +django-autocomplete-light==5.0.0 django-bootstrap-modal-forms==3.0.5 -django-bootstrap4==26.1 -django-environ==0.13.0 -django-filter==25.2 +django-bootstrap4==26.2 +django-environ==0.14.0 +django-filter==26.1 django-fontawesome-5==1.0.18 -django-oauth-toolkit==3.2.0 -django-tables2==3.0.0 +django-oauth-toolkit==3.4.1 +django-tables2==3.0.1 et_xmlfile==2.0.0 -gunicorn==26.0.0 -idna==3.13 -importlib_metadata==9.0.0 +gunicorn==26.2.0 +idna==3.19 +importlib_metadata==9.0.1 itsdangerous==2.2.0 -jwcrypto==1.5.7 +jwcrypto==1.6.0 kombu==5.6.2 oauthlib==3.3.1 openpyxl==3.2.0b1 -packaging==26.2 -pika==1.4.0 -pillow==12.2.0 -prompt_toolkit==3.0.52 -psycopg==3.3.4 -psycopg-binary==3.3.4 +packaging==26.3 +pika==1.4.4 +pillow==12.3.0 +prompt_toolkit==3.0.53 +psycopg==3.3.5 +psycopg-binary==3.3.5 pycparser==3.0 pyparsing==3.3.2 pypng==0.20220715.0 -pyproj==3.7.2 +pyproj==3.8.0 python-dateutil==2.9.0.post0 -pytz==2026.2 +pytz==2026.3 PyYAML==6.0.3 qrcode==8.2 -redis==7.4.0 -requests==2.33.1 +redis==8.1.0 +requests==2.34.2 six==1.17.0 -soupsieve==2.8.3 -sqlparse==0.5.5 -typing_extensions==4.15.0 -tzdata==2026.2 -tzlocal==5.3.1 +soupsieve==2.9.2 +sqlparse==0.6.0 +typing_extensions==4.16.0 +tzdata==2026.4 +tzlocal==5.4.4 urllib3==2.7.0 vine==5.1.0 -wcwidth==0.7.0 +wcwidth==0.8.3 webservices==0.7 -wrapt==2.1.2 +wrapt==2.4.1 xmltodict==1.0.4 -zipp==3.23.1 +zipp==4.1.0 -- 2.52.0