test: Recommendations, Reviews and Wishlist

- Tests for verified and unverified item reviewers
- Test for recommended items and their prices
- Test for adding removing items from Wishlist
- Bug: Wishlist deletes all entries of an item code irrespective of user
- Get Item reviews only if enabled
- Removed price fields from Wishlist Item and made fields read only
- Removed unused price stored as data on Wishlist buttons
- Customer Reviews page checks if reviews are enabled else shows No Reviews
- Moved price stock fetching in Wishlist in separate function
- Made fields read only in Item Review
This commit is contained in:
marination
2021-08-09 21:00:31 +05:30
parent 4d254a7ad3
commit b4529b8511
17 changed files with 417 additions and 125 deletions

View File

@@ -3,29 +3,16 @@
import frappe
from erpnext.utilities.product import get_price
from erpnext.e_commerce.shopping_cart.cart import _set_price_list
from erpnext.e_commerce.doctype.e_commerce_settings.e_commerce_settings import get_shopping_cart_settings
def get_context(context):
settings = frappe.get_doc("E Commerce Settings")
items = get_wishlist_items()
selling_price_list = _set_price_list(settings)
is_guest = frappe.session.user == "Guest"
for item in items:
if settings.show_stock_availability:
item.available = get_stock_availability(item.item_code, item.get("warehouse"))
settings = get_shopping_cart_settings()
items = get_wishlist_items() if not is_guest else []
selling_price_list = _set_price_list(settings) if not is_guest else None
price_details = get_price(
item.item_code,
selling_price_list,
settings.default_customer_group,
settings.company
)
if price_details:
item.formatted_price = price_details.get('formatted_price')
item.formatted_mrp = price_details.get('formatted_mrp')
if item.formatted_mrp:
item.discount = price_details.get('formatted_discount_percent') or \
price_details.get('formatted_discount_rate')
items = set_stock_price_details(items, settings, selling_price_list)
context.items = items
context.settings = settings
@@ -53,6 +40,27 @@ def get_wishlist_items():
},
fields=[
"web_item_name", "item_code", "item_name",
"website_item", "price", "warehouse",
"website_item", "warehouse",
"image", "item_group", "route"
])
def set_stock_price_details(items, settings, selling_price_list):
for item in items:
if settings.show_stock_availability:
item.available = get_stock_availability(item.item_code, item.get("warehouse"))
price_details = get_price(
item.item_code,
selling_price_list,
settings.default_customer_group,
settings.company
)
if price_details:
item.formatted_price = price_details.get('formatted_price')
item.formatted_mrp = price_details.get('formatted_mrp')
if item.formatted_mrp:
item.discount = price_details.get('formatted_discount_percent') or \
price_details.get('formatted_discount_rate')
return items