Mercurial > public > sg101
view messages/admin.py @ 821:71db8076dc3d
Bandmap WIP: geocoding integrated with add form.
Add form works. Before submitting the form, client side JS makes
a geocode request to Google and populates hidden lat/lon fields
with the result. Successfully created a model instance on the
server side.
Still need to update admin dashboard, admin approval, and give
out badges for adding bands to the map. Once that is done, then
work on displaying the map with filtering.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Tue, 23 Sep 2014 20:40:31 -0500 |
parents | 4a4fa174a0ec |
children |
line wrap: on
line source
""" This file contains the automatic admin site definitions for the Message models. """ from django.contrib import admin from django.core.urlresolvers import reverse from messages.models import Flag, Message, Options import bio.badges class MessageAdmin(admin.ModelAdmin): list_display = ['sender', 'receiver', 'send_date', 'subject'] raw_id_fields = ['sender', 'receiver'] exclude = ['html'] date_hierarchy = 'send_date' list_display_links = ['subject'] class FlagAdmin(admin.ModelAdmin): list_display = ['__unicode__', 'flag_date', 'message_link'] date_hierarchy = 'flag_date' list_select_related = True readonly_fields = ['message', 'flag_date', 'comments', 'message_text'] actions = ['accept_flags'] def message_link(self, obj): return '<a href="{}">Message</a>'.format( reverse('admin:messages_message_change', args=[obj.message.id])) message_link.allow_tags = True message_link.short_description = 'Message' def message_text(self, obj): return obj.message.html message_text.allow_tags = True message_text.short_description = 'Message text' def accept_flags(self, request, qs): """This admin action awards a security pin to the user who reported the message and then deletes the flag object. """ count = qs.count() for flag in qs: bio.badges.award_badge(bio.badges.SECURITY_PIN, flag.message.receiver) flag.delete() self.message_user(request, "%s flag(s) acknowledged. You may want to mark users as spammers now." % count) accept_flags.short_description = "Accept selected flags" admin.site.register(Flag, FlagAdmin) admin.site.register(Message, MessageAdmin) admin.site.register(Options)