from django.contrib import admin
from .models import *
from unfold.admin import ModelAdmin as UnfoldModelAdmin
from import_export.admin import ImportExportModelAdmin
from unfold.contrib.import_export.forms import ExportForm, ImportForm, SelectableFieldsExportForm
from unfold.contrib.forms.widgets import ArrayWidget, WysiwygWidget
from django.contrib.postgres.fields import ArrayField
from unfold.decorators import action, display
from django.utils.html import format_html
from unfold.decorators import display
from utils.admin import ModelAdmin
from unfold.contrib.filters.admin import ChoicesDropdownFilter
@admin.register(ShowCaseSlider)
class ShowCaseSliderAdmin(ModelAdmin, ImportExportModelAdmin):
import_form_class = ImportForm
export_form_class = ExportForm
search_fields = ['title']
compressed_fields = False
warn_unsaved_form = True
formfield_overrides = {
ArrayField: {
"widget": ArrayWidget,
}
}
@admin.register(LearnVideoModel)
class LearnVideoAdmin(UnfoldModelAdmin):
list_display = ['title', 'section', 'display_viewd']
search_fields = ['title', 'section', 'content_type__app_label']
# autocomplete_fields = ['section']
compressed_fields = False
list_filter = ['viewd', 'section']
warn_unsaved_form = True
list_filter_submit = True
change_form_template = 'video_change_form_after.html'
formfield_overrides = {
ArrayField: {
"widget": ArrayWidget,
}
}
def has_delete_permission(self, request, obj=None):
return request.user.video_uploader
def has_add_permission(self, request, obj=None):
return request.user.video_uploader
@display(description='دیده شده')
def display_viewd(self, instance):
if instance.viewd:
svg = f''
else:
svg = f''
return format_html(
svg
)
@admin.register(SliderModel)
class SliderAdmin(ModelAdmin, ImportExportModelAdmin):
import_form_class = ImportForm
export_form_class = ExportForm
search_fields = ['description', 'title']
compressed_fields = False
warn_unsaved_form = True
formfield_overrides = {
ArrayField: {
"widget": ArrayWidget,
}
}
@admin.register(HomeImageModel)
class HomeImageAdmin(ModelAdmin, ImportExportModelAdmin):
import_form_class = ImportForm
export_form_class = ExportForm
compressed_fields = True
warn_unsaved_form = True
formfield_overrides = {
ArrayField: {
"widget": ArrayWidget,
}
}