view email_list/admin.py @ 130:3062c547bb90

For Django 1.6: new test discovery plus reverse now does urlquote(). My base64 keys were padded with '=' and these got quoted when doing a reverse to generate the URL. So changed the test to look for a quoted version of the key. This will change the URLs sent to users, but I believe it will all be taken care of by Django.
author Brian Neal <bgneal@gmail.com>
date Tue, 24 Dec 2013 16:47:27 -0600
parents e2868ad47a1e
children 312f198e8958
line wrap: on
line source
"""
Automatic admin definitions for the email_list application.

"""
from django.contrib import admin
from django.conf.urls import patterns, url
from django.shortcuts import render, redirect

from email_list.models import Subscriber
from email_list.forms import AdminEmailForm


class SubscriberAdmin(admin.ModelAdmin):
    list_display = ['__unicode__', 'location', 'status']
    list_filter = ['status']
    search_fields = ['name', 'email']

    def get_urls(self):
        urls = super(SubscriberAdmin, self).get_urls()
        my_urls = patterns('',
            url(r'^send_mail/$',
                self.admin_site.admin_view(self.send_mail),
                name='email_list-admin_mail'),
        )
        return my_urls + urls

    def send_mail(self, request):
        if request.method == 'POST':
            form = AdminEmailForm(request.POST)
            if form.is_valid():
                n = form.save()
                msg = '%d mailing list emails sent' % n
                self.message_user(request, msg)
                return redirect('admin:index')
        else:
            form = AdminEmailForm()

        return render(request, 'email_list/admin_mail.html', {'form': form})


admin.site.register(Subscriber, SubscriberAdmin)