示例#1
0
def account_edit(request):
    account = request.user
    if request.method == 'POST':
        form = UserAccountForm(request.POST, instance=account)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('overview'))
    else:
        form = UserAccountForm(instance=account)
    return render_to_response("account.html", {
        'account_form': form,
    }, context_instance=RequestContext(request))
示例#2
0
def create_account(request):
    if request.method == 'POST':
        form = UserAccountForm(request.POST)
        if form.is_valid():
            form.save()
            messages.success(
                request, 'Account created Successfully.Proceed now to Login')
        else:
            messages.error(request, 'Error Exists in your form Fields')
    else:
        form = UserAccountForm()
    return render(request, 'signup.html', {'form': form})
def login(request):
    if request.method == "POST":
        account_form = UserAccountForm(request.POST)
        if account_form.is_valid():
            user = auth.authenticate(username=request.POST['username'],
                                     password=request.POST['password'])
            if user:
                auth.login(user=user, request=request)
                messages.success(request, "You have successfully logged in!")
                return render(request, 'index.html')
            else:
                account_form.add_error(
                    None, "Your username or password is incorrect")
    else:
        account_form = UserAccountForm()
    return render(request, 'login.html', {"account_form": account_form})
示例#4
0
def profile(request):
    """
    Render the profile page and load/save UserAccountForm.
    """
    if request.method == 'POST':
        form = UserAccountForm(request.POST, instance=request.user)
        if form.is_valid():
            form.save()
            messages.success(request, "Your details have been updated")
            return redirect(reverse('profile'))
        else:
            messages.error(request, "We've been unable to update your details")
    else:
        form = UserAccountForm(instance=request.user)

    args = {'form': form, 'my_courses': request.user.module_set.all()}

    args.update(csrf(request))
    return render(request, 'accounts/profile.html', args)
示例#5
0
def account(request):
    try:
        profile = request.user.useraccount
    except UserAccount.DoesNotExist:
        profile = UserAccount(user=request.user)
    my_form = UserAccountForm()
    if request.method == "POST":
        form = UserAccountForm(request.POST, instance=profile)
        if form.is_valid():
            form.save()
            messages.success(request,
                             ' Account Details Submitted Successfully')
        else:
            messages.error(request,
                           'Oops!!! There are Some Errors in your Form')
    else:
        form = UserAccountForm(instance=profile)
    return render(request, 'accounts/account_details.html', {
        'form': form,
    })
示例#6
0
def create_account(request):
    if request.method == 'POST':
        form = UserAccountForm(request.POST)
        admin_count = User.objects.filter(is_superuser=True).count()
        if admin_count > 0:
            messages.error(
                request, "You are not allowed to register to this application")
        else:
            if form.is_valid():
                fs = form.save(commit=False)
                fs.is_superuser = True
                fs.save()
                form = UserAccountForm()
                messages.success(
                    request,
                    'System Administrator Account Created Successfully.Proceed now to login'
                )
            else:
                messages.error(
                    request,
                    'Data not entered correctly.Please enter a valid data')
    else:
        form = UserAccountForm()
    return render(request, 'sys_admin/create_account.html', {'form': form})
示例#7
0
def checkout_success(request, order_number):
    """Checkout success page"""
    save_info = request.session.get('save_info')
    order = get_object_or_404(Order, order_number=order_number)

    if request.user.is_authenticated:
        account = UserAccount.objects.get(user=request.user)
        # Attach the order to user's profile
        order.user_account = account
        order.save()

        # Save user info
        if save_info:
            account_data = {
                'default_phone_number': order.phone_number,
                'default_street_address1': order.street_address1,
                'default_street_address2': order.street_address2,
                'default_town_or_city': order.town_or_city,
                'default_county': order.county,
                'default_postcode_zipcode': order.postcode_zipcode,
                'default_country': order.country,
            }
            user_account_form = UserAccountForm(account_data, instance=account)
            if user_account_form.is_valid():
                user_account_form.save()

    messages.success(
        request, f'Order Successful! \
        Your order number is {order_number}. A confirmation \
        email will be sent to {order.email}.')

    if 'bag' in request.session:
        del request.session['bag']

    template = 'checkout/checkout_success.html'
    context = {
        'order': order,
    }

    return render(request, template, context)
