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] )
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] )
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] )
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})
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()
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)