- Упрощена модель 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>
59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
from django.contrib import admin
|
|
from .models import Shop
|
|
|
|
|
|
@admin.register(Shop)
|
|
class ShopAdmin(admin.ModelAdmin):
|
|
"""
|
|
Админ-панель для управления магазинами/пунктами самовывоза.
|
|
"""
|
|
list_display = [
|
|
'name',
|
|
'full_address',
|
|
'phone',
|
|
'is_active',
|
|
'is_pickup_point',
|
|
]
|
|
|
|
list_filter = [
|
|
'is_active',
|
|
'is_pickup_point',
|
|
]
|
|
|
|
search_fields = [
|
|
'name',
|
|
'street',
|
|
'building_number',
|
|
'phone',
|
|
'email',
|
|
]
|
|
|
|
fieldsets = (
|
|
('Основная информация', {
|
|
'fields': ('name', 'description')
|
|
}),
|
|
('Адрес', {
|
|
'fields': ('street', 'building_number')
|
|
}),
|
|
('Контакты', {
|
|
'fields': ('phone', 'email')
|
|
}),
|
|
('Настройки', {
|
|
'fields': ('is_active', 'is_pickup_point')
|
|
}),
|
|
)
|
|
|
|
readonly_fields = ['created_at', 'updated_at']
|
|
|
|
def get_fieldsets(self, request, obj=None):
|
|
"""Добавляем временные метки для существующих объектов"""
|
|
fieldsets = super().get_fieldsets(request, obj)
|
|
if obj: # Если объект уже существует
|
|
fieldsets = fieldsets + (
|
|
('Системная информация', {
|
|
'fields': ('created_at', 'updated_at'),
|
|
'classes': ('collapse',)
|
|
}),
|
|
)
|
|
return fieldsets
|