From 2e92c4d7a0caf5b0d4789a1a45e72e184d8e9e94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=B3=D0=BE=D1=80=D1=8C=20=D0=9D=D0=B0=D0=B4=D0=B5?= =?UTF-8?q?=D0=B8=D0=BD?= Date: Wed, 10 Dec 2025 16:53:09 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BE=D1=82=D0=B4=D0=B5=D0=BB=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=B8=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B0?= =?UTF-8?q?=20=D0=BF=D0=B0=D0=B3=D0=B8=D0=BD=D0=B8=D1=80=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BE=D1=82=D0=B2=D0=B5=D1=82?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - API departments возвращает объект с пагинацией {results: [...]}, а не массив - Добавлена универсальная обработка как массива, так и объекта с results - Добавлены проверки существования DOM элементов перед обращением - Исправлена ошибка при редактировании заявки --- .../templates/procurement/request_form.html | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/backend/templates/procurement/request_form.html b/backend/templates/procurement/request_form.html index 82e35619..f96bb310 100644 --- a/backend/templates/procurement/request_form.html +++ b/backend/templates/procurement/request_form.html @@ -126,22 +126,26 @@ } const departments = await resp.json(); - console.log('[Departments] Loaded:', departments.length, 'departments'); + console.log('[Departments] Raw response:', departments); - if (!departments || departments.length === 0) { + // API может вернуть массив или объект с пагинацией {results: [...]} + const departmentsList = Array.isArray(departments) ? departments : (departments.results || []); + console.log('[Departments] Loaded:', departmentsList.length, 'departments'); + + if (!departmentsList || departmentsList.length === 0) { select.innerHTML = ''; return; } select.innerHTML = ''; - departments.forEach(dept => { + departmentsList.forEach(dept => { const option = document.createElement('option'); option.value = dept.id; option.textContent = dept.name; // Автовыбор отдела текущего пользователя, если он один - if (!isEdit && departments.length === 1) { + if (!isEdit && departmentsList.length === 1) { option.selected = true; } @@ -179,8 +183,15 @@ } // Обновляем заголовок - document.querySelector('.card-header h4').innerHTML = 'Редактирование заявки #' + requestId; - document.querySelector('.breadcrumb-item.active').textContent = 'Редактирование заявки'; + const cardHeader = document.querySelector('.card-header h4'); + if (cardHeader) { + cardHeader.innerHTML = 'Редактирование заявки #' + requestId; + } + + const breadcrumbItem = document.querySelector('.breadcrumb-item.active'); + if (breadcrumbItem) { + breadcrumbItem.textContent = 'Редактирование заявки'; + } // Скрываем кнопку "Создать и отправить" для редактирования const submitBtn = document.querySelector('[name="action"][value="submit"]');