예제 #1
0
def register(request):
    if request.method == "POST":
        form = RegistrationForm(request.POST)

        if form.is_valid():
            data = form.cleaned_data

            new_customer = Customer()

            # Stock django User model fields
            new_customer.username = data['id_number']
            new_customer.set_password(data['password'])
            new_customer.first_name = data['first_name']
            new_customer.last_name = data['last_name']
            new_customer.email = data['email']

            # Our custom properties
            new_customer.phone_number = data['phone_number']
            new_customer.address = data['address']

            new_customer.save()

            return HttpResponseRedirect(reverse("register_thanks"))
    else:
        form = RegistrationForm()

    return render(request, "users/register.html", {"form": form})
 def _decorated(request, *args, **kwargs):
     user = request.user
     if not user.is_authenticated():
         return redirect_to_login(request.build_absolute_uri())
     try:
         if not user.customer.active:
             return HttpResponseRedirect(inactive_url)
     except Customer.DoesNotExist:
         if not user.is_staff:
             raise NoCustomerException()
         else:
             # Create a customer object for the staff member
             cust = Customer(user=user, active=True)
             cust.save()
     return view(request, *args, **kwargs)
예제 #3
0
def register_customer(request):
    if request.method == 'POST':
        new_customer = Customer(
            first_name=request.POST['first_name'],
            last_name=request.POST['last_name'],
            phone=request.POST['phone'],
            email=request.POST['email'],
            address=request.POST['address'],
            password=request.POST['password'],
        )
        new_customer.save()
        return HttpResponseRedirect(reverse('users:login'))
    elif request.method == 'GET':
        template = 'users/register.html'
        return render(request, template)
    return HttpResponse('Error: No se puede Guardar!')
예제 #4
0
def get_session(request, user=None):
    '''get or create anonymous customer through request.session_key'''
    if not request.session.session_key:
        request.session.save()

    session_key = request.session.session_key
    customer_session, created = Customer.objects.get_or_create(
        session_id=session_key)

    if created:
        print('NEW ANONYMOUS USER WAS CREATED')
        print('ANONYMOUS SESSION_ID:', customer_session.session_id)
    else:
        print('ANONYMOUS EXiSTS')
        print('ANONYMOUS SESSION_ID:', customer_session.session_id)
        if user and customer_session.user:
            customer_session = Customer(user=user)
            customer_session.save()
    return customer_session
예제 #5
0
    def create(self, validated_data):
        user = User.objects.create_user(**self.initial_data)
        user.save()

        # person = Person(user=user, **person_data)
        person = Person(user=user)
        person.save()

        is_user = self.initial_data['is_user']

        if is_user == 'customer':
            customer = Customer(person_info=person)
            customer.save()
        elif is_user == 'vendor':
            vendor = Vendor(person_info=person)
            vendor.save()
        else:
            '''Here goes Partner'''

        return user
예제 #6
0
    def save(self, commit=True):
        cleaned_data = self.cleaned_data
        instance = super().save(commit=False)
        instance.set_password(self.cleaned_data.get('password'))
        instance.save()
        client = Customer(user=instance)
        address = cleaned_data.get('address')
        if address:
            client.address = address
        avatar = cleaned_data.get('avatar')
        if avatar:
            file = Image(file=avatar,
                         owner=instance,
                         name=avatar.name,
                         original_filename=avatar.name)
            file.save()
            instance.image = file
        client.save()
        instance.save()

        return instance
예제 #7
0
def checkout(request):
    try:
        if request.user.customer.membership:
            return redirect('users:settings')
    except Customer.DoesNotExist:
        pass
    coupons = {'haloween': 31, 'welcome': 10}
    if request.method == 'POST':
        stripe_customer = stripe.Customer.create(
            email=request.user.email, source=request.POST['stripeToken'])
        plan = os.getenv('MONTHLY', None)
        if request.POST['plan'] == 'yearly':
            plan = os.getenv('YEARLY', None)
        if request.POST['coupon'] in coupons:
            percentage = coupons[request.POST['coupon'].lower()]
            try:
                coupon = stripe.Coupon.create(
                    duration='once',
                    id=request.POST['coupon'].lower(),
                    percent_off=percentage)
            except Exception:
                pass
            subscriprion = stripe.Subscription.create(
                customer=stripe_customer.id,
                items=[{
                    'plan': plan
                }],
                coupon=request.POST['coupon'].lower())
        else:
            subscriprion = stripe.Subscription.create(
                customer=stripe_customer.id, items=[{
                    'plan': plan
                }])
        customer = Customer()
        customer.user = request.user
        customer.stripe_id = stripe.customer.id
        customer.membership = True
        customer.cancel_at_period_end = False
        customer.stripe_subscription_id = subscriprion.id
        customer.save()
        return redirect('website:home')
    else:
        plan = 'monthly'
        coupon = 'none'
        price = 1000
        og_dollar = 10
        coupon_dollar = 0
        final_dollar = 10
        if request.method == 'GET' and 'plan' in request.GET:
            if request.GET['plan'] == 'yearly':
                plan = 'yearly'
                price = 10000
                og_dollar = 100
                final_dollar = 100
        if request.method == 'GET' and 'coupon' in request.GET:
            if request.GET['coupon'].lower() in coupons:
                coupon = request.GET['coupon'].lower()
                percentage = coupons[coupons]
                coupons_price = int(percentage / 100) * price
                price = price - coupons_price
                coupon_dollar = (str(coupons_price[:-2]) + '.' +
                                 str(coupons_price[-2:]))
                final_dollar = str(price[:-2]) + '.' + str(price[-2:])
        return render(
            request, 'plans/checkout.html', {
                'plan': plan,
                'coupon': coupon,
                'price': price,
                'og_dollar': og_dollar,
                'coupon_dollar': coupon_dollar,
                'final_dollar': final_dollar
            })