Пример #1
0
 def test_subscribe_validates_email(self):
     user_emails = ['something']
     form = ListSubscribe(user_emails, {
         'email' : 'something',
         'display_name' : 'Someone',
     })
     self.assertFalse(form.is_valid())
Пример #2
0
 def post(self, request, list_id):
     """
     Subscribes an email address to a mailing list via POST and
     redirects to the `list_summary` view.
     """
     try:
         user_emails = EmailAddress.objects.filter(
             user=request.user, verified=True).order_by(
             "email").values_list("email", flat=True)
         form = ListSubscribe(user_emails, request.POST)
         if form.is_valid():
             email = request.POST.get('email')
             response = self.mailing_list.subscribe(
                 email, pre_verified=True, pre_confirmed=True)
             if (type(response) == dict and
                     response.get('token_owner') == 'moderator'):
                 messages.success(
                     request, _('Your subscription request has been'
                                ' submitted and is waiting for moderator'
                                ' approval.'))
             else:
                 messages.success(request,
                                  _('You are subscribed to %s.') %
                                  self.mailing_list.fqdn_listname)
         else:
             messages.error(request,
                            _('Something went wrong. Please try again.'))
     except MailmanApiError:
         return utils.render_api_error(request)
     except HTTPError as e:
         messages.error(request, e.msg)
     return redirect('list_summary', self.mailing_list.list_id)
Пример #3
0
 def test_subscribe_fails(self):
     user_emails = ['*****@*****.**']
     form = ListSubscribe(user_emails, {
         'email' : 'notaemail',
         'display_name' : 'Someone',
     })
     self.assertFalse(form.is_valid())
Пример #4
0
 def post(self, request, list_id):
     """
     Subscribes an email address to a mailing list via POST and
     redirects to the `list_summary` view.
     """
     try:
         user_addresses = [request.user.email] + request.user.other_emails
         form = ListSubscribe(user_addresses, request.POST)
         if form.is_valid():
             email = request.POST.get('email')
             response = self.mailing_list.subscribe(
                 email, pre_verified=True, pre_confirmed=True)
             if (type(response) == dict and
                     response.get('token_owner') == 'moderator'):
                 messages.success(
                     request, _('Your subscription request has been'
                                ' submitted and is waiting for moderator'
                                ' approval.'))
             else:
                 messages.success(request,
                                  _('You are subscribed to %s.') %
                                  self.mailing_list.fqdn_listname)
         else:
             messages.error(request,
                            _('Something went wrong. Please try again.'))
     except MailmanApiError:
         return utils.render_api_error(request)
     except HTTPError as e:
         messages.error(request, e.msg)
     return redirect('list_summary', self.mailing_list.list_id)
Пример #5
0
 def test_subscribe_validates_email(self):
     user_emails = ['something']
     form = ListSubscribe(user_emails, {
         'email': 'something',
         'display_name': 'Someone',
     })
     self.assertFalse(form.is_valid())
Пример #6
0
 def post(self, request, list_id):
     try:
         user_emails = [request.user.email] + request.user.other_emails
         form = ListSubscribe(user_emails, request.POST)
         # Find the currently subscribed email
         old_email = None
         for address in user_emails:
             try:
                 self.mailing_list.get_member(address)
             except ValueError:
                 pass
             else:
                 old_email = address
                 break  # no need to test more addresses
         assert old_email is not None
         if form.is_valid():
             email = form.cleaned_data['email']
             if old_email == email:
                 messages.error(request, _('You are already subscribed'))
             else:
                 self.mailing_list.unsubscribe(old_email)
                 # Since the action is done via the web UI, no email
                 # confirmation is needed.
                 self.mailing_list.subscribe(email, pre_confirmed=True)
                 messages.success(request,
                                  _('Subscription changed to %s') % email)
         else:
             messages.error(request,
                            _('Something went wrong. Please try again.'))
     except MailmanApiError:
         return utils.render_api_error(request)
     except HTTPError as e:
         messages.error(request, e.msg)
     return redirect('list_summary', self.mailing_list.list_id)
