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
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
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 })
def test_subscription_works(self): user_emails = ['*****@*****.**', '*****@*****.**'] form = ChangeSubscriptionForm(user_emails, {'email': '*****@*****.**'}) self.assertTrue(form.is_valid())
def test_subscription_changes_only_to_user_addresses(self): user_emails = ['*****@*****.**', '*****@*****.**'] form = ChangeSubscriptionForm(user_emails, {'email': '*****@*****.**'}) self.assertFalse(form.is_valid())
def test_subscription_works(self): user_emails = ["*****@*****.**", "*****@*****.**"] form = ChangeSubscriptionForm(user_emails, {"email": "*****@*****.**"}) self.assertTrue(form.is_valid())
def test_subscription_changes_only_to_user_addresses(self): user_emails = ["*****@*****.**", "*****@*****.**"] form = ChangeSubscriptionForm(user_emails, {"email": "*****@*****.**"}) self.assertFalse(form.is_valid())