def test_remove_group_member(self): group = group_model.create_group('*****@*****.**', 'The A team', 1) group_model.add_group_member(group['uri'], '*****@*****.**') group_model.add_group_member(group['uri'], '*****@*****.**') group_model.remove_group_member(group['uri'], '*****@*****.**') group = group_model.get_group(group['uri']) self.assertEqual(len(group['members']), 1) self.assertEqual(group['members'][0], '*****@*****.**')
def test_get_member_groups(self): group = group_model.create_group('*****@*****.**', 'The A team', 1) group_model.add_group_member(group['uri'], '*****@*****.**') group = group_model.get_group(group['uri']) groups = group_model.get_member_groups('*****@*****.**') self.assertEqual(len(groups), 1) self.assertEqual(groups[0], group)
def create_groups(groups, sequence, name_prefix="Group"): """ Create the groups in the backend """ for i, group_data in enumerate(groups): group_address = "{0}-{1}@{2}".format(name_prefix.lower().replace(' ','-'), i+1, settings.EMAIL_DOMAIN) group_name = "{0} {1}: {2} to {3}".format(name_prefix, i+1, group_data[0]['tz_offset'], group_data[-1]['tz_offset']) print(group_name) group = group_model.create_group(group_address, group_name, sequence) for member in group_data: group_model.add_group_member(group['uri'], member['email'])
def create_groups(groups, sequence, name_prefix="Group"): """ Create the groups in the backend """ for i, group_data in enumerate(groups): group_address = "{0}-{1}@{2}".format( name_prefix.lower().replace(' ', '-'), i + 1, settings.EMAIL_DOMAIN) group_name = "{0} {1}: {2} to {3}".format(name_prefix, i + 1, group_data[0]['tz_offset'], group_data[-1]['tz_offset']) print(group_name) group = group_model.create_group(group_address, group_name, sequence) for member in group_data: group_model.add_group_member(group['uri'], member['email'])
def do_grouping(sequence): groups = prepare_groups(sequence) create_groups(groups, sequence, 'Group {0}'.format(sequence)) # handle singups not in group signups = signup_model.get_signups(sequence) filter_group_preference = lambda su: su['questions']['groupRadios'] == False signups = filter(filter_group_preference, signups) group_address = 'ungrouped-s-{0}@{1}'.format(sequence, settings.EMAIL_DOMAIN) group_name = 'Ungrouped S{0}'.format(sequence, settings.EMAIL_DOMAIN) ungroup = group_model.create_group(group_address, group_name, sequence) for signup in signups: group_model.add_group_member(ungroup['uri'], signup['email']) # sync groups with mailgun for group in group_model.get_groups(sequence): group_model.add_group_member(group['uri'], settings.DEFAULT_FROM_EMAIL) group_model.sync_group_with_mailgun(group['uri']) # update access to group for ungrouped users mailgun_api.update_list(ungroup['address'], access_level='readonly')
def do_grouping(sequence): groups = prepare_groups(sequence) create_groups(groups, sequence, 'Group {0}'.format(sequence)) # handle singups not in group signups = signup_model.get_signups(sequence) filter_group_preference = lambda su: su['questions']['groupRadios' ] == False signups = filter(filter_group_preference, signups) group_address = 'ungrouped-s-{0}@{1}'.format(sequence, settings.EMAIL_DOMAIN) group_name = 'Ungrouped S{0}'.format(sequence, settings.EMAIL_DOMAIN) ungroup = group_model.create_group(group_address, group_name, sequence) for signup in signups: group_model.add_group_member(ungroup['uri'], signup['email']) # sync groups with mailgun for group in group_model.get_groups(sequence): group_model.add_group_member(group['uri'], settings.DEFAULT_FROM_EMAIL) group_model.sync_group_with_mailgun(group['uri']) # update access to group for ungrouped users mailgun_api.update_list(ungroup['address'], access_level='readonly')