qrurls/admin.py
author Tero Marttila <terom@fixme.fi>
Mon, 15 Jul 2013 02:34:23 +0300
changeset 4 d56f48f6c94b
parent 3 e7d3f1a28b24
child 6 e821a59bf3a7
permissions -rw-r--r--
URL: show qrcode for URL in admin (using google charts)
2
e838dda048a6 qrurls: basic functionality
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
from django.contrib import admin
e838dda048a6 qrurls: basic functionality
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
from qrurls.models import URL, URLItem
4
d56f48f6c94b URL: show qrcode for URL in admin (using google charts)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
     3
import django.utils.html
2
e838dda048a6 qrurls: basic functionality
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     4
3
e7d3f1a28b24 touchup admin ui
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
     5
class URLItemInline (admin.TabularInline) :
e7d3f1a28b24 touchup admin ui
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
     6
    model = URLItem
e7d3f1a28b24 touchup admin ui
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
     7
2
e838dda048a6 qrurls: basic functionality
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     8
class URLAdmin (admin.ModelAdmin) :
4
d56f48f6c94b URL: show qrcode for URL in admin (using google charts)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
     9
    def qrcode_img (self, obj) :
d56f48f6c94b URL: show qrcode for URL in admin (using google charts)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
    10
        return '<img src="{img}" />'.format(
d56f48f6c94b URL: show qrcode for URL in admin (using google charts)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
    11
                img=django.utils.html.escape(obj.qrcode_img()),
d56f48f6c94b URL: show qrcode for URL in admin (using google charts)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
    12
        )
d56f48f6c94b URL: show qrcode for URL in admin (using google charts)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
    13
    qrcode_img.allow_tags = True
d56f48f6c94b URL: show qrcode for URL in admin (using google charts)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
    14
d56f48f6c94b URL: show qrcode for URL in admin (using google charts)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
    15
    readonly_fields = (
d56f48f6c94b URL: show qrcode for URL in admin (using google charts)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
    16
        'qrcode_url',
d56f48f6c94b URL: show qrcode for URL in admin (using google charts)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
    17
        'qrcode_img',
d56f48f6c94b URL: show qrcode for URL in admin (using google charts)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
    18
    )
2
e838dda048a6 qrurls: basic functionality
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    19
    list_display = (
e838dda048a6 qrurls: basic functionality
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    20
        'shorturl',
e838dda048a6 qrurls: basic functionality
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    21
    )
4
d56f48f6c94b URL: show qrcode for URL in admin (using google charts)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
    22
    fieldsets = (
d56f48f6c94b URL: show qrcode for URL in admin (using google charts)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
    23
        (None, {
d56f48f6c94b URL: show qrcode for URL in admin (using google charts)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
    24
            'fields': ('shorturl', )
d56f48f6c94b URL: show qrcode for URL in admin (using google charts)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
    25
        }),
d56f48f6c94b URL: show qrcode for URL in admin (using google charts)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
    26
        ("QRCode", {
d56f48f6c94b URL: show qrcode for URL in admin (using google charts)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
    27
            'fields': ('qrcode_url', 'qrcode_img', ),
d56f48f6c94b URL: show qrcode for URL in admin (using google charts)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
    28
        }),
d56f48f6c94b URL: show qrcode for URL in admin (using google charts)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
    29
    )
3
e7d3f1a28b24 touchup admin ui
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
    30
    inlines = (URLItemInline, )
2
e838dda048a6 qrurls: basic functionality
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    31
e838dda048a6 qrurls: basic functionality
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    32
class URLItemAdmin (admin.ModelAdmin) :
e838dda048a6 qrurls: basic functionality
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    33
    list_display = (
3
e7d3f1a28b24 touchup admin ui
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
    34
        'shorturl', 'published', 'get_absolute_url',
e7d3f1a28b24 touchup admin ui
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
    35
    )
e7d3f1a28b24 touchup admin ui
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
    36
    fieldsets = (
e7d3f1a28b24 touchup admin ui
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
    37
        ("Publishing", {
e7d3f1a28b24 touchup admin ui
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
    38
            'fields': ('shorturl', 'published', ),
e7d3f1a28b24 touchup admin ui
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
    39
        }),
e7d3f1a28b24 touchup admin ui
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
    40
        ("Target", {
e7d3f1a28b24 touchup admin ui
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
    41
            'fields': ('url', ),
e7d3f1a28b24 touchup admin ui
Tero Marttila <terom@fixme.fi>
parents: 2
diff changeset
    42
        }),
2
e838dda048a6 qrurls: basic functionality
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    43
    )
e838dda048a6 qrurls: basic functionality
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    44
e838dda048a6 qrurls: basic functionality
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    45
admin.site.register(URL, URLAdmin)
e838dda048a6 qrurls: basic functionality
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    46
admin.site.register(URLItem, URLItemAdmin)