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:
@@ -369,6 +369,7 @@ class Showcase(models.Model):
|
||||
related_name='showcases', verbose_name="Склад")
|
||||
description = models.TextField(blank=True, null=True, verbose_name="Описание")
|
||||
is_active = models.BooleanField(default=True, verbose_name="Активна")
|
||||
is_default = models.BooleanField(default=False, verbose_name="По умолчанию")
|
||||
created_at = models.DateTimeField(auto_now_add=True, verbose_name="Дата создания")
|
||||
updated_at = models.DateTimeField(auto_now=True, verbose_name="Дата обновления")
|
||||
|
||||
@@ -379,11 +380,19 @@ class Showcase(models.Model):
|
||||
indexes = [
|
||||
models.Index(fields=['warehouse']),
|
||||
models.Index(fields=['is_active']),
|
||||
models.Index(fields=['is_default']),
|
||||
]
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.name} ({self.warehouse.name})"
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
"""Обеспечиваем что только одна витрина может быть по умолчанию для каждого склада"""
|
||||
if self.is_default:
|
||||
# Снимаем флаг is_default со всех других витрин этого склада
|
||||
Showcase.objects.filter(warehouse=self.warehouse, is_default=True).exclude(pk=self.pk).update(is_default=False)
|
||||
super().save(*args, **kwargs)
|
||||
|
||||
|
||||
class Reservation(models.Model):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user