feat: Add customer prefill from URL parameter in order creation

- Modified order_create view to read customer from GET parameter
- Pass preselected_customer to template context
- Template renders select with preselected option for Select2
- Fixed draft creation timing with callback after Select2 initialization
- Auto-create draft when customer is preselected from URL
- Graceful handling if customer not found or invalid ID
This commit is contained in:
2025-11-27 00:17:02 +03:00
parent 5ead7fdd2e
commit c62cdb0298
6 changed files with 463 additions and 19 deletions

View File

@@ -108,7 +108,19 @@ def order_create(request):
else:
messages.error(request, 'Пожалуйста, исправьте ошибки в форме.')
else:
form = OrderForm()
# Предзаполнение клиента из GET параметра
initial_data = {}
preselected_customer = None
customer_id = request.GET.get('customer')
if customer_id:
try:
from customers.models import Customer
preselected_customer = Customer.objects.get(pk=customer_id)
initial_data['customer'] = preselected_customer.pk
except (Customer.DoesNotExist, ValueError):
pass
form = OrderForm(initial=initial_data)
formset = OrderItemFormSet()
payment_formset = PaymentFormSet()
@@ -116,6 +128,7 @@ def order_create(request):
'form': form,
'formset': formset,
'payment_formset': payment_formset,
'preselected_customer': preselected_customer,
'title': 'Создание заказа',
'button_text': 'Создать заказ',
}