#!/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 *

EXCLUDE = ['Authors', 'Reviewers', 'Organizers']
SUBJECT = "PyCon 2007 - Call For Proposals Reminder"
MESSAGE = """
Reminder: The deadline for submitting a proposal for PyCon 2007 is
October 31st. 

The web application for submitting proposals to PyCon 2007 is at
<http://us.pycon.org/apps07/proposals/>.

For more information, see the Call For Proposals at
<http://us.pycon.org/TX2007/CallForProposals>.

Andrew M. Kuchling
amk@amk.ca
Co-chair, PyCon 2007
http://us.pycon.org 
"""

FROM = 'amk@amk.ca'

def send_reminder(*to):
    mailings = [ (SUBJECT, MESSAGE, FROM, [addr]) for addr in to ]
    return mail.send_mass_mail(mailings)

def get_unassigned_addresses():
    exclude = set([''])
    for group in EXCLUDE:
        users = Group.objects.get(name=group).user_set.all()
        exclude |= set(user.email for user in users)
    addrs = set(user.email for user in User.objects.all()) - exclude
    return tuple(addrs)

def send_to_unassigned():
    addrs = get_unassigned_addresses()
    if not addrs:
        print "No unassigned addresses."
    print "Sending to %d addresses" % len(addrs)
    sent = send_reminder(*addrs)
    print "Sent %d e-mails" % sent
    
if __name__ == '__main__':
    send_to_unassigned()
    #send_reminder('doug@dougma.com', 'doug.napoleone@nuance.com') #test
    
