annotate banners/admin.py @ 629:f4c043cf55ac

Wiki integration. Requests don't always have sessions. In particular this occurs when a request is made without a trailing slash. The Common middleware redirects when this happens, and the middleware process_request() processing stops before a session can get added. So just set an attribute on the request object for each operation. This seemed weird to me at first, but there are plenty of examples of this in the Django code base already.
author Brian Neal <bgneal@gmail.com>
date Tue, 13 Nov 2012 13:50:06 -0600
parents ee87ea74d46b
children
rev   line source
bgneal@558 1 """
bgneal@558 2 This file contains the automatic admin site definitions for the banners models.
bgneal@558 3
bgneal@558 4 """
bgneal@558 5 from django.contrib import admin
bgneal@558 6
bgneal@558 7 from banners.models import Campaign, Banner
bgneal@558 8
bgneal@558 9
bgneal@558 10 class BannerInline(admin.TabularInline):
bgneal@558 11 model = Banner
bgneal@558 12 extra = 1
bgneal@558 13
bgneal@558 14
bgneal@558 15 class CampaignAdmin(admin.ModelAdmin):
bgneal@558 16 prepopulated_fields = {'slug': ['name']}
bgneal@558 17 list_display = ['name', 'slug', 'creation_date']
bgneal@558 18 date_hierarchy = 'creation_date'
bgneal@558 19 search_fields = ['name']
bgneal@558 20 inlines = [BannerInline]
bgneal@558 21
bgneal@558 22
bgneal@558 23 class BannerAdmin(admin.ModelAdmin):
bgneal@558 24 list_display = ['campaign', 'description', 'image_tag', 'creation_date']
bgneal@558 25 date_hierarchy = 'creation_date'
bgneal@558 26 search_fields = ['description']
bgneal@558 27 list_filter = ['campaign']
bgneal@558 28
bgneal@558 29 def image_tag(self, obj):
bgneal@558 30 return '<img src="%s" alt="%s" />' % (obj.image.url, obj.description)
bgneal@558 31 image_tag.allow_tags = True
bgneal@558 32
bgneal@558 33 admin.site.register(Campaign, CampaignAdmin)
bgneal@558 34 admin.site.register(Banner, BannerAdmin)