misc: pass django's request to requests wrapper (#85755)

This commit is contained in:
Benjamin Dauvergne 2024-01-16 17:55:41 +01:00
parent e82ce47d9d
commit 701b3419cd
1 changed files with 19 additions and 5 deletions

View File

@ -38,7 +38,14 @@ def get_default_wcs_service_key():
class LazyCardDefObjectsManager:
def __init__(
self, service_key, card_id, custom_view_id=None, filters=None, geo_center=None, user=Ellipsis
self,
service_key,
card_id,
custom_view_id=None,
filters=None,
geo_center=None,
user=Ellipsis,
django_request=None,
):
self._service_key = service_key
self._card_id = card_id
@ -49,6 +56,7 @@ class LazyCardDefObjectsManager:
self._geo_center = geo_center or {}
self._cached_resultset = None
self._django_request = django_request
def _clone(self):
return LazyCardDefObjectsManager(
@ -262,6 +270,7 @@ class LazyCardDefObjectsManager:
without_user=without_user,
log_errors=False,
cache_duration=5,
django_request=self._django_request,
)
response.raise_for_status()
except RequestException:
@ -299,7 +308,9 @@ class LazyCardDefObjectsManager:
class LazyCardDef:
def __init__(self, slug):
def __init__(self, slug, django_request=None):
self._django_request = django_request
if ':' in slug:
self.service_key, self.card_id = slug.split(':')[:2]
else:
@ -308,16 +319,19 @@ class LazyCardDef:
@property
def objects(self):
return LazyCardDefObjectsManager(self.service_key, self.card_id)
return LazyCardDefObjectsManager(self.service_key, self.card_id, django_request=self._django_request)
class Cards:
def __init__(self, django_request=None):
self._django_request = django_request
def __getattr__(self, attr):
try:
return LazyCardDef(attr)
return LazyCardDef(attr, django_request=self._django_request)
except KeyError:
raise AttributeError(attr)
def cards(request):
return {'cards': Cards()}
return {'cards': Cards(django_request=request)}