From 2d7a5079f9d90384be5278d170ff14cd17e6e778 Mon Sep 17 00:00:00 2001 From: Andrey Smakotin Date: Tue, 11 Nov 2025 01:17:58 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D1=87=D0=B5=D1=80=D0=BD=D0=BE=D0=B2=D0=B8=D0=BA=D0=B0?= =?UTF-8?q?=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=20=D0=B4=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BD=D0=BE=D0=B2=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20=D0=BA=D0=BB=D0=B8=D0=B5=D0=BD=D1=82=D0=B0=20?= =?UTF-8?q?=D0=B2=20=D0=BC=D0=BE=D0=B4=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=BC?= =?UTF-8?q?=20=D0=BE=D0=BA=D0=BD=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Проблема: Когда клиент создавался через модальное окно и добавлялся в Select2, черновик заказа не создавался автоматически, хотя при выборе существующего клиента все работало. Причина: draft-creator.js слушает события Select2 при загрузке, но когда новый клиент динамически добавляется в Select2, события могут не срабатывать правильно или быть потеряны. Решение: 1. Добавлен публичный API в draft-creator.js (window.DraftCreator.triggerDraftCreation) 2. После успешного создания клиента в модальном окне явно вызываем API 3. Добавлена небольшая задержка (100ms) для синхронизации с Select2 Теперь черновик создается в обоих случаях: - При выборе существующего клиента - При создании нового клиента через модальное окно 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- myproject/orders/static/orders/js/draft-creator.js | 8 ++++++++ myproject/orders/templates/orders/order_form.html | 9 +++++++++ 2 files changed, 17 insertions(+) diff --git a/myproject/orders/static/orders/js/draft-creator.js b/myproject/orders/static/orders/js/draft-creator.js index 41733ce..80a7aff 100644 --- a/myproject/orders/static/orders/js/draft-creator.js +++ b/myproject/orders/static/orders/js/draft-creator.js @@ -364,4 +364,12 @@ init(); } + // Экспортируем публичный API для вызова из модального окна + window.DraftCreator = { + triggerDraftCreation: function() { + console.log('[DraftCreator] Triggered via API'); + scheduleCreateDraft(); + } + }; + })(); diff --git a/myproject/orders/templates/orders/order_form.html b/myproject/orders/templates/orders/order_form.html index 6e142e0..93a55bf 100644 --- a/myproject/orders/templates/orders/order_form.html +++ b/myproject/orders/templates/orders/order_form.html @@ -1328,6 +1328,15 @@ document.getElementById('save-customer-btn').addEventListener('click', function( // Показываем успешное уведомление (автоисчезающее) showNotification(`✓ Клиент "${data.name}" успешно создан!`, 'success'); + + // Триггерим создание черновика через draft-creator + // После выбора клиента должно произойти автоматическое создание черновика + // Добавляем небольшую задержку, чтобы Select2 полностью обновился + setTimeout(() => { + if (window.DraftCreator && typeof window.DraftCreator.triggerDraftCreation === 'function') { + window.DraftCreator.triggerDraftCreation(); + } + }, 100); } else { const errorDiv = document.getElementById('customer-form-errors'); errorDiv.innerHTML = '
' + data.error + '
';