def setUp(self):
     super(ListMembersOptionsTest, self).setUp()
     self.domain = get_client().create_domain('example.com')
     self.foo_list = self.domain.create_list('foo')
     self.user = User.objects.create_user('testuser', '*****@*****.**',
                                          'testpass')
     self.superuser = User.objects.create_superuser('testsu',
                                                    '*****@*****.**',
                                                    'testpass')
     self.owner = User.objects.create_user('testowner', '*****@*****.**',
                                           'testpass')
     self.moderator = User.objects.create_user('testmoderator',
                                               '*****@*****.**',
                                               'testpass')
     self.foo_list.add_owner('*****@*****.**')
     self.foo_list.add_moderator('*****@*****.**')
     self.mm_user = get_client().create_user('*****@*****.**', '')
     self.mm_user.addresses[0].verify()
     self.foo_list.subscribe('*****@*****.**',
                             pre_verified=True,
                             pre_confirmed=True,
                             pre_approved=True)
     self.url = reverse('list_member_options',
                        args=(
                            self.foo_list.list_id,
                            '*****@*****.**',
                        ))
     self.url = quote(self.url)
 def setUp(self):
     self.client = Client()
     try:
         self.domain = get_client().create_domain('example.com')
     except HTTPError:
         self.domain = get_client().get_domain('example.com')
     try:
         self.test_list = self.domain.create_list('testlist')
     except HTTPError:
         self.test_list = get_client().get_list('testlist.example.com')
     settings = self.test_list.settings
     settings['subscription_policy'] = 'moderate'
     settings.save()
     self.user = User.objects.create_user(
         'testuser', '*****@*****.**', 'pwd')
     self.owner = User.objects.create_user(
         'testowner', '*****@*****.**', 'pwd')
     self.moderator = User.objects.create_user(
         'testmoderator', '*****@*****.**', 'pwd')
     self.su = User.objects.create_superuser(
         'testsu', '*****@*****.**', 'supwd')
     if self.owner.email not in self.test_list.owners:
         self.test_list.add_owner('*****@*****.**')
     if self.moderator.email not in self.test_list.moderators:
         self.test_list.add_moderator('*****@*****.**')
Exemplo n.º 3
0
 def setUp(self):
     self.client = Client()
     try:
         self.domain = get_client().create_domain('example.com')
     except HTTPError:
         self.domain = get_client().get_domain('example.com')
     try:
         self.test_list = self.domain.create_list('test_list')
     except HTTPError:
         self.test_list = get_client().get_list('test_list.example.com')
     settings = self.test_list.settings
     settings['subscription_policy'] = 'moderate'
     settings.save()
     self.user = User.objects.create_user('testuser',
                                          '*****@*****.**', 'pwd')
     self.owner = User.objects.create_user('testowner',
                                           '*****@*****.**', 'pwd')
     self.moderator = User.objects.create_user('testmoderator',
                                               '*****@*****.**',
                                               'pwd')
     self.su = User.objects.create_superuser('testsu', '*****@*****.**',
                                             'supwd')
     self.test_list.add_owner('*****@*****.**')
     self.test_list.add_moderator('*****@*****.**')
     self.client.login(username='******', password='******')
     if len(self.test_list.requests) == 0:
         self.client.post(
             reverse('list_subscribe', args=('test_list.example.com', )),
             {'email': '*****@*****.**'})
     self.client.logout()
     self.task = create_subscription_tasks([self.test_list])
     self.events = EventTracker.objects.all()