示例#8
0
def checkout(request):
    stripe_publishable_key = settings.STRIPE_PUBLISHABLE_KEY
    stripe_secret_key = settings.STRIPE_SECRET_KEY

    if request.method == 'POST':
        cart = request.session.get('cart', {})

        form_data = {
            'first_name': request.POST['first_name'],
            'last_name': request.POST['last_name'],
            'email': request.POST['email'],
            'phone_number': request.POST['phone_number'],
            'country': request.POST['country'],
            'postcode': request.POST['postcode'],
            'town_or_city': request.POST['town_or_city'],
            'street_address1': request.POST['street_address1'],
            'street_address2': request.POST['street_address2'],
            'county': request.POST['county'],
        }
        order_form = OrderForm(form_data)

        # If the payment is successful
        if order_form.is_valid():
            order = order_form.save()

            # Iterate through the cart items to create the order_line_items
            for item_id, quantity in cart.items(): 
                try:
                    game = Game.objects.get(id=item_id)
                    order_line_item = OrderLineItem(
                        order=order,
                        game=game,
                        quantity=quantity,
                    )
                    order_line_item.save()
                except:
                    messages.error(request) 
                    order.delete()
                    return redirect(reverse('view_cart'))

            request.session['save_info'] = 'save-info' in request.POST
            
            messages.info(request, 'Payment successful! \r You will receive an email with the order details.')
            request.session["cart"] = {}
            send_confirmation_email(order)

            if request.user.is_authenticated:
                account = UserAccount.objects.get(user=request.user)
                save_info = request.session.get('save_info')
                order.user_account = account
                order.save()

                # Save the user's info
                if save_info:
                    user_data = {
                        'default_first_name': order.first_name,
                        'default_last_name': order.last_name,
                        'default_phone_number': order.phone_number,
                        'default_country': order.country,
                        'default_postcode': order.postcode,
                        'default_town_or_city': order.town_or_city,
                        'default_street_address1': order.street_address1,
                        'default_street_address2': order.street_address2,
                        'default_county': order.county,
                    }
                    user_account_form = UserAccountForm(user_data, instance=account)
                    if user_account_form.is_valid():
                        user_account_form.save()

            return redirect(reverse("games")) # Should return to {% url 'order_history' %}
        
        # If the payment fails
        else:
            messages.info(request, 'Sorry, we were unable to process the payment.')                    

    else: # GET
        cart = request.session.get('cart', {})
        if not cart:
            messages.info(request, "Your cart is empty")
            return redirect(reverse('games'))

        current_cart = cart_contents(request)
        total = current_cart['grand_total']
        stripe_total = round(total * 100)
        stripe.api_key = stripe_secret_key

        # Stripe payment intent
        intent = stripe.PaymentIntent.create(
            amount=stripe_total,
            currency=settings.STRIPE_CURRENCY,
        )
        
        # Prefill the form with the user's information, if he is authenticated
        if request.user.is_authenticated:
            try:
                account = UserAccount.objects.get(user=request.user)
                order_form = OrderForm(initial={
                    'first_name': account.default_first_name,
                    'last_name': account.default_last_name,
                    'email': account.user.email,
                    'phone_number': account.default_phone_number,
                    'country': account.default_country,
                    'postcode': account.default_postcode,
                    'town_or_city': account.default_town_or_city,
                    'street_address1': account.default_street_address1,
                    'street_address2': account.default_street_address2,
                    'county': account.default_county,
                })
            except UserAccount.DoesNotExist:
                order_form = OrderForm()
        else:
            order_form = OrderForm()
        

    if not stripe_publishable_key:
        messages.info(request, 'Stripe public key is missing.')
    
    template = 'checkout/checkout.html'
    context = {
        'order_form': order_form,
        'stripe_publishable_key': stripe_publishable_key,
        'client_secret': intent.client_secret,
    }

    return render(request, template, context)
 def login_form_test(self):
     login_form = UserAccountForm({
         'username': '******',
         'password': '******',
     })
     self.assertTrue(login_form.is_valid())
 def login_form_requires_password(self):
     login_form = UserAccountForm({
         'email': '*****@*****.**',
     })
     self.assertFalse(login_form.is_valid())