#!/usr/bin/env PYTHONPATH="/var/hostings/05pcon0912/us.pycon.org/apps07" DJANGO_SETTINGS_MODULE="pycon.conf.settings" python2.4
import sys, os
sys.path.insert(0, "/var/hostings/05pcon0912/us.pycon.org/apps07")
os.environ['DJANGO_SETTINGS_FILE'] = "pycon.conf.settings"
from django.conf import settings
from pycon.conf import settings as pycon_settings
#settings.configure(default_settings=pycon_settings)

from django.template import RequestContext, Context, loader
from pycon.core import mail
from pycon.propmgr.models import *
from django.contrib.auth.models import *

SUBJECT = "PyCon2007 proposal #%i decision"
FROM = 'pycon@python.org'
TEMPLATE = { 'A': 'propmgr/email/proposal_accepted.txt',
             'D': 'propmgr/email/proposal_declined.txt' }

def send_notices():
    for key, val in TEMPLATE.iteritems():
        TEMPLATE[key] = loader.get_template(val)

    proposals = Proposal.objects.filter(published=False, status__in=['A', 'D'])
    mailings = []
    for  prop in proposals:
        author_emails = [ prop.submitter.email ]
        author_emails.extend(auth.email for auth in prop.coauthors.all())
        t = TEMPLATE[prop.status]
        message = t.render(Context({ 'proposal': prop,
                                     'settings': settings }))
        mailings.append((SUBJECT % prop.id, message, FROM, author_emails))
        #print SUBJECT % prop.id, message, FROM, author_emails
    #return 0
    sent = mail.send_mass_mail(mailings)
    for prop in proposals:
        prop.published = True
        prop.save()
    return sent, len(proposals)
    
if __name__ == '__main__':
    print "%d messages sent for %d proposals" % send_notices()
    