Exemplo n.º 4
0
 def setUp(self):
     self.client = Client()
     try:
         self.domain = get_client().create_domain('example.com')
     except HTTPError:
         self.domain = get_client().get_domain('example.com')
     try:
         self.test_list = self.domain.create_list('test_list')
     except HTTPError:
         self.test_list = get_client().get_list('test_list.example.com')
     settings = self.test_list.settings
     settings['subscription_policy'] = 'moderate'
     settings.save()
     self.user = User.objects.create_user(
         'testuser', '*****@*****.**', 'pwd')
     self.owner = User.objects.create_user(
         'testowner', '*****@*****.**', 'pwd')
     self.moderator = User.objects.create_user(
         'testmoderator', '*****@*****.**', 'pwd')
     self.su = User.objects.create_superuser(
         'testsu', '*****@*****.**', 'supwd')
     self.test_list.add_owner('*****@*****.**')
     self.test_list.add_moderator('*****@*****.**')
     self.client.login(username='******', password='******')
     if len(self.test_list.requests) == 0:
         self.client.post(reverse('list_subscribe', args=('test_list.example.com', )),
                                 {'email': '*****@*****.**'})
     self.client.logout()
     self.task = create_subscription_tasks([self.test_list])
     self.events = EventTracker.objects.all()
Exemplo n.º 5
0
 def setUp(self):
     self.client = Client()
     try:
         self.domain = get_client().create_domain('example.com')
     except HTTPError:
         self.domain = get_client().get_domain('example.com')
     self.foo_list = self.domain.create_list('foo')
Exemplo n.º 6
0
 def setUp(self):
     self.client = Client()
     try:
         self.domain = get_client().create_domain('example.com')
     except HTTPError:
         self.domain = get_client().get_domain('example.com')
     self.foo_list = self.domain.create_list('foo')
Exemplo n.º 7
0
 def setUp(self):
     self.client = Client()
     self.user = User.objects.create_user('user', '*****@*****.**', 'pwd')
     self.superuser = User.objects.create_superuser('su', '*****@*****.**',
                                                    'pwd')
     try:
         self.domain = get_client().create_domain('example.com')
     except HTTPError:
         self.domain = get_client().get_domain('example.com')
 def setUp(self):
     # Create domain `example.com` in Mailman
     try:
         example_com = get_client().create_domain('example.com')
     except HTTPError:
         example_com = get_client().get_domain('example.com')
     self.m_list = example_com.create_list('test_list')
     self.test_user = User.objects.create_user(
         'test_user', '*****@*****.**', 'pwd')
     self.test_superuser = User.objects.create_superuser(
         'test_superuser', '*****@*****.**', 'pwd')
Exemplo n.º 9
0
 def setUp(self):
     self.client = Client()
     try:
         self.domain = get_client().create_domain('example.com')
     except HTTPError:
         self.domain = get_client().get_domain('example.com')
     self.foo_list = self.domain.create_list('foo')
     self.su = User.objects.create_superuser('su', '*****@*****.**', 'pwd')
     # login and post new moderator data to url
     self.client.login(username='******', password='******')
     self.client.post(reverse('list_members', args=('*****@*****.**', )),
                      {'moderator_email': '*****@*****.**'})
     moderators = self.foo_list.moderators
Exemplo n.º 10
0
 def setUp(self):
     self.client = Client()
     try:
         self.domain = get_client().create_domain('example.com')
     except HTTPError:
         self.domain = get_client().get_domain('example.com')
     self.foo_list = self.domain.create_list('foo')
     self.su = User.objects.create_superuser(
         'su', '*****@*****.**', 'pwd')
     # login and post new moderator data to url
     self.client.login(username='******', password='******')
     self.client.post(
         reverse('list_members', args=('*****@*****.**', )),
         {'moderator_email': '*****@*****.**'})
     moderators = self.foo_list.moderators
Exemplo n.º 11
0
 def setUp(self):
     self.client = Client()
     try:
         self.domain = get_client().create_domain('example.com')
     except HTTPError:
         self.domain = get_client().get_domain('example.com')
     try:
         self.test_list = self.domain.create_list('testlist')
     except HTTPError:
         self.test_list = get_client().get_list('testlist.example.com')
     settings = self.test_list.settings
     settings['subscription_policy'] = 'moderate'
     settings.save()
     self.su = User.objects.create_superuser(
         'testsu', '*****@*****.**', 'supwd')
