Example #1
0
 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], '*****@*****.**')
Example #2
0
 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], '*****@*****.**')
Example #3
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)
Example #4
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)
Example #5
0
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'])
Example #7
0
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')