Beispiel #1
0
 def get_context_data(self, **kwargs):
     data = super(UserListOptionsView, self).get_context_data(**kwargs)
     data['mlist'] = self.mlist
     user_emails = EmailAddress.objects.filter(
         user=self.request.user,
         verified=True).order_by("email").values_list("email", flat=True)
     data['change_subscription_form'] = ChangeSubscriptionForm(
         user_emails, initial={'email': self.subscription.email})
     return data
Beispiel #2
0
 def get_context_data(self, **kwargs):
     data = super(UserListOptionsView, self).get_context_data(**kwargs)
     data['mlist'] = self.mlist
     user_emails = EmailAddress.objects.filter(
         user=self.request.user,
         verified=True).order_by("email").values_list("email", flat=True)
     mm_user = get_mailman_user(self.request.user)
     primary_email = None
     if mm_user.preferred_address is None:
         primary_email = set_preferred(self.request.user, mm_user)
     else:
         primary_email = mm_user.preferred_address.email
     data['change_subscription_form'] = ChangeSubscriptionForm(
         user_emails,
         mm_user.user_id,
         primary_email,
         initial={'subscriber': self.subscriber})
     return data
Beispiel #3
0
def user_list_options(request, list_id):
    mlist = List.objects.get_or_404(fqdn_listname=list_id)
    mm_user = MailmanUser.objects.get(address=request.user.email)
    subscription = None
    for s in mm_user.subscriptions:
        if s.role == 'member' and s.list_id == list_id:
            subscription = s
            break
    if not subscription:
        raise Http404(_('Subscription does not exist'))
    preferences = subscription.preferences
    if request.method == 'POST':
        form = UserPreferences(request.POST)
        if form.is_valid():
            for key in form.cleaned_data.keys():
                if form.cleaned_data[key] is not None:
                    # None: nothing set yet. Remember to remove this test
                    # when Mailman accepts None as a "reset to default"
                    # value.
                    preferences[key] = form.cleaned_data[key]
            preferences.save()
            messages.success(request, _('Your preferences have been updated.'))
            return redirect('user_list_options', list_id)
        else:
            messages.error(request, _('Something went wrong.'))
    else:
        form = UserPreferences(initial=subscription.preferences)
    user_emails = EmailAddress.objects.filter(
        user=request.user,
        verified=True).order_by("email").values_list("email", flat=True)
    subscription_form = ChangeSubscriptionForm(
        user_emails, initial={'email': subscription.email})
    return render(request, 'postorius/user/list_options.html', {
        'form': form,
        'list': mlist,
        'change_subscription_form': subscription_form
    })
Beispiel #4
0
 def test_subscription_works(self):
     user_emails = ['*****@*****.**', '*****@*****.**']
     form = ChangeSubscriptionForm(user_emails,
                                   {'email': '*****@*****.**'})
     self.assertTrue(form.is_valid())
Beispiel #5
0
 def test_subscription_changes_only_to_user_addresses(self):
     user_emails = ['*****@*****.**', '*****@*****.**']
     form = ChangeSubscriptionForm(user_emails,
                                   {'email': '*****@*****.**'})
     self.assertFalse(form.is_valid())
Beispiel #6
0
 def test_subscription_works(self):
     user_emails = ["*****@*****.**", "*****@*****.**"]
     form = ChangeSubscriptionForm(user_emails, {"email": "*****@*****.**"})
     self.assertTrue(form.is_valid())
Beispiel #7
0
 def test_subscription_changes_only_to_user_addresses(self):
     user_emails = ["*****@*****.**", "*****@*****.**"]
     form = ChangeSubscriptionForm(user_emails, {"email": "*****@*****.**"})
     self.assertFalse(form.is_valid())
Beispiel #8
0
 def test_subscription_works(self):
     user_emails = ['*****@*****.**', '*****@*****.**']
     form = ChangeSubscriptionForm(user_emails,
                                   {'email': '*****@*****.**'})
     self.assertTrue(form.is_valid())
Beispiel #9
0
 def test_subscription_changes_only_to_user_addresses(self):
     user_emails = ['*****@*****.**', '*****@*****.**']
     form = ChangeSubscriptionForm(user_emails, {'email': '*****@*****.**'})
     self.assertFalse(form.is_valid())