Exemplo n.º 12
0
 def all(self, only_public=False):
     try:
         objects = getattr(get_client(), self.resource_name_plural)
     except AttributeError:
         raise MailmanApiError
     except MailmanConnectionError, e:
         raise MailmanApiError(e)
Exemplo n.º 13
0
    def post(self, request, list_id, email):
        try:
            client = utils.get_client()
            mm_member = client.get_member(list_id, email)
            mm_list = client.get_list(list_id)
            preferences_form = UserPreferences(request.POST)
            if preferences_form.is_valid():
                preferences = mm_member.preferences
                for key in preferences_form.fields.keys():
                    preferences[key] = preferences_form.cleaned_data[key]
                preferences.save()
                messages.success(
                    request, 'The member\'s preferences have been updated.')
            else:
                messages.error(request, 'Something went wrong.')

            # this is a bit silly, since we already have the preferences,
            # but I want to be sure we don't show stale data.
            settingsform = UserPreferences(initial=mm_member.preferences)
        except MailmanApiError:
            return utils.render_api_error(request)
        except HTTPError as e:
            messages.error(request, e.msg)
        return render_to_response(
            'postorius/lists/memberoptions.html',
            {'mm_member': mm_member,
             'list': mm_list,
             'settingsform': settingsform,
             },
            context_instance=RequestContext(request))
Exemplo n.º 14
0
 def all(self):
     try:
         return getattr(get_client(), self.resource_name_plural)
     except AttributeError:
         raise MailmanApiError
     except MailmanConnectionError, e:
         raise MailmanApiError(e)
Exemplo n.º 15
0
 def all(self):
     try:
         return getattr(get_client(), self.resource_name_plural)
     except AttributeError:
         raise MailmanApiError
     except MailmanConnectionError as e:
         raise MailmanApiError(e)
Exemplo n.º 16
0
 def all(self, only_public=False):
     try:
         objects = getattr(get_client(), self.resource_name_plural)
     except AttributeError:
         raise MailmanApiError
     except MailmanConnectionError, e:
         raise MailmanApiError(e)
Exemplo n.º 17
0
def _add_address(request, user_email, address):
    # Add an address to a user record in mailman.
    try:
        mailman_user = utils.get_client().get_user(user_email)
        mailman_user.add_address(address)
    except (MailmanApiError, MailmanConnectionError) as e:
        messages.error(request, 'The address could not be added.')
Exemplo n.º 18
0
 def setUp(self):
     self.mm_client = get_client()
     if self.use_vcr:
         cm = self._mm_vcr.use_cassette('.'.join([
             self.__class__.__name__, self._testMethodName, 'yaml']))
         self.cassette = cm.__enter__()
         self.addCleanup(cm.__exit__, None, None, None)
Exemplo n.º 19
0
def handle_subscription_request(request, list_id, request_id, action):
    """
    Handle a subscription request. Possible actions:
        - accept
        - defer
        - reject
        - discard
    """
    confirmation_messages = {
        'accept': _('The request has been accepted.'),
        'reject': _('The request has been rejected.'),
        'discard': _('The request has been discarded.'),
        'defer': _('The request has been defered.'),
    }
    try:
        m_list = utils.get_client().get_list(list_id)
        # Moderate request and add feedback message to session.
        m_list.moderate_request(request_id, action)
        messages.success(request, confirmation_messages[action])
    except MailmanApiError:
        return utils.render_api_error(request)
    except HTTPError as e:
        messages.error(request, '{0}: {1}'.format(
            _('The request could not be moderated'), e.reason))
    return redirect('list_subscription_requests', m_list.list_id)
Exemplo n.º 20
0
 def setUp(self):
     self.client = Client()
     try:
         self.domain = get_client().create_domain('example.com')
     except HTTPError:
         self.domain = get_client().get_domain('example.com')
     try:
         self.test_list = self.domain.create_list('open_list')
     except HTTPError:
         self.test_list = get_client().get_list('open_list.example.com')
     # Set subscription policy to open
     settings = self.test_list.settings
     settings['subscription_policy'] = 'open'
     settings.save()
     self.user = User.objects.create_user(
         'testuser', '*****@*****.**', 'pwd')
