diff --git a/contracts/admin.py b/contracts/admin.py index 6240321f3915855db68e73736d8e7e89f068c3f0..ad19a97f11fcadc8bd9086822461b9ab615d1481 100644 --- a/contracts/admin.py +++ b/contracts/admin.py @@ -5,6 +5,7 @@ import typing import uuid import requests +import threading from admin_auto_filters.filters import AutocompleteFilterFactory from django.conf import settings from django.contrib import admin @@ -295,6 +296,8 @@ class ContractAdmin( FieldsetInlineOrder.FIELDSET, ] + external_requests_timeout = 20 + def get_queryset(self, request): queryset = super().get_queryset(request) @@ -360,6 +363,7 @@ class ContractAdmin( } ), headers=headers, + timeout=external_requests_timeout, ) notice.raise_for_status() @@ -372,6 +376,7 @@ class ContractAdmin( requests.post( f"{settings.NASTENKA_API_URL}/{obj.after_approval_nastenka_notice_id}/all-hidden", headers=headers, + timeout=external_requests_timeout, ).raise_for_status() obj.after_approval_nastenka_notice_id = None @@ -381,6 +386,7 @@ class ContractAdmin( requests.post( f"{settings.NASTENKA_API_URL}/{obj.to_be_approved_nastenka_notice_id}/all-hidden", headers=headers, + timeout=external_requests_timeout, ).raise_for_status() obj.to_be_approved_nastenka_notice_id = None @@ -416,6 +422,7 @@ class ContractAdmin( } ), headers=headers, + timeout=external_requests_timeout, ) notice.raise_for_status() @@ -428,6 +435,7 @@ class ContractAdmin( requests.post( f"{settings.NASTENKA_API_URL}/{obj.work_in_progress_nastenka_notice_id}/all-hidden", headers=headers, + timeout=external_requests_timeout, ).raise_for_status() obj.work_in_progress_nastenka_notice_id = None @@ -456,6 +464,7 @@ class ContractAdmin( } ), headers=headers, + timeout=external_requests_timeout, ) notice.raise_for_status() @@ -468,6 +477,7 @@ class ContractAdmin( requests.post( f"{settings.NASTENKA_API_URL}/{obj.to_be_approved_nastenka_notice_id}/all-hidden", headers=headers, + timeout=external_requests_timeout, ).raise_for_status() obj.to_be_approved_nastenka_notice_id = None @@ -496,6 +506,7 @@ class ContractAdmin( } ), headers=headers, + timeout=external_requests_timeout, ) notice.raise_for_status() @@ -508,6 +519,7 @@ class ContractAdmin( requests.post( f"{settings.NASTENKA_API_URL}/{obj.to_be_approved_nastenka_notice_id}/all-hidden", headers=headers, + timeout=external_requests_timeout, ).raise_for_status() obj.to_be_approved_nastenka_notice_id = None