union_auto_test/core/admin.py

206 lines
6.0 KiB
Python
Raw Normal View History

2026-01-10 09:45:10 +00:00
from django.contrib import admin, messages
from django.db import transaction
from django.urls import reverse
from django.utils import timezone
from django.utils.safestring import mark_safe
from adminsortable2.admin import SortableAdminMixin
from reversion.admin import VersionAdmin
from core.models import (TransportBrand, TransportModel, MachineryBrand, MachineryModel,
TransportExperience, MachineryExperience, StockAuto, Rate, ColorFilter, MainLot,
KoreaLot, MachineryLot, MachineryFilter, Question, Article, Review,
Video, Category, Banner, StaticBlock, StaticPage, Document, SeoAbove,
FormRequest, City, ImportType, EngineType, BitrixEmployee, Lead, Contact)
@admin.register(TransportBrand)
class TransportBrandAdmin(SortableAdminMixin, VersionAdmin):
list_display = ('db_id', 'title', 'order',)
search_fields = ('db_id', 'title',)
@admin.register(Category)
class CategoryAdmin(SortableAdminMixin, VersionAdmin):
list_display = ('title', 'order',)
@admin.register(TransportModel)
class TransportModelAdmin(SortableAdminMixin, VersionAdmin):
list_display = ('brand', 'db_id', 'title', 'order',)
search_fields = ('db_id', 'title', 'brand__db_id', 'brand__title',)
list_filter = ('category',)
@admin.register(MachineryBrand)
class MachineryBrandAdmin(SortableAdminMixin, VersionAdmin):
list_display = ('db_id', 'title', 'order',)
search_fields = ('db_id', 'title',)
@admin.register(MachineryModel)
class MachineryModelAdmin(SortableAdminMixin, VersionAdmin):
list_display = ('brand', 'title', 'order',)
search_fields = ('title', 'brand__db_id', 'brand__title',)
@admin.register(TransportExperience)
class TransportExperienceAdmin(SortableAdminMixin, VersionAdmin):
change_form_template = "admin/transport_experience_change_form.html"
list_display = ('brand', 'transport_model', 'get_thumbnail', 'order',)
search_fields = ('brand__title', 'transport_model__title',)
autocomplete_fields = ('brand',)
@admin.register(MachineryExperience)
class MachineryExperienceAdmin(SortableAdminMixin, VersionAdmin):
change_form_template = "admin/machinery_experience_change_form.html"
list_display = ('brand', 'transport_model', 'get_thumbnail', 'order',)
search_fields = ('brand__title', 'transport_model__title',)
autocomplete_fields = ('brand',)
@admin.register(StockAuto)
class StockAutoAdmin(SortableAdminMixin, VersionAdmin):
change_form_template = "admin/stock_auto_change_form.html"
list_display = ('brand', 'transport_model', 'price', 'get_thumbnail', 'city', 'is_active', 'on_main', 'order',)
search_fields = ('brand__title', 'transport_model__title',)
autocomplete_fields = ('brand',)
exclude = ('auction_price',)
list_filter = ('is_active', 'on_main',)
list_editable = ('is_active', 'on_main', 'price')
@admin.register(Rate)
class RateAdmin(VersionAdmin):
list_display = ('slug', 'rate',)
@admin.register(ColorFilter)
class ColorAdmin(SortableAdminMixin, VersionAdmin):
list_display = ('title', 'contain', 'order',)
@admin.register(MainLot)
class MainLotAdmin(VersionAdmin):
list_display = ('year',)
@admin.register(KoreaLot)
class KoreaLotAdmin(VersionAdmin):
list_display = ('year',)
@admin.register(MachineryLot)
class MachineryLotAdmin(VersionAdmin):
list_display = ('year',)
@admin.register(MachineryFilter)
class MachineryFilterAdmin(SortableAdminMixin, VersionAdmin):
list_display = ('title', 'order',)
filter_horizontal = ('groups',)
@admin.register(Article)
class ArticleAdmin(VersionAdmin):
list_display = ('title', 'is_active',)
list_filter = ('is_active',)
@admin.register(Question)
class QuestionAdmin(SortableAdminMixin, VersionAdmin):
list_display = ('title', 'is_active', 'order',)
list_filter = ('is_active',)
@admin.register(Review)
class ReviewAdmin(VersionAdmin):
list_display = ('name', 'date', 'is_active', 'on_main', 'get_thumbnail')
list_filter = ('is_active', 'on_main',)
@admin.register(Video)
class VideoAdmin(SortableAdminMixin, VersionAdmin):
list_display = ('title', 'is_active', 'on_main', 'order')
list_filter = ('is_active', 'on_main',)
@admin.register(Banner)
class BannerAdmin(VersionAdmin):
list_display = ('title', 'is_active', 'get_thumbnail')
list_filter = ('is_active',)
@admin.register(StaticPage)
class StaticPagesAdmin(VersionAdmin):
list_display = ('title', 'slug',)
@admin.register(Document)
class DocumentAdmin(VersionAdmin):
list_display = ('title',)
@admin.register(StaticBlock)
class StaticBlockAdmin(VersionAdmin):
list_display = ('title', 'content')
@admin.register(SeoAbove)
class SeoAboveAdmin(VersionAdmin):
list_display = ('h1', 'slug')
list_display_links = ('h1', 'slug')
@admin.register(FormRequest)
class FormRequestAdmin(VersionAdmin):
list_display = ('name', 'phone', 'created_at',)
@admin.register(City)
class CityAdmin(SortableAdminMixin, VersionAdmin):
list_display = ('title', 'slug', 'order',)
list_editable = ('slug',)
search_fields = ('title',)
@admin.register(ImportType)
class ImportTypeAdmin(SortableAdminMixin, VersionAdmin):
list_display = ('title', 'slug', 'order',)
list_editable = ('slug',)
search_fields = ('title',)
@admin.register(EngineType)
class EngineTypeAdmin(SortableAdminMixin, VersionAdmin):
list_display = ('title', 'slug', 'order',)
list_editable = ('slug',)
search_fields = ('title',)
@admin.register(BitrixEmployee)
class BitrixEmployeeAdmin(VersionAdmin):
list_display = ('bitrix_id', 'active', 'updated_at')
@admin.register(Lead)
class LeadAdmin(VersionAdmin):
list_display = ('contact', 'bitrix_id',)
search_fields = ('contact__phone',)
def has_module_permission(self, request):
return False
@admin.register(Contact)
class ContactAdmin(VersionAdmin):
list_display = ('phone', 'bitrix_id',)
search_fields = ('phone',)
def has_module_permission(self, request):
return False