Exemplo n.º 21
0
 def setUp(self):
     self.client = Client()
     try:
         self.domain = get_client().create_domain('example.com')
     except HTTPError:
         self.domain = get_client().get_domain('example.com')
     try:
         self.test_list = self.domain.create_list('open_list')
     except HTTPError:
         self.test_list = get_client().get_list('open_list.example.com')
     # Set subscription policy to open
     settings = self.test_list.settings
     settings['subscription_policy'] = 'open'
     settings.save()
     self.user = User.objects.create_user(
         'testuser', '*****@*****.**', 'pwd')
Exemplo n.º 22
0
def list_subscription_requests(request, list_id):
    """Shows a list of held messages.
    """
    try:
        m_list = utils.get_client().get_list(list_id)
    except MailmanApiError:
        return utils.render_api_error(request)
    return render_to_response('postorius/lists/subscription_requests.html',
                              {'list': m_list},
                              context_instance=RequestContext(request))
Exemplo n.º 23
0
 def test_new_list_created_with_owner(self):
     self.client.login(username='******', password='******')
     post_data = {'listname': 'a_new_list',
                  'mail_host': 'example.com',
                  'list_owner': '*****@*****.**',
                  'advertised': 'True',
                  'description': 'A new list.'}
     self.client.post(reverse('list_new'), post_data)
     a_new_list = get_client().get_list('*****@*****.**')
     self.assertEqual(a_new_list.fqdn_listname, u'*****@*****.**')
     self.assertEqual(a_new_list.owners, [u'*****@*****.**'])
Exemplo n.º 24
0
 def setUp(self):
     self.client = Client()
     try:
         self.domain = get_client().create_domain('example.com')
     except HTTPError:
         self.domain = get_client().get_domain('example.com')
     try:
         self.foo_list = self.domain.create_list('foo')
     except HTTPError:
         self.foo_list = get_client().get_list('foo.example.com')
     self.user = User.objects.create_user(
         'testuser', '*****@*****.**', 'testpass')
     self.superuser = User.objects.create_superuser(
         'testsu', '*****@*****.**', 'testpass')
     self.owner = User.objects.create_user(
         'testowner', '*****@*****.**', 'testpass')
     self.moderator = User.objects.create_user(
         'testmoderator', '*****@*****.**', 'testpass')
     self.foo_list.add_owner('*****@*****.**')
     self.foo_list.add_moderator('*****@*****.**')
Exemplo n.º 25
0
 def setUp(self):
     self.mm_client = get_client()
     self.client = Client()
     try:
         self.domain = self.mm_client.create_domain('example.org')
     except HTTPError:
         self.domain = self.mm_client.get_domain('example.org')
     self.domain.create_list('test')
     self.test_list = self.mm_client.get_list('*****@*****.**')
     User.objects.filter(username='******').delete()
     self.superuser = User.objects.create_superuser('su', '*****@*****.**',
                                                    'pwd')
 def setUp(self):
     super(ListMembersOptionsTest, self).setUp()
     self.domain = get_client().create_domain('example.com')
     self.foo_list = self.domain.create_list('foo')
     self.user = User.objects.create_user(
         'testuser', '*****@*****.**', 'testpass')
     self.superuser = User.objects.create_superuser(
         'testsu', '*****@*****.**', 'testpass')
     self.owner = User.objects.create_user(
         'testowner', '*****@*****.**', 'testpass')
     self.moderator = User.objects.create_user(
         'testmoderator', '*****@*****.**', 'testpass')
     self.foo_list.add_owner('*****@*****.**')
     self.foo_list.add_moderator('*****@*****.**')
     self.mm_user = get_client().create_user('*****@*****.**', '')
     self.mm_user.addresses[0].verify()
     self.foo_list.subscribe('*****@*****.**', pre_verified=True,
                             pre_confirmed=True, pre_approved=True)
     self.url = reverse('list_member_options', args=(self.foo_list.list_id,
                                                     '*****@*****.**',))
     self.url = quote(self.url)
