Ejemplo n.º 1
0
def subscriptionview(request):
    if request.method == 'POST':
        # create a form instance and populate it with data from the request:
        form = SubscriptionForm(request.POST)

        # establish initial values
        email = ''
        phone = ''
        gpu_list = None
        subscriber = None

        # if form is valid then populate values
        if form.is_valid():
            if form.cleaned_data.__contains__('email'):
                email = form.cleaned_data['email']
            if form.cleaned_data.__contains__('phone'):
                phone = form.cleaned_data['phone']
            if form.cleaned_data.__contains__('gpus'):
                gpu_list = form.cleaned_data['gpus']

        # otherwise return and inform user of invalid form
        else:
            return render(request, 'suboverview.html', {'form': form})

        # scold user if email and phone are both empty
        if email == '' and phone == '':
            messages.error(
                request,
                'At least one of email or phone is required for un/re/subscription.'
            )
            return render(request, 'suboverview.html', {'form': form})

        # otherwise query the subscriber with the provided info
        else:
            subscriber = Subscriber.objects.filter(
                Q(email=email) | Q(phone=phone))

        # retrieve number of subscribers with this info (should be <= 2)
        subcount = subscriber.count()

        # process unsubscription request
        if 'unsubscribe' in request.POST:
            unsubscribe(subcount, request, subscriber)

        # process re/subscription request
        elif 'subscribe' in request.POST:
            subscribe(subcount, request, subscriber, gpu_list, form, email,
                      phone)

    # if a GET (or any other method) we'll create a blank form
    else:
        form = SubscriptionForm()

    return render(request, 'suboverview.html', {'form': form})
Ejemplo n.º 2
0
 def test_must_inform_email_or_phone(self):
     form = SubscriptionForm({
         'name': 'User',
         'cpf': '01234567891',
     })
     self.assertFalse(form.is_valid())
     self.assertTrue(form.errors.get('__all__'))
Ejemplo n.º 3
0
 def make_validated_form(self, **kwargs):
     valid = dict(name='Fabio Oliveira',
                  cpf='12345678901',
                  email='*****@*****.**',
                  phone='21-99186180')
     data = dict(valid, **kwargs)
     form = SubscriptionForm(data)
     form.is_valid()
     return form
Ejemplo n.º 4
0
def new(request):
    form = SubscriptionForm(initial={
        'name': 'Entre o seu nome',
        'cpf': 'Digite o seu CPF sem pontos',
        'email': 'Informe o seu email',
        'phone': '21-96186180',
    })
    context = RequestContext(request, {'form': form})
    return render_to_response('subscriptions/new.html', context)
Ejemplo n.º 5
0
    def creates_a_subscription_for_the_subscriber_to_the_feed(self):
        form = SubscriptionForm({'subscriber': self.subscriber.pk,
                                 'feed_record': self.feed_record.pk})

        assert form.is_valid(), 'The form had errors: %r' % (form.errors,)
        form.save()
        subscription = self.subscriber.subscription(self.feed, self.library)

        assert subscription is not None
 def test_valid_subscription_form_data(self):
     form = SubscriptionForm({
         'credit_card_number': "4242424242424242",
         'cvv': "123",
         'expiry_month': '11',
         'expiry_year': '2025',
         'stripe_id': 'tok_visa'
     })
     self.assertTrue(form.is_valid())
Ejemplo n.º 7
0
 def test_returns_error_if_cpf_is_not_all_digits(self):
     form = SubscriptionForm({
         'name': 'User',
         'cpf': '0123456789a',
         'email': '*****@*****.**',
         'phone': '555-78376',
     })
     self.assertFalse(form.is_valid())
     #self.assertIn('cpf', form.errors)
     self.assertTrue(form.errors.get('cpf'))
Ejemplo n.º 8
0
 def test_returns_error_with_less_than_11_digits_in_cpf(self):
     form = SubscriptionForm({
         'name': 'User',
         'cpf': '123456789',
         'email': '*****@*****.**',
         'phone': '555-78376',
     })
     self.assertFalse(form.is_valid())
     #self.assertIn('cpf', form.errors)
     self.assertTrue(form.errors.get('cpf'))
Ejemplo n.º 9
0
    def make_validated_form(self, **kwargs):
        valid = dict(name='Victor',
                    cpf='11122233344',
                    email='*****@*****.**',
                    phone='(21) 2222-3333')

        data = dict(valid, **kwargs)
        form = SubscriptionForm(data)
        form.is_valid()
        return form
Ejemplo n.º 10
0
def create(request):
    form = SubscriptionForm(request.POST)  # receive the data of form.
    if not form.is_valid():
        return render(request, 'subscriptions/subscription_form.html',
                      {'form': form})
    subscription = form.save()

    _send_mail('Confirmação de inscrição', settings.DEFAULT_FROM_EMAIL,
               subscription.email, 'subscriptions/subscription_email.txt',
               {'subscription': subscription})

    return HttpResponseRedirect(r('subscriptions:detail', subscription.pk))
Ejemplo n.º 11
0
def create(request):
    form = SubscriptionForm(request.POST)

    if not form.is_valid():
        context = RequestContext(request, {'form': form})
        return render_to_response('subscriptions/new.html', context)

    s = Subscription()
    s.name = form.cleaned_data['name']
    s.cpf = form.cleaned_data['cpf']
    s.email = form.cleaned_data['email']
    s.phone = form.cleaned_data['phone']
    s.save()

    # notifica o cadastro
    send_subscription_email(s)
    return HttpResponseRedirect(reverse('subscriptions:success', args=[ s.pk ]))
Ejemplo n.º 12
0
 def test_form_has_fields(self):
     """Form must have 4 fields. """
     form = SubscriptionForm()
     expected = ['name', 'cpf', 'email', 'phone']
     self.assertSequenceEqual(expected, list(form.fields))
Ejemplo n.º 13
0
 def get_context_data(self, **kwargs):
     context = super(IndexView, self).get_context_data()
     config = SiteConfiguration.get_solo()
     if config.show_site:
         context['subscribe_form'] = SubscriptionForm()
     return context
Ejemplo n.º 14
0
 def test_if_form_has_no_paid_field(self):
     form =  SubscriptionForm()
     self.assertFalse(form.fields.get('paid'))
Ejemplo n.º 15
0
def empty_form(request):
    return render(request, 'subscriptions/subscription_form.html',
                  {'form': SubscriptionForm()})
Ejemplo n.º 16
0
 def setUp(self):
     self.form = SubscriptionForm()