Mercurial > public > madeira
diff mysite/band/admin_views.py @ 1:0dcfcdf50c62
Initial import of Madeira project from the private repository.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Mon, 06 Apr 2009 03:10:59 +0000 |
parents | |
children | 3e22a6fde2d2 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mysite/band/admin_views.py Mon Apr 06 03:10:59 2009 +0000 @@ -0,0 +1,77 @@ +####################################################################### +# +# PyBand Copyright (C) 2008 by Brian Neal +# +####################################################################### +from django import forms +from django.core.urlresolvers import reverse +from django.core.mail import EmailMessage +from django.template import RequestContext +from django.http import HttpResponseRedirect +from django.shortcuts import render_to_response +from django.contrib.admin.views.decorators import staff_member_required + +from mysite.band.models import SiteConfig +from mysite.band.models import Fan + +####################################################################### + +unsubscribeText = ''' + +---- +You are receiving this message because you are subscribed to our mailing list. +If you would like to unsubscribe please visit %s. +''' + +####################################################################### + +class EmailForm(forms.Form): + subject = forms.CharField(max_length = 255, required = True, label = 'Subject:', + widget = forms.TextInput(attrs = {'class' : 'vTextField required', 'size' : '60'})) + message = forms.CharField(label = 'Message:', + widget = forms.Textarea(attrs = {'class' : 'vLargeTextField required'})) + +####################################################################### + +def email_sent(request): + return render_to_response('admin/band/email_sent.html', + {}, + context_instance = RequestContext(request)) + +####################################################################### + +def email(request): + + config = SiteConfig.objects.get(pk = 1) + bandTag = '[%s] ' % (config.band_name, ) + + if request.method == 'POST': + form = EmailForm(request.POST) + if form.is_valid(): + subject = form.cleaned_data['subject'] + message = form.cleaned_data['message'] + + unsubscribeUrl = config.url + if unsubscribeUrl[-1] != '/': + unsubscribeUrl += '/' + unsubscribeUrl += 'contact' + + footer = unsubscribeText % (unsubscribeUrl, ) + message += footer + + fans = Fan.objects.all() + bcc = [fan.email for fan in fans] + + email = EmailMessage(subject, message, config.contact_email, + [config.contact_email], bcc) + email.send() + return HttpResponseRedirect(reverse(email_sent)) + + else: + form = EmailForm(initial = { 'subject' : bandTag }) + + return render_to_response('admin/band/email.html', + { 'form' : form }, + context_instance = RequestContext(request)) + +email = staff_member_required(email)