Exemplo n.º 27
0
 def setUp(self):
     self.client = Client()
     self.mmclient = get_client()
     try:
         domain = self.mmclient.create_domain('example.com')
     except HTTPError:
         domain = self.mmclient.get_domain('example.com')
     self.foo_list = domain.create_list('foo')
     try:
         User.objects.create_user('testuser', '*****@*****.**', 'testpass')
     except IntegrityError:
         pass
Exemplo n.º 28
0
 def setUp(self):
     self.client = Client()
     self.mmclient = get_client()
     try:
         domain = self.mmclient.create_domain("example.com")
     except HTTPError:
         domain = self.mmclient.get_domain("example.com")
     self.foo_list = domain.create_list("foo")
     try:
         User.objects.create_user("testuser", "*****@*****.**", "testpass")
     except IntegrityError:
         pass
Exemplo n.º 29
0
 def setUp(self):
     self.mm_client = get_client()
     self.client = Client()
     try:
         self.domain = self.mm_client.create_domain('example.org')
     except HTTPError:
         self.domain = self.mm_client.get_domain('example.org')
     self.domain.create_list('test')
     self.test_list = self.mm_client.get_list('*****@*****.**')
     User.objects.filter(username='******').delete()
     self.superuser = User.objects.create_superuser(
         'su', '*****@*****.**', 'pwd')
Exemplo n.º 30
0
 def setUp(self):
     self.client = Client()
     try:
         self.domain = get_client().create_domain('example.com')
     except HTTPError:
         self.domain = get_client().get_domain('example.com')
     try:
         self.foo_list = self.domain.create_list('foo')
     except HTTPError:
         self.foo_list = get_client().get_list('foo.example.com')
     self.user = User.objects.create_user('testuser', '*****@*****.**',
                                          'testpass')
     self.superuser = User.objects.create_superuser('testsu',
                                                    '*****@*****.**',
                                                    'testpass')
     self.owner = User.objects.create_user('testowner', '*****@*****.**',
                                           'testpass')
     self.moderator = User.objects.create_user('testmoderator',
                                               '*****@*****.**',
                                               'testpass')
     self.foo_list.add_owner('*****@*****.**')
     self.foo_list.add_moderator('*****@*****.**')
Exemplo n.º 31
0
 def create(self, *args, **kwargs):
     try:
         method = getattr(get_client(), 'create_' + self.resource_name)
         return method(*args, **kwargs)
     except AttributeError as e:
         raise MailmanApiError(e)
     except HTTPError as e:
         if e.code == 409:
             raise MailmanApiError
         else:
             raise
     except MailmanConnectionError:
         raise MailmanApiError
Exemplo n.º 32
0
 def get(self, *args, **kwargs):
     try:
         method = getattr(get_client(), 'get_' + self.resource_name)
         return method(*args, **kwargs)
     except AttributeError as e:
         raise MailmanApiError(e)
     except HTTPError as e:
         if e.code == 404:
             raise Mailman404Error('Mailman resource could not be found.')
         else:
             raise
     except MailmanConnectionError as e:
         raise MailmanApiError(e)
Exemplo n.º 33
0
 def get(self, *args, **kwargs):
     try:
         method = getattr(get_client(), 'get_' + self.resource_name)
         return method(*args, **kwargs)
     except AttributeError as e:
         raise MailmanApiError(e)
     except HTTPError as e:
         if e.code == 404:
             raise Mailman404Error('Mailman resource could not be found.')
         else:
             raise
     except MailmanConnectionError as e:
         raise MailmanApiError(e)
