refactor: Заменить сущность Магазин (Shop) на Склад (Warehouse)

Упрощена логика системы путём замены отдельной сущности "Магазин"
на универсальную сущность "Склад", которая может использоваться
как точка самовывоза.

Изменения:
- Расширена модель Warehouse: добавлены адрес, контакты, флаг is_pickup_point
- Модель Order: поле pickup_shop заменено на pickup_warehouse
- Обновлены все формы, сервисы, views, admin для работы со складами
- Обновлены шаблоны HTML и JavaScript код
- Удалено приложение shops полностью
- Пересозданы миграции БД
- Обновлён навбар (удалена ссылка на магазины)

Преимущества:
- Упрощена архитектура системы
- Единая точка управления складами и точками самовывоза
- Интеграция с системой инвентаризации

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-14 23:50:30 +03:00
parent d3ac875a0e
commit 4a4bd437b9
37 changed files with 99 additions and 740 deletions

View File

@@ -130,13 +130,13 @@
</div>
{% else %}
<div class="row mb-2">
<div class="col-md-4"><strong>Точка самовывоза:</strong></div>
<div class="col-md-4"><strong>Склад для самовывоза:</strong></div>
<div class="col-md-8">
{% if order.pickup_shop %}
{{ order.pickup_shop.name }}<br>
<small class="text-muted">{{ order.pickup_shop.address }}</small>
{% if order.pickup_warehouse %}
{{ order.pickup_warehouse.name }}<br>
<small class="text-muted">{{ order.pickup_warehouse.full_address }}</small>
{% else %}
<span class="text-danger">Не указана</span>
<span class="text-danger">Не указан</span>
{% endif %}
</div>
</div>

View File

@@ -522,12 +522,12 @@
<div class="row" id="pickup-fields" style="display: none;">
<div class="col-md-6">
<div class="mb-3">
<label for="{{ form.pickup_shop.id_for_label }}" class="form-label">
Точка самовывоза
<label for="{{ form.pickup_warehouse.id_for_label }}" class="form-label">
Склад для самовывоза
</label>
{{ form.pickup_shop }}
{% if form.pickup_shop.errors %}
<div class="text-danger">{{ form.pickup_shop.errors }}</div>
{{ form.pickup_warehouse }}
{% if form.pickup_warehouse.errors %}
<div class="text-danger">{{ form.pickup_warehouse.errors }}</div>
{% endif %}
</div>
</div>