fix: Sider and Tests

This commit is contained in:
marination
2021-04-08 15:25:43 +05:30
parent aff53b762e
commit 6d85e821c1
12 changed files with 59 additions and 54 deletions

View File

@@ -5,7 +5,7 @@
from __future__ import unicode_literals from __future__ import unicode_literals
import frappe import frappe
from frappe.utils import cint from frappe.utils import cint
from frappe import _ from frappe import _, msgprint
from frappe.model.document import Document from frappe.model.document import Document
from frappe.utils import get_datetime, get_datetime_str, now_datetime from frappe.utils import get_datetime, get_datetime_str, now_datetime
@@ -30,7 +30,8 @@ class ECommerceSettings(Document):
frappe.clear_document_cache("E Commerce Settings", "E Commerce Settings") frappe.clear_document_cache("E Commerce Settings", "E Commerce Settings")
def validate_field_filters(self): def validate_field_filters(self):
if not (self.enable_field_filters and self.filter_fields): return if not (self.enable_field_filters and self.filter_fields):
return
item_meta = frappe.get_meta("Item") item_meta = frappe.get_meta("Item")
valid_fields = [df.fieldname for df in item_meta.fields if df.fieldtype in ["Link", "Table MultiSelect"]] valid_fields = [df.fieldname for df in item_meta.fields if df.fieldtype in ["Link", "Table MultiSelect"]]
@@ -40,7 +41,8 @@ class ECommerceSettings(Document):
frappe.throw(_("Filter Fields Row #{0}: Fieldname <b>{1}</b> must be of type 'Link' or 'Table MultiSelect'").format(f.idx, f.fieldname)) frappe.throw(_("Filter Fields Row #{0}: Fieldname <b>{1}</b> must be of type 'Link' or 'Table MultiSelect'").format(f.idx, f.fieldname))
def validate_attribute_filters(self): def validate_attribute_filters(self):
if not (self.enable_attribute_filters and self.filter_attributes): return if not (self.enable_attribute_filters and self.filter_attributes):
return
# if attribute filters are enabled, hide_variants should be disabled # if attribute filters are enabled, hide_variants should be disabled
self.hide_variants = 0 self.hide_variants = 0

View File

@@ -4,9 +4,6 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from datetime import datetime from datetime import datetime
from six import string_types
import json
import frappe import frappe
from frappe.model.document import Document from frappe.model.document import Document
from frappe.contacts.doctype.contact.contact import get_contact_name from frappe.contacts.doctype.contact.contact import get_contact_name

View File

@@ -48,6 +48,7 @@ class WebsiteItem(WebsiteGenerator):
self.update_template_item() self.update_template_item()
def on_trash(self): def on_trash(self):
super(WebsiteItem, self).on_trash()
self.publish_unpublish_desk_item(publish=False) self.publish_unpublish_desk_item(publish=False)
def validate_duplicate_website_item(self): def validate_duplicate_website_item(self):
@@ -380,7 +381,8 @@ def invalidate_cache_for_web_item(doc):
@frappe.whitelist() @frappe.whitelist()
def make_website_item(doc, save=True): def make_website_item(doc, save=True):
if not doc: return if not doc:
return
if isinstance(doc, string_types): if isinstance(doc, string_types):
doc = json.loads(doc) doc = json.loads(doc)

View File

@@ -53,7 +53,7 @@ def remove_from_wishlist(item_code):
delete delete
from `tabWishlist Items` from `tabWishlist Items`
where item_code=%(item_code)s where item_code=%(item_code)s
"""%{"item_code": frappe.db.escape(item_code)}) """ % {"item_code": frappe.db.escape(item_code)})
frappe.db.commit() frappe.db.commit()

View File