Exemplo n.º 34
0
 def create(self, *args, **kwargs):
     try:
         method = getattr(get_client(), 'create_' + self.resource_name)
         return method(*args, **kwargs)
     except AttributeError as e:
         raise MailmanApiError(e)
     except HTTPError as e:
         if e.code == 409:
             raise MailmanApiError
         else:
             raise
     except MailmanConnectionError:
         raise MailmanApiError
Exemplo n.º 35
0
def create_mailman_user(sender, **kwargs):
    if kwargs.get('created'):
        autocreate = False
        try:
            autocreate = settings.AUTOCREATE_MAILMAN_USER
        except AttributeError:
            pass
        if autocreate:
            user = kwargs.get('instance')
            client = get_client()
            try:
                client.create_user(user.email, None, None)
            except HTTPError:
                pass
Exemplo n.º 36
0
 def handle(self, *args, **options):
     # choose an interpreter
     console = None
     try:
         import IPython
         console_fn = IPython.embed
     except ImportError:
         import code
         shell = code.InteractiveConsole(globals())
         console_fn = shell.interact
     # connect to mailmanclient
     client = utils.get_client()
     # run the interpreter
     console_fn()
Exemplo n.º 37
0
def create_mailman_user(sender, **kwargs):
    if kwargs.get('created'):
        autocreate = False
        try:
            autocreate = settings.AUTOCREATE_MAILMAN_USER
        except AttributeError:
            pass
        if autocreate:
            user = kwargs.get('instance')
            client = get_client()
            try:
                client.create_user(user.email, None, None)
            except HTTPError:
                pass
Exemplo n.º 38
0
 def all(self, only_public=False):
     try:
         objects = getattr(get_client(), self.resource_name_plural)
     except AttributeError:
         raise MailmanApiError
     except MailmanConnectionError as e:
         raise MailmanApiError(e)
     if only_public:
         public = []
         for obj in objects:
             if obj.settings.get('advertised', False):
                 public.append(obj)
         return public
     else:
         return objects
Exemplo n.º 39
0
 def all(self, only_public=False):
     try:
         objects = getattr(get_client(), self.resource_name_plural)
     except AttributeError:
         raise MailmanApiError
     except MailmanConnectionError as e:
         raise MailmanApiError(e)
     if only_public:
         public = []
         for obj in objects:
             if obj.settings.get('advertised', False):
                 public.append(obj)
         return public
     else:
         return objects
Exemplo n.º 40
0
 def handle(self, *args, **options):
     # choose an interpreter
     try:
         import IPython
         console_fn = IPython.embed
     except ImportError:
         import code
         shell = code.InteractiveConsole(globals())
         console_fn = shell.interact
     # connect to mailmanclient
     client = utils.get_client()
     # Putting client back in the global scope
     globals()['client'] = client
     # run the interpreter
     console_fn()
Exemplo n.º 41
0
def domain_delete(request, domain):
    """Deletes a domain but asks for confirmation first.
    """
    if request.method == 'POST':
        try:
            client = utils.get_client()
            client.delete_domain(domain)
            messages.success(request,
                             _('The domain %s has been deleted.' % domain))
            return redirect("domain_index")
        except HTTPError as e:
            messages.error(request,
                           _('The domain could not be deleted: %s' % e.msg))
            return redirect("domain_index")
    return render(request, 'postorius/domain/confirm_delete.html',
                  {'domain': domain})
Exemplo n.º 42
0
def user_index(request, page=1, template='postorius/users/index.html'):
    """Show a table of all users.
    """
    page = int(page)
    error = None
    try:
        mm_user_page = utils.get_client().get_user_page(25, page)
    except MailmanApiError:
        return utils.render_api_error(request)
    return render_to_response(
        template,
        {'error': error,
         'mm_user_page': mm_user_page,
         'mm_user_page_nr': page,
         'mm_user_page_previous_nr': page - 1,
         'mm_user_page_next_nr': page + 1,
         'mm_user_page_show_next': len(mm_user_page) >= 25},
        context_instance=RequestContext(request))