Пример #7
0
 def test_subscribe_fails(self):
     user_emails = ['*****@*****.**']
     form = ListSubscribe(user_emails, {
         'email': 'notaemail',
         'display_name': 'Someone',
     })
     self.assertFalse(form.is_valid())
Пример #8
0
 def test_subscribe_works(self):
     user_emails = ['*****@*****.**']
     form = ListSubscribe(user_emails, {
         'email': '*****@*****.**',
         'display_name': 'Someone'
     })
     self.assertTrue(form.is_valid())
Пример #9
0
 def get(self, request, list_id):
     data = {'list': self.mailing_list,
             'userSubscribed': False,
             'subscribed_address': None,
             'public_archive': False,
             'hyperkitty_enabled': False}
     if self.mailing_list.settings['archive_policy'] == 'public':
         data['public_archive'] = True
     if ('hyperkitty' in settings.INSTALLED_APPS and
             'hyperkitty' in self.mailing_list.archivers and
             self.mailing_list.archivers['hyperkitty']):
         data['hyperkitty_enabled'] = True
     if request.user.is_authenticated():
         user_emails = EmailAddress.objects.filter(
             user=request.user, verified=True).order_by(
             "email").values_list("email", flat=True)
         for address in user_emails:
             try:
                 self.mailing_list.get_member(address)
             except ValueError:
                 pass
             else:
                 data['userSubscribed'] = True
                 data['subscribed_address'] = address
                 break  # no need to test more addresses
         data['subscribe_form'] = ListSubscribe(user_emails)
     else:
         user_emails = None
     return render(request, 'postorius/lists/summary.html', data)
Пример #10
0
 def post(self, request, list_id):
     try:
         user_emails = EmailAddress.objects.filter(
             user=request.user,
             verified=True).order_by("email").values_list("email",
                                                          flat=True)
         form = ListSubscribe(user_emails, request.POST)
         # Find the currently subscribed email
         old_email = None
         for address in user_emails:
             try:
                 self.mailing_list.get_member(address)
             except ValueError:
                 pass
             else:
                 old_email = address
                 break  # no need to test more addresses
         assert old_email is not None
         if form.is_valid():
             email = form.cleaned_data['email']
             if old_email == email:
                 messages.error(request, _('You are already subscribed'))
             else:
                 self.mailing_list.unsubscribe(old_email)
                 # Since the action is done via the web UI, no email
                 # confirmation is needed.
                 response = self.mailing_list.subscribe(email,
                                                        pre_confirmed=True)
                 if (type(response) == dict
                         and response.get('token_owner') == 'moderator'):
                     messages.success(
                         request,
                         _('Your request to change the email for'
                           ' this subscription was submitted and'
                           ' is waiting for moderator approval.'))
                 else:
                     messages.success(
                         request,
                         _('Subscription changed to %s') % email)
         else:
             messages.error(request,
                            _('Something went wrong. Please try again.'))
     except HTTPError as e:
         messages.error(request, e.msg)
     return redirect('list_summary', self.mailing_list.list_id)
Пример #11
0
 def get(self, request, list_id):
     data = {'list': self.mailing_list,
             'userSubscribed': False,
             'subscribed_address': None}
     if request.user.is_authenticated():
         user_emails = [request.user.email] + request.user.other_emails
         for address in user_emails:
             try:
                 self.mailing_list.get_member(address)
             except ValueError:
                 pass
             else:
                 data['userSubscribed'] = True
                 data['subscribed_address'] = address
                 break  # no need to test more addresses
         data['subscribe_form'] = ListSubscribe(user_emails)
     else:
         user_emails = None
     return render(request, 'postorius/lists/summary.html', data)
