def perform(action, sole_id, user_id): """ Email the group about a person joining or leaving the group """ sole, course, users = get_sole_course_and_user_information(sole_id, user_id) if not (sole and course and users): return # create email params = { 'actor_name': users[user_id].get('name'), 'course_name': course.get('name'), 'day': format_date_readable_with_ordinal(date_parse(sole.get(Sole.A_DAY))), 'time': sole.get(Sole.A_TIME), 'address': sole.get(Sole.A_ADDRESS), 'action': action } member_list = [] if action == "joined": for k, v in users.iteritems(): member_list.append(v) else: for k, v in users.iteritems(): if k != user_id: member_list.append(v) members = ', '.join(m.get('name') for m in member_list) params['members'] = members params['num_members'] = len(member_list) if len(member_list) == 0: return to = [m.get('email') for m in member_list] subject = "Re: %(course_name)s, on %(day)s %(time)s" % params text = """Hello, %(actor_name)s has just %(action)s this study session. Your group now has %(num_members)s members: %(members)s Teply-all to chat with your fellow students, or to set up a specific time and place to meet. A reminder: You're meeting on %(day)s %(time)s Near %(address)s Have a good meeting, Massively Offline Learning is more fun together """ text = text % params send(to, subject, text)
def perform(sole_id): """ Email the creator of a sole about its creation """ sole, course, users = get_sole_course_and_user_information(sole_id) if not (sole and course and users): return user_id = sole.get(Sole.A_USER_ID) user = users[user_id] params = { 'course_name': course.get('name'), 'day': format_date_readable_with_ordinal(date_parse(sole.get(Sole.A_DAY))), 'time': format_possible_sole_time(sole.get(Sole.A_TIME)), 'address': sole.get(Sole.A_ADDRESS), 'first_name': user.get('first_name') } to = user.get('email') subject = "%(course_name)s, on %(day)s %(time)s" % params text = """Hello %(first_name)s, Your study session has been set up. We'll let you know via email when others join this session. A reminder: You're meeting on %(day)s %(time)s Near %(address)s Have fun, Massively Offline Learning is more fun together """ text = text % params send(to, subject, text)