Пример #1
0
def noaccount_signup(request):
    """ Initial signup that gets us user info but does not create an account."""
    success_message = 'Thank you for signing up to be a Political Ad Sleuth!'
    if request.method == 'POST':
        form = NonUserProfileForm(request.POST)
        if form.is_valid():
            profile_obj = form.save()
            if SIGNUP_EXTRA_FIELDS:
                extra_field_data = {}
                for extra_field in SIGNUP_EXTRA_FIELDS:
                    if extra_field in request.POST:
                        extra_field_data[extra_field] = request.POST.getlist(extra_field)
                profile_obj.extra_fields = extra_field_data
                profile_obj.save()
            if profile_obj.email:

                message_text = render_to_string('volunteers/signup_autoresponse.txt')
                email_message = EmailMessage(success_message,
                                             message_text, '*****@*****.**', (profile_obj.email,),
                                             headers={'Reply-To': SIGNUP_EMAIL_REPLY_TO})
                try:
                    email_message.send()
                except SMTPException as e:
                    if hasattr(e, 'message'):
                        logger.error('SMTPException: ' + e.message)
                    else:
                        logger.error('SMTPException error!')

            request.session['nonuser_profile'] = form.cleaned_data
            request.session['nonuser_profile']['extra_fields'] = profile_obj.extra_fields
            if request.is_ajax():
                content_str = render_to_string('volunteers/_nonuser_postsignup_message.html', {'profile': profile_obj})
                resp = {'message': success_message, 'content': content_str}
                return HttpResponse(json.dumps(resp), content_type='application/json')

            messages.success(request, success_message)
            referrer = request.META.get('HTTP_REFERER', None)
            return HttpResponseRedirect(referrer or '/')
    else:
        form = NonUserProfileForm()

    if request.is_ajax():
        form_html = render_to_string('volunteers/_nonuser_profile_form.html', {'form': form})
        resp = {'message': 'Error filling out form', 'content': form_html}
        return HttpResponse(json.dumps(resp), content_type='application/json')
    return render(request, 'volunteers/nonuser_profile_edit.html', {'form': form})
Пример #2
0
def noaccount_signup(request):
    """ Initial signup that gets us user info but does not create an account."""
    success_message = 'Thank you for signing up to be a Political Ad Sleuth!'
    if request.method == 'POST':
        form = NonUserProfileForm(request.POST)
        if form.is_valid():
            profile_obj = form.save()
            if SIGNUP_EXTRA_FIELDS:
                extra_field_data = {}
                for extra_field in SIGNUP_EXTRA_FIELDS:
                    if extra_field in request.POST:
                        extra_field_data[extra_field] = request.POST.getlist(
                            extra_field)
                profile_obj.extra_fields = extra_field_data
                profile_obj.save()
            if profile_obj.email:

                message_text = render_to_string(
                    'volunteers/signup_autoresponse.txt')
                email_message = EmailMessage(
                    success_message,
                    message_text,
                    '*****@*****.**',
                    (profile_obj.email, ),
                    headers={'Reply-To': SIGNUP_EMAIL_REPLY_TO})
                try:
                    email_message.send()
                except SMTPException as e:
                    if hasattr(e, 'message'):
                        logger.error('SMTPException: ' + e.message)
                    else:
                        logger.error('SMTPException error!')

            request.session['nonuser_profile'] = form.cleaned_data
            request.session['nonuser_profile'][
                'extra_fields'] = profile_obj.extra_fields
            if request.is_ajax():
                content_str = render_to_string(
                    'volunteers/_nonuser_postsignup_message.html',
                    {'profile': profile_obj})
                resp = {'message': success_message, 'content': content_str}
                return HttpResponse(json.dumps(resp),
                                    content_type='application/json')

            messages.success(request, success_message)
            referrer = request.META.get('HTTP_REFERER', None)
            return HttpResponseRedirect(referrer or '/')
    else:
        form = NonUserProfileForm()

    if request.is_ajax():
        form_html = render_to_string('volunteers/_nonuser_profile_form.html',
                                     {'form': form})
        resp = {'message': 'Error filling out form', 'content': form_html}
        return HttpResponse(json.dumps(resp), content_type='application/json')
    return render(request, 'volunteers/nonuser_profile_edit.html',
                  {'form': form})
Пример #3
0
 def test_form_is_invalid_without_zipcode(self):
     '''NonUserProfileForm is invalid without email.'''
     form = NonUserProfileForm({'email': self.email, 'first_name': self.first_name, 'last_name': self.last_name,
                                 'phone': self.phone, 'state': self.state, 'is_a': self.is_a})
     self.assertFalse(form.is_valid())
Пример #4
0
 def setUp(self):
     self.valid_form_dict = {'email': self.email, 'first_name': self.first_name, 'last_name': self.last_name,
                 'phone': self.phone, 'state': self.state, 'zipcode': self.zipcode, 'is_a': self.is_a}
     self.valid_form = NonUserProfileForm(self.valid_form_dict)