Send approval/deapproval mail from with in the admin site
authorMagnus Hagander <magnus@hagander.net>
Thu, 30 Jul 2009 14:44:36 +0000 (16:44 +0200)
committerMagnus Hagander <magnus@hagander.net>
Thu, 30 Jul 2009 14:44:36 +0000 (16:44 +0200)
hamnadmin/register/admin.py
hamnadmin/register/views.py

index 420e986a71ef5aa28f3a01258f7d81ca2c83972c..17cc2c29e2b8798a8c3c1669263bf774542176a1 100644 (file)
@@ -1,9 +1,32 @@
 from django.contrib import admin
+from django import forms
+from django.core.mail import send_mail
+from django.conf import settings
+
 from hamnadmin.register.models import *
 
+class BlogAdminForm(forms.ModelForm):
+       class Meta:
+               model = Blog
+
+       def clean_approved(self):
+               if self.cleaned_data['approved'] != self.instance.approved:
+                       # Approved flag has changed, send an email
+                       send_mail('A planet blog has been %s' % (
+                               self.cleaned_data['approved'] and 'approved' or 'de-approved',
+                               ),
+                               "The blog %s (for user %s, userid %s) has been %s." % (
+                                       self.cleaned_data['feedurl'],
+                                       self.cleaned_data['name'],
+                                       self.cleaned_data['userid'],
+                                       self.cleaned_data['approved'] and 'approved' or 'de-approved',
+                               ), 'webmaster@postgresql.org', [settings.NOTIFYADDR])
+               return self.cleaned_data['approved']
+
 class BlogAdmin(admin.ModelAdmin):
-       list_display = ['approved', 'userid', 'name', 'feedurl', 'authorfilter', ]
+       list_display = ['userid', 'approved', 'name', 'feedurl', 'authorfilter', ]
        ordering = ['approved', 'name', ] #meh, multiple ordering not supported
+       form = BlogAdminForm
 
 admin.site.register(Team)
 admin.site.register(Blog, BlogAdmin)
index d22cc5fe9825d6f9b5ef2ceab9ebc4979c72aadf..f8d1cc61df87a6baf214abe3a12bcb538441c5c7 100644 (file)
@@ -103,6 +103,7 @@ The user '%s' has requested the blog at
 is added to Planet PostgreSQL!
 
 So, head off to the admin interface and approve or reject this!
+http://planet.postgresql.org/register/admin/register/blog/
 """ % (blog.userid, blog.feedurl, blog.name), 'webmaster@postgresql.org', [settings.NOTIFYADDR])
 
        blog.save()