🚀 MEGA UPDATE: Объединение всех изменений для продакшена
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
✨ НОВЫЕ ФУНКЦИИ: - 🎬 Поддержка видео в Hero баннерах и услугах - 💊 Водная анимация пилюль маркеров банеров - 📱 Полная главная страница с портфолио, блогом, новостями - 🎯 HeroBanner модель с видео/изображениями - 🎨 Современные hover-эффекты и анимации 📊 УЛУЧШЕНИЯ СТРУКТУРЫ: - Расширенная home_modern.html с полным контентом - Новые URL маршруты для всех секций - Обновленные views с передачей всех данных - CSS стили для всех новых секций - Миграции для видео полей 🎪 HERO БАНЕР СИСТЕМА: - Динамические банеры с видео/фото фонами - Пилюли маркеры с водной анимацией - Растягивание маркеров от центра - Адаптивный дизайн для мобильных - Glassmorphism эффекты 🎨 СОВРЕМЕННЫЙ ДИЗАЙН: - Hover анимации для карточек - Плавные переходы везде - Современная типографика - Градиенты и тени - Отзывчивая сетка Готов к продакшену! 🚀
This commit is contained in:
@@ -1,18 +1,40 @@
|
||||
from django.contrib import admin
|
||||
from .models import Service, Project, Client, Order, Review, BlogPost, Category, ServiceRequest
|
||||
from .models import Service, Project, Client, Order, Review, BlogPost, Category, ServiceRequest, HeroBanner
|
||||
from .forms import ProjectForm
|
||||
|
||||
@admin.register(HeroBanner)
|
||||
class HeroBannerAdmin(admin.ModelAdmin):
|
||||
list_display = ('title', 'is_active', 'order', 'created_at')
|
||||
list_filter = ('is_active', 'created_at')
|
||||
search_fields = ('title', 'subtitle')
|
||||
fields = ('title', 'subtitle', 'description', 'image', 'video', 'video_poster',
|
||||
'button_text', 'button_link', 'is_active', 'order')
|
||||
list_editable = ('is_active', 'order')
|
||||
|
||||
@admin.register(Service)
|
||||
class ServiceAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'category', 'price')
|
||||
list_display = ('name', 'category', 'price', 'has_video')
|
||||
search_fields = ('name', 'category')
|
||||
fields = ('name', 'description', 'price', 'category', 'image', 'video', 'video_poster')
|
||||
|
||||
def has_video(self, obj):
|
||||
return bool(obj.video)
|
||||
has_video.boolean = True
|
||||
has_video.short_description = 'Есть видео'
|
||||
|
||||
@admin.register(Project)
|
||||
class ProjectAdmin(admin.ModelAdmin):
|
||||
form = ProjectForm
|
||||
list_display = ('name', 'client','service', 'status', 'order', 'description')
|
||||
list_display = ('name', 'client','service', 'status', 'order', 'has_video')
|
||||
list_filter = ('name', 'client','service', 'status', 'order')
|
||||
search_fields = ('name', 'client','service', 'status', 'order', 'client__first_name', 'client__last_name')
|
||||
fields = ('name', 'description', 'completion_date', 'client', 'service', 'order',
|
||||
'category', 'image', 'video', 'video_poster', 'status')
|
||||
|
||||
def has_video(self, obj):
|
||||
return bool(obj.video)
|
||||
has_video.boolean = True
|
||||
has_video.short_description = 'Есть видео'
|
||||
|
||||
@admin.register(Client)
|
||||
class ClientAdmin(admin.ModelAdmin):
|
||||
@@ -27,14 +49,26 @@ class OrderAdmin(admin.ModelAdmin):
|
||||
|
||||
@admin.register(Review)
|
||||
class ReviewAdmin(admin.ModelAdmin):
|
||||
list_display = ('client', 'service', 'rating', 'review_date')
|
||||
list_display = ('client', 'service', 'rating', 'review_date', 'has_video')
|
||||
list_filter = ('rating',)
|
||||
search_fields = ('client__first_name', 'service__name')
|
||||
fields = ('client', 'service', 'project', 'rating', 'comment', 'image', 'video', 'video_poster')
|
||||
|
||||
def has_video(self, obj):
|
||||
return bool(obj.video)
|
||||
has_video.boolean = True
|
||||
has_video.short_description = 'Есть видео'
|
||||
|
||||
@admin.register(BlogPost)
|
||||
class BlogPostAdmin(admin.ModelAdmin):
|
||||
list_display = ('title', 'published_date')
|
||||
list_display = ('title', 'published_date', 'has_video')
|
||||
search_fields = ('title',)
|
||||
fields = ('title', 'content', 'image', 'video', 'video_poster')
|
||||
|
||||
def has_video(self, obj):
|
||||
return bool(obj.video)
|
||||
has_video.boolean = True
|
||||
has_video.short_description = 'Есть видео'
|
||||
|
||||
@admin.register(Category)
|
||||
class CategoryAdmin(admin.ModelAdmin):
|
||||
|
||||
Reference in New Issue
Block a user