def test_shop_overview_block(rf, data): (today, expected_today, expected_mtd, expected_ytd) = data product = get_default_product() sp = product.get_shop_instance(get_default_shop()) sp.default_price_value = "10" sp.save() get_order_for_date(today, product) o = get_order_for_date(today, product) o.customer = None o.save() get_order_for_date(date(today.year - 1, 12, 31), product) get_order_for_date(date(today.year, 1, 1), product) get_order_for_date(date(today.year, today.month, 1), product) block = get_shop_overview_block(rf.get("/"), DEFAULT_CURRENCY, today) soup = BeautifulSoup(block.content) _, today_sales, mtd, ytd, totals = soup.find_all("tr") assert today_sales.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == str( expected_today) assert today_sales.find_all( "td")[NUM_CUSTOMERS_COLUMN_INDEX].string == str(expected_today) assert mtd.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == str( expected_mtd) assert mtd.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == str( expected_mtd) assert ytd.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == str( expected_ytd) assert ytd.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == str( expected_ytd) assert totals.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == "5" assert totals.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == "5"
def test_shop_overview_block(rf, data): (today, expected_today, expected_mtd, expected_ytd) = data product = get_default_product() sp = product.get_shop_instance(get_default_shop()) sp.default_price_value = "10" sp.save() get_order_for_date(today, product) o = get_order_for_date(today, product) o.customer = None o.save() get_order_for_date(date(today.year - 1, 12, 31), product) get_order_for_date(date(today.year, 1, 1), product) get_order_for_date(date(today.year, today.month, 1), product) block = get_shop_overview_block(rf.get("/"), DEFAULT_CURRENCY, today) soup = BeautifulSoup(block.content) _, today_sales, mtd, ytd, totals = soup.find_all("tr") assert today_sales.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == str(expected_today) assert today_sales.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == str(expected_today) assert mtd.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == str(expected_mtd) assert mtd.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == str(expected_mtd) assert ytd.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == str(expected_ytd) assert ytd.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == str(expected_ytd) assert totals.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == "5" assert totals.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == "5"
def get_dashboard_blocks(self, request): import shuup.admin.modules.sales_dashboard.dashboard as dashboard currency = self.currency if not currency: return yield dashboard.get_sales_of_the_day_block(request, currency) yield dashboard.get_lifetime_sales_block(request, currency) yield dashboard.get_avg_purchase_size_block(request, currency) yield dashboard.get_open_orders_block(request, currency) yield dashboard.get_order_value_chart_dashboard_block(request, currency) yield dashboard.get_shop_overview_block(request, currency) yield dashboard.get_recent_orders_block(request, currency)
def get_dashboard_blocks(self, request): import shuup.admin.modules.sales_dashboard.dashboard as dashboard currency = self.currency if not currency: return yield dashboard.get_sales_of_the_day_block(request, currency) yield dashboard.get_lifetime_sales_block(request, currency) yield dashboard.get_avg_purchase_size_block(request, currency) yield dashboard.get_open_orders_block(request, currency) yield dashboard.get_order_value_chart_dashboard_block( request, currency) yield dashboard.get_shop_overview_block(request, currency) yield dashboard.get_recent_orders_block(request, currency)
def test_shop_overview_block(rf, data, admin_user): with override_settings(SHUUP_ENABLE_MULTIPLE_SHOPS=True): shop1 = get_default_shop() shop2 = get_shop(identifier="shop2", status=ShopStatus.ENABLED, name="Shop2") (today, expected_today, expected_mtd, expected_ytd) = data product = get_default_product() sp = product.get_shop_instance(shop1) sp.default_price_value = "10" sp.save() get_order_for_date(today, product) o = get_order_for_date(today, product) o.customer = None o.save() get_order_for_date(date(today.year - 1, 12, 31), product) get_order_for_date(date(today.year, 1, 1), product) get_order_for_date(date(today.year, today.month, 1), product) for shop in [shop1, shop2]: request = apply_request_middleware(rf.get("/"), user=admin_user, shop=shop) block = get_shop_overview_block(request, currency=DEFAULT_CURRENCY, for_date=today) soup = BeautifulSoup(block.content) _, today_sales, mtd, ytd, totals = soup.find_all("tr") if shop == shop1: assert today_sales.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == str(expected_today) assert today_sales.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == str(expected_today) assert mtd.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == str(expected_mtd) assert mtd.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == str(expected_mtd) assert ytd.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == str(expected_ytd) assert ytd.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == str(expected_ytd) assert totals.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == "5" assert totals.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == "5" else: assert today_sales.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == "0" assert today_sales.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == "0" assert mtd.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == "0" assert mtd.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == "0" assert ytd.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == "0" assert ytd.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == "0" assert totals.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == "0" assert totals.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == "0"
def test_shop_overview_block(rf, data, admin_user): with override_settings(SHUUP_ENABLE_MULTIPLE_SHOPS=True): shop1 = get_default_shop() shop2 = get_shop(identifier="shop2", status=ShopStatus.ENABLED, name="Shop2") (today, expected_today, expected_mtd, expected_ytd) = data product = get_default_product() sp = product.get_shop_instance(shop1) sp.default_price_value = "10" sp.save() get_order_for_date(today, product) o = get_order_for_date(today, product) o.customer = None o.save() get_order_for_date(date(today.year - 1, 12, 31), product) get_order_for_date(date(today.year, 1, 1), product) get_order_for_date(date(today.year, today.month, 1), product) for shop in [shop1, shop2]: request = apply_request_middleware(rf.get("/"), user=admin_user, shop=shop) block = get_shop_overview_block(request, currency=DEFAULT_CURRENCY, for_date=today) soup = BeautifulSoup(block.content) _, today_sales, mtd, ytd, totals = soup.find_all("tr") if shop == shop1: assert today_sales.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == str(expected_today) assert today_sales.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == str(expected_today) assert mtd.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == str(expected_mtd) assert mtd.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == str(expected_mtd) assert ytd.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == str(expected_ytd) assert ytd.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == str(expected_ytd) assert totals.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == "5" assert totals.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == "5" else: assert today_sales.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == "0" assert today_sales.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == "0" assert mtd.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == "0" assert mtd.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == "0" assert ytd.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == "0" assert ytd.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == "0" assert totals.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == "0" assert totals.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == "0"
def test_shop_overview_block(rf): today = date.today() product = get_default_product() sp = product.get_shop_instance(get_default_shop()) sp.default_price_value = "10" sp.save() get_order_for_date(today, product) o = get_order_for_date(today, product) o.customer = None o.save() get_order_for_date(date(today.year, 1, 1), product) get_order_for_date(date(today.year, today.month, 1), product) block = get_shop_overview_block(rf.get("/"), DEFAULT_CURRENCY) soup = BeautifulSoup(block.content) _, today_sales, mtd, ytd, totals = soup.find_all("tr") assert today_sales.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == "2" assert today_sales.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == "2" assert mtd.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == ("4" if today.month == 1 else "3") assert mtd.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == ("4" if today.month == 1 else "3") assert ytd.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == "4" assert ytd.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == "4" assert totals.find_all("td")[NUM_ORDERS_COLUMN_INDEX].string == "4" assert totals.find_all("td")[NUM_CUSTOMERS_COLUMN_INDEX].string == "4"