from django.contrib import admin from django import forms from .models import LuxImage, LuxGallery, LuxImageSize, LuxVideo from django.shortcuts import render from django.contrib.admin import helpers from django.http import HttpResponseRedirect from utils.widgets import OLAdminBase @admin.register(LuxImageSize) class LuxImageSizeAdmin(admin.ModelAdmin): list_display = ('name','slug', 'width', 'height', 'quality') @admin.register(LuxVideo) class LuxVideoAdmin(OLAdminBase): pass @admin.register(LuxImage) class LuxImageAdmin(OLAdminBase): list_display = ('pk', 'admin_thumbnail', 'pub_date', 'caption', 'location') list_filter = ('pub_date', 'location') search_fields = ['title', 'caption', 'alt'] list_editable = ('location',) fieldsets = ( (None, { 'fields': ( 'image', 'alt', 'sizes', 'caption', 'pub_date', 'point', ) }), ('Exif and Other Data', { 'classes': ('collapse',), 'fields': ( ('is_public'), ('photo_credit_source', 'photo_credit_url'), 'exif_raw', 'exif_aperture', 'exif_make', 'exif_model', 'exif_exposure', 'exif_iso', 'exif_focal_length', 'exif_lens', 'exif_date', 'height', 'width'), }), ) def save_related(self, request, form, formsets, change): super(LuxImageAdmin, self).save_related(request, form, formsets, change) if not form.instance.sizes.all(): print("there are no sizes") form.instance.sizes.add(*LuxImageSize.objects.filter(slug__in=["picwide-sm", "picwide-med", "picwide"])) class Media: js = ('image-preview.js', 'next-prev-links.js')