bgneal@820: """Admin definitions for the bandmap application. bgneal@820: bgneal@820: """ bgneal@823: import datetime bgneal@823: bgneal@820: from django.contrib import admin bgneal@820: bgneal@820: from bandmap.models import BandEntry bgneal@823: import bio.badges bgneal@820: bgneal@820: bgneal@820: class BandEntryAdmin(admin.ModelAdmin): bgneal@820: list_display = ['name', 'date_submitted', 'date_approved', 'is_active', bgneal@820: 'is_approved'] bgneal@820: date_hierarchy = 'date_submitted' bgneal@820: list_filter = ['date_submitted', 'is_active', 'is_approved'] bgneal@820: readonly_fields = ['lat', 'lon'] bgneal@820: search_fields = ['name', 'location', 'note'] bgneal@820: raw_id_fields = ['user'] bgneal@823: actions = ['approve_bands'] bgneal@823: bgneal@823: def approve_bands(self, request, qs): bgneal@823: """This admin action awards a map pin to the user who added the band. bgneal@823: The band is then published and will be available for display on the map. bgneal@823: bgneal@823: """ bgneal@823: count = qs.count() bgneal@823: now = datetime.datetime.now() bgneal@823: for band in qs: bgneal@823: bio.badges.award_badge(bio.badges.MAP_PIN, band.user) bgneal@823: band.date_approved = now bgneal@823: band.is_approved = True bgneal@823: band.save() bgneal@823: bgneal@823: self.message_user(request, "%d band(s) approved." % count) bgneal@823: bgneal@823: approve_bands.short_description = "Approve selected band map entries" bgneal@823: bgneal@820: bgneal@820: admin.site.register(BandEntry, BandEntryAdmin)