Ejemplo n.º 1
0
    def test_course_registration_features(self):
        query_features = ['code', 'course_id', 'transaction_group_name', 'created_by', 'redeemed_by']
        for i in range(5):
            course_code = CourseRegistrationCode(
                code="test_code{}".format(i), course_id=self.course_key.to_deprecated_string(),
                transaction_group_name='TestName', created_by=self.users[0]
            )
            course_code.save()

        order = Order(user=self.users[0], status='purchased')
        order.save()

        registration_code_redemption = RegistrationCodeRedemption(
            order=order, registration_code_id=1, redeemed_by=self.users[0]
        )
        registration_code_redemption.save()
        registration_codes = CourseRegistrationCode.objects.all()
        course_registration_list = course_registration_features(query_features, registration_codes, csv_type='download')
        self.assertEqual(len(course_registration_list), len(registration_codes))
        for course_registration in course_registration_list:
            self.assertEqual(set(course_registration.keys()), set(query_features))
            self.assertIn(course_registration['code'], [registration_code.code for registration_code in registration_codes])
            self.assertIn(
                course_registration['course_id'],
                [registration_code.course_id.to_deprecated_string() for registration_code in registration_codes]
            )
            self.assertIn(
                course_registration['transaction_group_name'],
                [registration_code.transaction_group_name for registration_code in registration_codes]
            )
Ejemplo n.º 2
0
    def test_course_registration_features(self):
        query_features = [
            'code', 'redeem_code_url', 'course_id', 'company_name', 'created_by',
            'redeemed_by', 'invoice_id', 'purchaser', 'customer_reference_number', 'internal_reference'
        ]
        order = Order(user=self.instructor, status='purchased')
        order.save()

        registration_code_redemption = RegistrationCodeRedemption(
            registration_code_id=1, redeemed_by=self.instructor
        )
        registration_code_redemption.save()
        registration_codes = CourseRegistrationCode.objects.all()
        course_registration_list = course_registration_features(query_features, registration_codes, csv_type='download')
        self.assertEqual(len(course_registration_list), len(registration_codes))
        for course_registration in course_registration_list:
            self.assertEqual(set(course_registration.keys()), set(query_features))
            self.assertIn(course_registration['code'], [registration_code.code for registration_code in registration_codes])
            self.assertIn(
                course_registration['course_id'],
                [registration_code.course_id.to_deprecated_string() for registration_code in registration_codes]
            )
            self.assertIn(
                course_registration['company_name'],
                [getattr(registration_code.invoice, 'company_name') for registration_code in registration_codes]
            )
            self.assertIn(
                course_registration['invoice_id'],
                [registration_code.invoice_id for registration_code in registration_codes]
            )
Ejemplo n.º 3
0
    def test_course_registration_features(self):
        query_features = [
            'code', 'course_id', 'company_name', 'created_by',
            'redeemed_by', 'invoice_id', 'purchaser', 'customer_reference_number', 'internal_reference'
        ]
        order = Order(user=self.instructor, status='purchased')
        order.save()

        registration_code_redemption = RegistrationCodeRedemption(
            order=order, registration_code_id=1, redeemed_by=self.instructor
        )
        registration_code_redemption.save()
        registration_codes = CourseRegistrationCode.objects.all()
        course_registration_list = course_registration_features(query_features, registration_codes, csv_type='download')
        self.assertEqual(len(course_registration_list), len(registration_codes))
        for course_registration in course_registration_list:
            self.assertEqual(set(course_registration.keys()), set(query_features))
            self.assertIn(course_registration['code'], [registration_code.code for registration_code in registration_codes])
            self.assertIn(
                course_registration['course_id'],
                [registration_code.course_id.to_deprecated_string() for registration_code in registration_codes]
            )
            self.assertIn(
                course_registration['company_name'],
                [getattr(registration_code.invoice, 'company_name') for registration_code in registration_codes]
            )
            self.assertIn(
                course_registration['invoice_id'],
                [registration_code.invoice_id for registration_code in registration_codes]
            )
Ejemplo n.º 4
0
    def post(self,request):
        order = Order(customer=request.user.customer)
        customer = Customer.objects.get(user = request.user)
        cart_data = customer.cart
        total = 0
        for i, item in enumerate(cart_data):
            total = cart_data[i]['price']+total

        order.total_price = total
        order.save()

        for i, item in enumerate(cart_data):
            orderitem = OrderItem(order = order)
            product = Product.objects.get(id=cart_data[i]['product'])
            orderitem.product = product
            orderitem.quantity= cart_data[i]['quantity']
            orderitem.price = cart_data[i]['price']
            orderitem.save()

        del request.session['cartcount']
        customer.cart =[]
        customer.save()

        added = True
        return render(request,'checkout.html',{'added':added})
Ejemplo n.º 5
0
def checkout(request):
    store = Store.objects.get(subdomain=request.subdomain)
    cart = get_cart(request)
    if cart == {}:
        return redirect("/products/")
    try:
        order = Order(user=request.session["user"], store=store)
        order.save()
    except KeyError:
        return redirect("/home/", {"error_message": "Please sign in"})  #!!!
    for product, key in cart.iteritems():
        i = Item(product=product, quantity=key, order=order)
        i.save()
    request.session["cart"] = cart = {}
    return render_to_response("checkout.html", {"store_name": store.name})
 def setUp(self):
     user = User.objects.create_user({
         'username': '******',
         'password': '******'
     })
     user.save()
     order = Order(user=user,
                   amount=500,
                   ordered_date=datetime.datetime(2019,
                                                  8,
                                                  24,
                                                  tzinfo=pytz.UTC))
     order.save()
     order = Order(user=user,
                   amount=500,
                   ordered_date=datetime.datetime(2019,
                                                  8,
                                                  25,
                                                  tzinfo=pytz.UTC))
     order.save()
     order = Order(user=user,
                   amount=500,
                   ordered_date=datetime.datetime(2019,
                                                  7,
                                                  25,
                                                  tzinfo=pytz.UTC))
     order.save()
     self.orders = Order.objects.all()
Ejemplo n.º 7
0
    def post(self, request, *args, **kwargs):
        u_client = request.user
        u_cart = request.user.cart
        #lineas = ProductList.objects.filter(cart=u_cart)
        cart_lines = u_cart.productlist_set.all()

        #Creo una nueva compra
        new_order = Order()
        #Datos del cliente
        if u_client.profile.first_name and u_client.profile.last_name:
            new_order.c_name = u_client.profile.first_name + ' ' +  u_client.profile.last_name
        else:
            new_order.c_name = 'Sin nombre'
        new_order.c_email = u_client.email
        new_order.c_profile_pk = u_client.profile.pk
        new_order.save()

        #Guardo los libros del carrito en la compra
        for l in cart_lines:
            #Por cada linea del carrito creo una linea de la orden
            new_order_line = OrderLine()

            #A que orden pertenece
            new_order_line.order = new_order

            #Datos del libro
            new_order_line.b_title = l.book.title
            new_order_line.b_editorial = l.book.editorial.name
            new_order_line.b_price = l.book.get_price()
            new_order_line.b_pk = l.book.pk
            new_order_line.quantity = l.quantity

            new_order_line.save()
            #Elimino los libros del carrito
            l.delete()
        return redirect(new_order)