summaryrefslogtreecommitdiff
path: root/app/media/admin.py
blob: 2ccce29a40f9f80bcde5c5f4e59c30c884d1b52a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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')