Пример #12
0
 def get(self, request, list_id):
     data = {
         'list': self.mailing_list,
         'user_subscribed': False,
         'subscribed_address': None,
         'public_archive': False,
         'hyperkitty_enabled': False
     }
     if self.mailing_list.settings['archive_policy'] == 'public':
         data['public_archive'] = True
     if getattr(settings, 'TESTING', False) and \
             'hyperkitty' not in settings.INSTALLED_APPS:
         # avoid systematic test failure when HyperKitty is installed
         # (missing VCR request, see below).
         list(self.mailing_list.archivers)
     if ('hyperkitty' in settings.INSTALLED_APPS
             and 'hyperkitty' in self.mailing_list.archivers
             and self.mailing_list.archivers['hyperkitty']):
         data['hyperkitty_enabled'] = True
     if request.user.is_authenticated():
         user_emails = EmailAddress.objects.filter(
             user=request.user,
             verified=True).order_by("email").values_list("email",
                                                          flat=True)
         pending_requests = [r['email'] for r in self.mailing_list.requests]
         for address in user_emails:
             if address in pending_requests:
                 data['user_request_pending'] = True
                 break
             try:
                 self.mailing_list.get_member(address)
             except ValueError:
                 pass
             else:
                 data['user_subscribed'] = True
                 data['subscribed_address'] = address
                 break  # no need to test more addresses
         data['subscribe_form'] = ListSubscribe(user_emails)
     else:
         user_emails = None
         data['anonymous_subscription_form'] = ListAnonymousSubscribe()
     return render(request, 'postorius/lists/summary.html', data)
Пример #13
0
 def test_subscribe_validates_email(self):
     user_emails = ["something"]
     form = ListSubscribe(user_emails, {"email": "something", "display_name": "Someone"})
     self.assertFalse(form.is_valid())
Пример #14
0
 def test_subscribe_fails(self):
     user_emails = ["*****@*****.**"]
     form = ListSubscribe(user_emails, {"email": "notaemail", "display_name": "Someone"})
     self.assertFalse(form.is_valid())
Пример #15
0
    def post(self, request, list_id):
        """
        Subscribes an email address to a mailing list via POST and
        redirects to the `list_summary` view.
        """
        try:
            user_emails = EmailAddress.objects.filter(
                user=request.user, verified=True).order_by(
                "email").values_list("email", flat=True)
            form = ListSubscribe(user_emails, request.POST)
            if form.is_valid():
                email = request.POST.get('email')
                display_name = request.POST.get('display_name')
                link = request.POST.get('link')
                is_woman = request.POST.get('is_woman')
                is_woman_in_tech = request.POST.get('is_woman_in_tech')
                accepted_terms = request.POST.get('accepted_terms')
                country = request.POST.get('country')
                city = request.POST.get('city')
                essay = request.POST.get('essay')

                essay_subscribe = EssaySubscribe()

                # Store the values entered by the user in model class EssaySubscribe.
                essay_subscribe.list_id = list_id
                essay_subscribe.email = email
                essay_subscribe.display_name = display_name
                essay_subscribe.link = link
                essay_subscribe.essay = essay
                essay_subscribe.city = city

                if is_woman == 'Yes':
                    print "afafafafaf"
                    essay_subscribe.is_woman = True
                else:
                    essay_subscribe.is_woman = False

                if is_woman_in_tech == 'Yes':
                    essay_subscribe.is_woman_in_tech = True
                else:
                    essay_subscribe.is_woman_in_tech = False

                if accepted_terms == 'on':
                    essay_subscribe.accepted_terms = True
                essay_subscribe.country = country

                essay_subscribe.save()

                response = self.mailing_list.subscribe(
                    email, pre_verified=True, pre_confirmed=True)
                if (type(response) == dict and
                        response.get('token_owner') == 'moderator'):
                    messages.success(
                        request, _('Your subscription request has been'
                                   ' submitted and is waiting for moderator'
                                   ' approval.'))
                else:
                    messages.success(request,
                                     _('You are subscribed to %s.') %
                                     self.mailing_list.fqdn_listname)
            else:
                messages.error(request,
                               _('Something went wrong. Please try again.'))
        except HTTPError as e:
            messages.error(request, e.msg)
        return redirect('list_summary', self.mailing_list.list_id)
Пример #16
0
 def test_subscribe_works(self):
     user_emails = ['*****@*****.**']
     form = ListSubscribe(user_emails,
                          {'email': '*****@*****.**',
                           'display_name': 'Someone'})
     self.assertTrue(form.is_valid())