@@ -15,7 +15,8 @@ class ProductFiltersBuilder:
self.item_group = item_group self.item_group = item_group
def get_field_filters(self): def get_field_filters(self):
if not self.item_group and not self.doc.enable_field_filters: return if not self.item_group and not self.doc.enable_field_filters:
return
filter_fields = [row.fieldname for row in self.doc.filter_fields] filter_fields = [row.fieldname for row in self.doc.filter_fields]
@@ -46,7 +47,8 @@ class ProductFiltersBuilder:
values = [d.name for d in frappe.get_all(doctype, filters)] values = [d.name for d in frappe.get_all(doctype, filters)]
# Remove None # Remove None
if None in values: values.remove(None) if None in values:
values.remove(None)
if values: if values:
filter_data.append([df, values]) filter_data.append([df, values])
@@ -54,7 +56,8 @@ class ProductFiltersBuilder:
return filter_data return filter_data
def get_attribute_filters(self): def get_attribute_filters(self):
if not self.item_group and not self.doc.enable_attribute_filters: return if not self.item_group and not self.doc.enable_attribute_filters:
return
attributes = [row.attribute for row in self.doc.filter_attributes] attributes = [row.attribute for row in self.doc.filter_attributes]
attribute_docs = [ attribute_docs = [

View File

@@ -2,10 +2,8 @@ from __future__ import unicode_literals
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
import frappe, unittest import frappe, unittest
from frappe.utils import set_request, get_html_for_route from frappe.utils import get_html_for_route
from frappe.website.render import render
from erpnext.e_commerce.product_query import ProductQuery from erpnext.e_commerce.product_query import ProductQuery
from erpnext.stock.doctype.item.test_item import make_item_variant
from erpnext.e_commerce.doctype.website_item.website_item import make_website_item from erpnext.e_commerce.doctype.website_item.website_item import make_website_item
test_dependencies = ["Item"] test_dependencies = ["Item"]

View File

@@ -11,7 +11,8 @@ def get_item_codes_by_attributes(attribute_filters, template_item_code=None):
if not isinstance(attribute_values, list): if not isinstance(attribute_values, list):
attribute_values = [attribute_values] attribute_values = [attribute_values]
if not attribute_values: continue if not attribute_values:
continue
wheres = [] wheres = []
query_values = [] query_values = []

View File

@@ -37,8 +37,10 @@ class ProductQuery:
Returns: Returns:
list: List of results with set fields list: List of results with set fields
""" """
if fields: self.build_fields_filters(fields) if fields:
if search_term: self.build_search_filters(search_term) self.build_fields_filters(fields)
if search_term:
self.build_search_filters(search_term)
if self.settings.hide_variants: if self.settings.hide_variants:
self.conditions += " and wi.variant_of is null" self.conditions += " and wi.variant_of is null"
@@ -106,7 +108,8 @@ class ProductQuery:
self.conditions += " and iva.parent = wi.item_code" self.conditions += " and iva.parent = wi.item_code"
for attribute, values in attributes.items(): for attribute, values in attributes.items():
if not isinstance(values, list): values = [values] if not isinstance(values, list):
values = [values]
conditions_copy = self.conditions conditions_copy = self.conditions
substitutions_copy = self.substitutions.copy() substitutions_copy = self.substitutions.copy()

View File

@@ -6,7 +6,8 @@ def execute():
for row in homepage.products: for row in homepage.products:
web_item = frappe.db.get_value("Website Item", {"item_code": row.item_code}, "name") web_item = frappe.db.get_value("Website Item", {"item_code": row.item_code}, "name")
if not web_item: continue if not web_item:
continue
row.item_code = web_item row.item_code = web_item

View File

@@ -343,7 +343,6 @@ class Item(Document):
(self.item_name, self.description, self.brand, self.name)) (self.item_name, self.description, self.brand, self.name))
def on_trash(self): def on_trash(self):
super(Item, self).on_trash()
frappe.db.sql("""delete from tabBin where item_code=%s""", self.name) frappe.db.sql("""delete from tabBin where item_code=%s""", self.name)
frappe.db.sql("delete from `tabItem Price` where item_code=%s", self.name) frappe.db.sql("delete from `tabItem Price` where item_code=%s", self.name)
for variant_of in frappe.get_all("Item", filters={"variant_of": self.name}): for variant_of in frappe.get_all("Item", filters={"variant_of": self.name}):

View File

@@ -26,7 +26,6 @@ $(() => {
{fieldname: "comment", fieldtype: "Small Text", label: "Your Review"} {fieldname: "comment", fieldtype: "Small Text", label: "Your Review"}
], ],
primary_action: function() { primary_action: function() {
let me = this;
let data = d.get_values(); let data = d.get_values();
frappe.call({ frappe.call({
method: "erpnext.e_commerce.doctype.item_review.item_review.add_item_review", method: "erpnext.e_commerce.doctype.item_review.item_review.add_item_review",
@@ -39,7 +38,7 @@ $(() => {
freeze: true, freeze: true,
freeze_message: __("Submitting Review ..."), freeze_message: __("Submitting Review ..."),
callback: (r) => { callback: (r) => {
if(!r.exc) { if (!r.exc) {
frappe.msgprint({ frappe.msgprint({
message: __("Thank you for submitting your review"), message: __("Thank you for submitting your review"),
title: __("Review Submitted"), title: __("Review Submitted"),
@@ -74,7 +73,7 @@ $(() => {
end: me.page_length end: me.page_length
}, },
callback: (result) => { callback: (result) => {
if(result.message) { if (result.message) {
let res = result.message; let res = result.message;
me.get_user_review_html(res.reviews); me.get_user_review_html(res.reviews);
@@ -85,7 +84,7 @@ $(() => {
} }
} }
}) });
}); });
} }
@@ -121,7 +120,7 @@ $(() => {
get_review_stars(rating) { get_review_stars(rating) {
let stars = ``; let stars = ``;
for(let i = 1; i < 6; i++) { for (let i = 1; i < 6; i++) {
let fill_class = i <= rating ? 'star-click' : ''; let fill_class = i <= rating ? 'star-click' : '';
stars += `<svg class="icon icon-md ${fill_class}"> stars += `<svg class="icon icon-md ${fill_class}">
<use href="#icon-star"></use> <use href="#icon-star"></use>

View File

@@ -34,5 +34,5 @@ def get_wishlist_items():
from from
`tabWishlist Items` `tabWishlist Items`
where where
parent=%(user)s"""%{"user": frappe.db.escape(frappe.session.user)}, as_dict=1) parent=%(user)s""" % {"user": frappe.db.escape(frappe.session.user)}, as_dict=1)
return return