gremmie@1
|
1 """
|
gremmie@1
|
2 This file contains the automatic admin site definitions for the Message models.
|
gremmie@1
|
3 """
|
bgneal@299
|
4 from django.contrib import admin
|
bgneal@810
|
5 from django.core.urlresolvers import reverse
|
gremmie@1
|
6
|
bgneal@810
|
7 from messages.models import Flag, Message, Options
|
bgneal@810
|
8 import bio.badges
|
gremmie@1
|
9
|
bgneal@299
|
10
|
bgneal@299
|
11 class MessageAdmin(admin.ModelAdmin):
|
bgneal@810
|
12 list_display = ['sender', 'receiver', 'send_date', 'subject']
|
bgneal@810
|
13 raw_id_fields = ['sender', 'receiver']
|
bgneal@810
|
14 exclude = ['html']
|
bgneal@299
|
15 date_hierarchy = 'send_date'
|
bgneal@810
|
16 list_display_links = ['subject']
|
bgneal@299
|
17
|
bgneal@810
|
18
|
bgneal@810
|
19 class FlagAdmin(admin.ModelAdmin):
|
bgneal@810
|
20 list_display = ['__unicode__', 'flag_date', 'message_link']
|
bgneal@810
|
21 date_hierarchy = 'flag_date'
|
bgneal@810
|
22 list_select_related = True
|
bgneal@810
|
23 readonly_fields = ['message', 'flag_date', 'comments', 'message_text']
|
bgneal@810
|
24 actions = ['accept_flags']
|
bgneal@810
|
25
|
bgneal@810
|
26 def message_link(self, obj):
|
bgneal@810
|
27 return '<a href="{}">Message</a>'.format(
|
bgneal@810
|
28 reverse('admin:messages_message_change', args=[obj.message.id]))
|
bgneal@810
|
29 message_link.allow_tags = True
|
bgneal@810
|
30 message_link.short_description = 'Message'
|
bgneal@810
|
31
|
bgneal@810
|
32 def message_text(self, obj):
|
bgneal@810
|
33 return obj.message.html
|
bgneal@810
|
34 message_text.allow_tags = True
|
bgneal@810
|
35 message_text.short_description = 'Message text'
|
bgneal@810
|
36
|
bgneal@810
|
37 def accept_flags(self, request, qs):
|
bgneal@810
|
38 """This admin action awards a security pin to the user who reported the
|
bgneal@810
|
39 message and then deletes the flag object.
|
bgneal@810
|
40
|
bgneal@810
|
41 """
|
bgneal@810
|
42 count = qs.count()
|
bgneal@810
|
43 for flag in qs:
|
bgneal@810
|
44 bio.badges.award_badge(bio.badges.SECURITY_PIN, flag.message.receiver)
|
bgneal@810
|
45 flag.delete()
|
bgneal@810
|
46
|
bgneal@810
|
47 self.message_user(request,
|
bgneal@810
|
48 "%s flag(s) acknowledged. You may want to mark users as spammers now." % count)
|
bgneal@810
|
49
|
bgneal@810
|
50 accept_flags.short_description = "Accept selected flags"
|
bgneal@810
|
51
|
bgneal@810
|
52 admin.site.register(Flag, FlagAdmin)
|
bgneal@299
|
53 admin.site.register(Message, MessageAdmin)
|
gremmie@1
|
54 admin.site.register(Options)
|