Add default showcase selection per warehouse

- Add is_default field to Showcase model with unique constraint per warehouse
- Implement Showcase.save() to ensure only one default per warehouse
- Add SetDefaultShowcaseView for AJAX-based default selection
- Update ShowcaseForm to include is_default checkbox
- Add interactive checkbox UI in showcase list with AJAX functionality
- Update POS API to return showcase.is_default instead of warehouse.is_default
- Update terminal.js to auto-select showcase based on its is_default flag
- Add migration for is_default field

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-20 11:40:08 +03:00
parent 766ca3c87c
commit dd184265ee
9 changed files with 253 additions and 15 deletions

View File

@@ -366,15 +366,15 @@ def get_showcases_api(request):
Используется для выбора витрины при создании временного комплекта.
"""
showcases = Showcase.objects.filter(is_active=True).select_related('warehouse')
showcases_data = [{
'id': s.id,
'name': s.name,
'warehouse_name': s.warehouse.name,
'warehouse_id': s.warehouse.id,
'is_default_warehouse': s.warehouse.is_default # Для автовыбора
'is_default': s.is_default # Флаг витрины по умолчанию для автовыбора
} for s in showcases]
return JsonResponse({
'success': True,
'showcases': showcases_data