def process_mailman(self, user, class_id, section_num, user_type): if not (settings.USE_MAILMAN and 'mailman_moderator' in settings.DEFAULT_EMAIL_ADDRESSES.keys()): return try: cls = ClassSubject.objects.get(id=int(class_id)) section = filter(lambda s: s.index() == int(section_num), cls.sections.all())[0] except: return # Create a section list in Mailman, # then bounce this e-mail off to it list_name = "%s-%s" % (section.emailcode(), user_type) create_list(list_name, settings.DEFAULT_EMAIL_ADDRESSES['mailman_moderator']) load_list_settings(list_name, "lists/class_mailman.config") if user_type != "teachers": add_list_members(list_name, section.students()) apply_list_settings(list_name, { 'moderator': [ settings.DEFAULT_EMAIL_ADDRESSES['mailman_moderator'], '%s-teachers@%s' % (cls.emailcode(), Site.objects.get_current().domain), # In theory this is redundant, but it's included just in # case. cls.parent_program.director_email, ], 'owner': [ settings.DEFAULT_EMAIL_ADDRESSES['mailman_moderator'], cls.parent_program.director_email, ], 'subject_prefix': "[%s]" % (cls.parent_program.niceName(),), }) logger.info("Settings applied...") send_mail("[ESP] Activated class mailing list: %s@%s" % (list_name, Site.objects.get_current().domain), render_to_string("mailman/new_list_intro_teachers.txt", { 'classname': str(cls), 'mod_password': set_list_moderator_password(list_name) }), settings.DEFAULT_EMAIL_ADDRESSES['default'], ["%s-teachers@%s" % (cls.emailcode(), Site.objects.get_current().domain), ]) else: apply_list_settings(list_name, {'default_member_moderation': False}) apply_list_settings(list_name, {'generic_nonmember_action': 0}) apply_list_settings(list_name, {'acceptable_aliases': "%s.*-(students|class)-.*@%s" % (cls.emailcode(), Site.objects.get_current().domain)}) apply_list_settings(list_name, {'subject_prefix': "[%s]" % (cls.parent_program.niceName(),)}) logger.info("Settings applied still...") add_list_member(list_name, cls.parent_program.director_email) add_list_members(list_name, cls.get_teachers()) if 'archive' in settings.DEFAULT_EMAIL_ADDRESSES: add_list_member(list_name, settings.DEFAULT_EMAIL_ADDRESSES['archive']) logger.info("Members added") self.recipients = ["%s@%s" % (list_name, Site.objects.get_current().domain)] self.send = True
def process_mailman(self, user, class_id, user_type): try: cls = ClassSubject.objects.get(id=class_id) sections = cls.sections.all() except ESPUser.DoesNotExist: return # Create a class list in Mailman, # then bounce this e-mail off to it list_name = "%s-%s" % (cls.emailcode(), user_type) create_list(list_name, "*****@*****.**") load_list_settings(list_name, "lists/class_mailman.config") if user_type != "teachers": for section in sections: add_list_member(list_name, [x.email for x in section.students()]) apply_list_settings( list_name, { 'moderator': [ '*****@*****.**', '*****@*****.**' % cls.emailcode() ] }) send_mail( "[ESP] Activated class mailing list: %[email protected]" % list_name, render_to_string( "mailman/new_list_intro_teachers.txt", { 'classname': str(cls), 'mod_password': set_list_moderator_password(list_name) }), "*****@*****.**", [ "*****@*****.**" % cls.emailcode(), ]) else: apply_list_settings(list_name, {'default_member_moderation': False}) apply_list_settings(list_name, {'generic_nonmember_action': 0}) apply_list_settings( list_name, { 'acceptable_aliases': "%s.*-students-.*@esp.mit.edu" % (cls.emailcode(), ) }) add_list_member(list_name, [cls.parent_program.director_email]) add_list_member(list_name, [x.email for x in cls.teachers()]) self.recipients = ["*****@*****.**" % list_name] self.send = True
def process_mailman(self, user, class_id, section_num, user_type): if not (settings.USE_MAILMAN and 'mailman_moderator' in settings.DEFAULT_EMAIL_ADDRESSES.keys()): return try: cls = ClassSubject.objects.get(id=int(class_id)) section = filter(lambda s: s.index() == int(section_num), cls.sections.all())[0] except: return # Create a section list in Mailman, # then bounce this e-mail off to it list_name = "%s-%s" % (section.emailcode(), user_type) create_list(list_name, settings.DEFAULT_EMAIL_ADDRESSES['mailman_moderator']) load_list_settings(list_name, "lists/class_mailman.config") if user_type != "teachers": add_list_member(list_name, ["%s %s <%s>" % (x.first_name, x.last_name, x.email, ) for x in section.students()]) apply_list_settings(list_name, {'moderator': [settings.DEFAULT_EMAIL_ADDRESSES['mailman_moderator'], '%s-teachers@%s' % (cls.emailcode(), Site.objects.get_current().domain)]}) if DEBUG: print "Settings applied..." send_mail("[ESP] Activated class mailing list: %s@%s" % (list_name, Site.objects.get_current().domain), render_to_string("mailman/new_list_intro_teachers.txt", { 'classname': str(cls), 'mod_password': set_list_moderator_password(list_name) }), settings.DEFAULT_EMAIL_ADDRESSES['default'], ["%s-teachers@%s" % (cls.emailcode(), Site.objects.get_current().domain), ]) else: apply_list_settings(list_name, {'default_member_moderation': False}) apply_list_settings(list_name, {'generic_nonmember_action': 0}) apply_list_settings(list_name, {'acceptable_aliases': "%s.*-students-.*@%s" % (cls.emailcode(), Site.objects.get_current().domain)}) if DEBUG: print "Settings applied still..." add_list_member(list_name, [cls.parent_program.director_email]) add_list_member(list_name, [x.email for x in cls.teachers()]) if 'archive' in settings.DEFAULT_EMAIL_ADDRESSES: add_list_member(list_name, settings.DEFAULT_EMAIL_ADDRESSES['archive']) if DEBUG: print "Members added" self.recipients = ["*****@*****.**" % list_name] self.send = True
def process_mailman(self, user, class_id, user_type): if not (settings.USE_MAILMAN and 'mailman_moderator' in settings.DEFAULT_EMAIL_ADDRESSES.keys()): return try: cls = ClassSubject.objects.get(id=class_id) sections = cls.sections.all() except ESPUser.DoesNotExist: return # Create a class list in Mailman, # then bounce this e-mail off to it list_name = "%s-%s" % (cls.emailcode(), user_type) create_list(list_name, settings.DEFAULT_EMAIL_ADDRESSES['mailman_moderator']) load_list_settings(list_name, "lists/class_mailman.config") if user_type != "teachers": for section in sections: add_list_member(list_name, [ "%s %s <%s>" % ( x.first_name, x.last_name, x.email, ) for x in section.students() ]) apply_list_settings( list_name, { 'moderator': [ settings.DEFAULT_EMAIL_ADDRESSES['mailman_moderator'], '%s-teachers@%s' % (cls.emailcode(), Site.objects.get_current().domain) ] }) send_mail( "[ESP] Activated class mailing list: %s@%s" % (list_name, Site.objects.get_current().domain), render_to_string( "mailman/new_list_intro_teachers.txt", { 'classname': str(cls), 'mod_password': set_list_moderator_password(list_name) }), settings.DEFAULT_EMAIL_ADDRESSES['default'], [ "%s-teachers@%s" % (cls.emailcode(), Site.objects.get_current().domain), ]) else: apply_list_settings(list_name, {'default_member_moderation': False}) apply_list_settings(list_name, {'generic_nonmember_action': 0}) apply_list_settings( list_name, { 'acceptable_aliases': "%s.*-(students|class)-.*@%s" % (cls.emailcode(), Site.objects.get_current().domain) }) add_list_member(list_name, [cls.parent_program.director_email]) add_list_member(list_name, [x.email for x in cls.get_teachers()]) if 'archive' in settings.DEFAULT_EMAIL_ADDRESSES: add_list_member(list_name, settings.DEFAULT_EMAIL_ADDRESSES['archive']) self.recipients = [ "%s@%s" % (list_name, Site.objects.get_current().domain) ] self.send = True
def process_mailman(self, user, class_id, section_num, user_type): if not (settings.USE_MAILMAN and 'mailman_moderator' in settings.DEFAULT_EMAIL_ADDRESSES.keys()): return try: cls = ClassSubject.objects.get(id=int(class_id)) section = filter(lambda s: s.index() == int(section_num), cls.sections.all())[0] except: return # Create a section list in Mailman, # then bounce this e-mail off to it list_name = "%s-%s" % (section.emailcode(), user_type) create_list(list_name, settings.DEFAULT_EMAIL_ADDRESSES['mailman_moderator']) load_list_settings(list_name, "lists/class_mailman.config") if user_type != "teachers": add_list_members(list_name, section.students()) apply_list_settings( list_name, { 'moderator': [ settings.DEFAULT_EMAIL_ADDRESSES['mailman_moderator'], '%s-teachers@%s' % (cls.emailcode(), Site.objects.get_current().domain), # In theory this is redundant, but it's included just in # case. cls.parent_program.director_email, ], 'owner': [ settings.DEFAULT_EMAIL_ADDRESSES['mailman_moderator'], cls.parent_program.director_email, ], 'subject_prefix': "[%s]" % (cls.parent_program.niceName(), ), }) logger.info("Settings applied...") send_mail( "[ESP] Activated class mailing list: %s@%s" % (list_name, Site.objects.get_current().domain), render_to_string( "mailman/new_list_intro_teachers.txt", { 'classname': str(cls), 'mod_password': set_list_moderator_password(list_name) }), settings.DEFAULT_EMAIL_ADDRESSES['default'], [ "%s-teachers@%s" % (cls.emailcode(), Site.objects.get_current().domain), ]) else: apply_list_settings(list_name, {'default_member_moderation': False}) apply_list_settings(list_name, {'generic_nonmember_action': 0}) apply_list_settings( list_name, { 'acceptable_aliases': "%s.*-(students|class)-.*@%s" % (cls.emailcode(), Site.objects.get_current().domain) }) apply_list_settings( list_name, {'subject_prefix': "[%s]" % (cls.parent_program.niceName(), )}) logger.info("Settings applied still...") add_list_member(list_name, cls.parent_program.director_email) add_list_members(list_name, cls.get_teachers()) if 'archive' in settings.DEFAULT_EMAIL_ADDRESSES: add_list_member(list_name, settings.DEFAULT_EMAIL_ADDRESSES['archive']) logger.info("Members added") self.recipients = [ "%s@%s" % (list_name, Site.objects.get_current().domain) ] self.send = True