from django.contrib import admin
from qrurls.models import URL, URLItem
import django.utils.html
class URLItemInline (admin.TabularInline) :
model = URLItem
class URLAdmin (admin.ModelAdmin) :
def qrcode_url (self, obj) :
warn = None
if obj.shorturl.upper() != obj.shorturl :
warn = "Shorturl should be UPPERCASE for most compact QR code"
return '<a href="{url}">{url}</a>{warn}'.format(
url = django.utils.html.escape(obj.qrcode_url()),
warn = '<p class="errornote">{warn}</p>'.format(warn=warn) if warn else '',
)
qrcode_url.allow_tags = True
def qrcode_img (self, obj) :
return '<img src="{img}" />'.format(
img=django.utils.html.escape(obj.qrcode_img()),
)
qrcode_img.allow_tags = True
readonly_fields = (
'qrcode_url',
'qrcode_img',
'active_item',
'upcoming_item',
)
list_display = (
'get_absolute_url',
'active_item',
'upcoming_item',
)
fieldsets = (
(None, {
'fields': ('shorturl', 'active_item', 'upcoming_item')
}),
("QRCode", {
'fields': ('qrcode_url', 'qrcode_img'),
}),
)
inlines = (URLItemInline, )
class URLItemAdmin (admin.ModelAdmin) :
list_display = (
'shorturl', 'get_absolute_url', 'published_state',
)
readonly_fields = ('published_state',)
fieldsets = (
("Publishing", {
'fields': ('shorturl', 'published', ),
}),
("Target", {
'fields': ('url', ),
}),
)
admin.site.register(URL, URLAdmin)
admin.site.register(URLItem, URLItemAdmin)