Упрощена модель Shop и реализован полный CRUD для магазинов

- Упрощена модель Shop: только name обязательное поле
- Удалены поля: district, режим работы, координаты, инструкции
- Description перенесено после name
- Все поля кроме name теперь опциональные

- Создан полный CRUD для магазинов:
  * ShopListView - список магазинов с пагинацией
  * ShopCreateView - создание нового магазина
  * ShopUpdateView - редактирование магазина
  * ShopDeleteView - удаление с подтверждением

- Создана форма ShopForm с Bootstrap стилями
- Поле "Название магазина" помечено как обязательное (*)
- Настроена обработка PhoneNumberField

- Созданы шаблоны:
  * shop_list.html - таблица со списком магазинов
  * shop_form.html - форма создания/редактирования
  * shop_confirm_delete.html - подтверждение удаления

- Настроены URLs для приложения shops
- Добавлена ссылка "Магазины" в главную навигацию
- Обновлена админ-панель shops

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-12 00:10:34 +03:00
parent 7858c780d1
commit a1f5733fde
11 changed files with 477 additions and 80 deletions

View File

@@ -11,7 +11,6 @@ class ShopAdmin(admin.ModelAdmin):
'name',
'full_address',
'phone',
'working_hours',
'is_active',
'is_pickup_point',
]
@@ -19,7 +18,6 @@ class ShopAdmin(admin.ModelAdmin):
list_filter = [
'is_active',
'is_pickup_point',
'district',
]
search_fields = [
@@ -35,21 +33,14 @@ class ShopAdmin(admin.ModelAdmin):
'fields': ('name', 'description')
}),
('Адрес', {
'fields': ('street', 'building_number', 'district')
'fields': ('street', 'building_number')
}),
('Контакты', {
'fields': ('phone', 'email')
}),
('Режим работы', {
'fields': ('opening_time', 'closing_time', 'working_days')
}),
('Настройки', {
'fields': ('is_active', 'is_pickup_point')
}),
('Дополнительно', {
'fields': ('delivery_instructions', 'latitude', 'longitude'),
'classes': ('collapse',)
}),
)
readonly_fields = ['created_at', 'updated_at']