Exemplo n.º 43
0
 def get(self, request, list_id, email):
     try:
         client = utils.get_client()
         mm_member = client.get_member(list_id, email)
         mm_list = client.get_list(list_id)
         settingsform = UserPreferences(initial=mm_member.preferences)
     except MailmanApiError:
         return utils.render_api_error(request)
     except Mailman404Error:
         return render_to_response(
             'postorius/lists/memberoptions.html',
             {'nolists': 'true'},
             context_instance=RequestContext(request))
     return render_to_response(
         'postorius/lists/memberoptions.html',
         {'mm_member': mm_member,
          'list': mm_list,
          'settingsform': settingsform,
          },
         context_instance=RequestContext(request))
Exemplo n.º 44
0
 def get(self, request, fqdn_listname, email):
     try:
         client = utils.get_client()
         mm_member = client.get_member(fqdn_listname, email)
         mm_list = client.get_list(fqdn_listname)
         settingsform = UserPreferences(initial=mm_member.preferences)
     except MailmanApiError:
         return utils.render_api_error(request)
     except Mailman404Error:
         return render_to_response(
             'postorius/lists/memberoptions.html',
             {'nolists': 'true'},
             context_instance=RequestContext(request))
     return render_to_response(
         'postorius/lists/memberoptions.html',
         {'mm_member': mm_member,
          'list': mm_list,
          'settingsform': settingsform,
          },
         context_instance=RequestContext(request))
Exemplo n.º 45
0
def csv_view(request, list_id):
    """Export all the subscriber in csv
    """
    mm_lists = []
    try:
        client = utils.get_client()
        mm_lists = client.get_list(list_id)
    except MailmanApiError:
        return utils.render_api_error(request)

    response = HttpResponse(content_type='text/csv')
    response['Content-Disposition'] = (
        'attachment; filename="Subscribers.csv"')

    writer = csv.writer(response)
    if mm_lists:
        for i in mm_lists.members:
            writer.writerow([i.email])

    return response
Exemplo n.º 46
0
def list_archival_options(request, list_id):
    """
    Activate or deactivate list archivers.
    """
    # Get the list and cache the archivers property.
    m_list = utils.get_client().get_list(list_id)
    archivers = m_list.archivers

    # Process form submission.
    if request.method == 'POST':
        current = [key for key in archivers.keys() if archivers[key]]
        posted = request.POST.getlist('archivers')

        # These should be activated
        to_activate = [arc for arc in posted if arc not in current]
        for arc in to_activate:
            archivers[arc] = True
        # These should be disabled
        to_disable = [arc for arc in current if arc not in posted and
                      arc in current]
        for arc in to_disable:
            archivers[arc] = False

        # Re-cache list of archivers after update.
        archivers = m_list.archivers

        # Show success/error messages.
        _add_archival_messages(to_activate, to_disable, archivers, request)

    # Instantiate form with current archiver data.
    initial = {'archivers': [key for key in archivers.keys()
                             if archivers[key] is True]}
    form = ListArchiverForm(initial=initial, archivers=archivers)

    return render_to_response('postorius/lists/archival_options.html',
                              {'list': m_list,
                               'form': form,
                               'archivers': archivers},
                              context_instance=RequestContext(request))
Exemplo n.º 47
0
def domain_delete(request, domain):
    """Deletes a domain but asks for confirmation first.
    """
    if request.method == 'POST':
        try:
            client = utils.get_client()
            client.delete_domain(domain)
            messages.success(request,
                             _('The domain %s has been deleted.' % domain))
            return redirect("domain_index")
        except HTTPError as e:
            print e.__dict__
            messages.error(request,
                           _('The domain could not be deleted:'
                             ' %s' % e.msg))
            return redirect("domain_index")
    submit_url = reverse('domain_delete', kwargs={'domain': domain})
    return render_to_response('postorius/domain_confirm_delete.html', {
        'domain': domain,
        'submit_url': submit_url
    },
                              context_instance=RequestContext(request))