From dfe718ef7972527b3375901db68004991405c362 Mon Sep 17 00:00:00 2001 From: marination Date: Tue, 21 Dec 2021 15:43:48 +0530 Subject: [PATCH 1/5] fix: Convert Item links to Website Item links in Item Card Group template data - Changed link option to Website Item in Item card group template - patch to convert pre-existing data --- .../item_card_group/item_card_group.html | 4 +- .../item_card_group/item_card_group.json | 50 ++++++++-------- erpnext/patches.txt | 1 + ...ebsite_item_in_item_card_group_template.py | 58 +++++++++++++++++++ 4 files changed, 86 insertions(+), 27 deletions(-) create mode 100644 erpnext/patches/v13_0/convert_to_website_item_in_item_card_group_template.py diff --git a/erpnext/e_commerce/web_template/item_card_group/item_card_group.html b/erpnext/e_commerce/web_template/item_card_group/item_card_group.html index 33d7bccc23a..07952f056a5 100644 --- a/erpnext/e_commerce/web_template/item_card_group/item_card_group.html +++ b/erpnext/e_commerce/web_template/item_card_group/item_card_group.html @@ -23,9 +23,9 @@ {%- for index in ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] -%} {%- set item = values['card_' + index + '_item'] -%} {%- if item -%} - {%- set item = frappe.get_doc("Item", item) -%} + {%- set web_item = frappe.get_doc("Website Item", item) -%} {{ item_card( - item, is_featured=values['card_' + index + '_featured'], + web_item, is_featured=values['card_' + index + '_featured'], is_full_width=True, align="Center" ) }} {%- endif -%} diff --git a/erpnext/e_commerce/web_template/item_card_group/item_card_group.json b/erpnext/e_commerce/web_template/item_card_group/item_card_group.json index 724c4379121..ad9e2a7b243 100644 --- a/erpnext/e_commerce/web_template/item_card_group/item_card_group.json +++ b/erpnext/e_commerce/web_template/item_card_group/item_card_group.json @@ -37,8 +37,8 @@ { "fieldname": "card_1_item", "fieldtype": "Link", - "label": "Item", - "options": "Item", + "label": "Website Item", + "options": "Website Item", "reqd": 0 }, { @@ -56,8 +56,8 @@ { "fieldname": "card_2_item", "fieldtype": "Link", - "label": "Item", - "options": "Item", + "label": "Website Item", + "options": "Website Item", "reqd": 0 }, { @@ -76,8 +76,8 @@ { "fieldname": "card_3_item", "fieldtype": "Link", - "label": "Item", - "options": "Item", + "label": "Website Item", + "options": "Website Item", "reqd": 0 }, { @@ -95,8 +95,8 @@ { "fieldname": "card_4_item", "fieldtype": "Link", - "label": "Item", - "options": "Item", + "label": "Website Item", + "options": "Website Item", "reqd": 0 }, { @@ -114,8 +114,8 @@ { "fieldname": "card_5_item", "fieldtype": "Link", - "label": "Item", - "options": "Item", + "label": "Website Item", + "options": "Website Item", "reqd": 0 }, { @@ -133,8 +133,8 @@ { "fieldname": "card_6_item", "fieldtype": "Link", - "label": "Item", - "options": "Item", + "label": "Website Item", + "options": "Website Item", "reqd": 0 }, { @@ -152,8 +152,8 @@ { "fieldname": "card_7_item", "fieldtype": "Link", - "label": "Item", - "options": "Item", + "label": "Website Item", + "options": "Website Item", "reqd": 0 }, { @@ -171,8 +171,8 @@ { "fieldname": "card_8_item", "fieldtype": "Link", - "label": "Item", - "options": "Item", + "label": "Website Item", + "options": "Website Item", "reqd": 0 }, { @@ -190,8 +190,8 @@ { "fieldname": "card_9_item", "fieldtype": "Link", - "label": "Item", - "options": "Item", + "label": "Website Item", + "options": "Website Item", "reqd": 0 }, { @@ -209,8 +209,8 @@ { "fieldname": "card_10_item", "fieldtype": "Link", - "label": "Item", - "options": "Item", + "label": "Website Item", + "options": "Website Item", "reqd": 0 }, { @@ -228,8 +228,8 @@ { "fieldname": "card_11_item", "fieldtype": "Link", - "label": "Item", - "options": "Item", + "label": "Website Item", + "options": "Website Item", "reqd": 0 }, { @@ -247,8 +247,8 @@ { "fieldname": "card_12_item", "fieldtype": "Link", - "label": "Item", - "options": "Item", + "label": "Website Item", + "options": "Website Item", "reqd": 0 }, { @@ -259,7 +259,7 @@ } ], "idx": 0, - "modified": "2021-02-24 16:05:31.242342", + "modified": "2021-12-21 14:44:59.821335", "modified_by": "Administrator", "module": "E-commerce", "name": "Item Card Group", diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 4a7bcbdb085..4268d96dadc 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -337,3 +337,4 @@ erpnext.patches.v13_0.update_category_in_ltds_certificate erpnext.patches.v13_0.create_ksa_vat_custom_fields erpnext.patches.v13_0.rename_ksa_qr_field erpnext.patches.v13_0.disable_ksa_print_format_for_others # 16-12-2021 +erpnext.patches.v13_0.convert_to_website_item_in_item_card_group_template diff --git a/erpnext/patches/v13_0/convert_to_website_item_in_item_card_group_template.py b/erpnext/patches/v13_0/convert_to_website_item_in_item_card_group_template.py new file mode 100644 index 00000000000..af71df603bc --- /dev/null +++ b/erpnext/patches/v13_0/convert_to_website_item_in_item_card_group_template.py @@ -0,0 +1,58 @@ +import json +from typing import List + +import frappe + +from erpnext.e_commerce.doctype.website_item.website_item import make_website_item + + +def execute(): + """ + Convert all Item links to Website Item link values in + exisitng 'Item Card Group' Web Page Block data. + """ + frappe.reload_doc("e_commerce", "web_template", "item_card_group") + + blocks = frappe.db.get_all( + "Web Page Block", + filters={"web_template": "Item Card Group"}, + fields=["parent", "web_template_values", "name"] + ) + + fields = generate_fields_to_edit() + + for block in blocks: + web_template_value = json.loads(block.get('web_template_values')) + + for field in fields: + item = web_template_value.get(field) + if not item: + continue + + if frappe.db.exists("Website Item", {"item_code": item}): + website_item = frappe.db.get_value("Website Item", {"item_code": item}) + else: + website_item = make_new_website_item(item, web_template_value, field) + continue + + if website_item: + web_template_value[field] = website_item + + frappe.db.set_value("Web Page Block", block.name, "web_template_values", json.dumps(web_template_value)) + +def generate_fields_to_edit() -> List: + fields = [] + for i in range(1, 13): + fields.append(f"card_{i}_item") # fields like 'card_1_item', etc. + + return fields + +def make_new_website_item(item, web_template_value, field): + try: + doc = frappe.get_doc("Item", item) + web_item = make_website_item(doc) # returns [website_item.name, item_name] + return web_item[0] + except Exception: + title = f"{item}: Error while converting to Website Item " + frappe.log_error(title + "for Item Card Group Template" + "\n\n" + frappe.get_traceback(), title=title) + return None From dd01c0e854401ea05d94634da23f77640950a2ef Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 22 Dec 2021 10:43:00 +0530 Subject: [PATCH 2/5] fix: Currency fix for `cost` field in subscription plan (#28821) (#28898) (cherry picked from commit be103ab8e6a172a4cfb25e85d3985fa46a2cfc50) Co-authored-by: Subin Tom <36098155+nemesis189@users.noreply.github.com> --- .../doctype/subscription_plan/subscription_plan.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/subscription_plan/subscription_plan.json b/erpnext/accounts/doctype/subscription_plan/subscription_plan.json index 878ae098891..563df79eec7 100644 --- a/erpnext/accounts/doctype/subscription_plan/subscription_plan.json +++ b/erpnext/accounts/doctype/subscription_plan/subscription_plan.json @@ -75,7 +75,8 @@ "fieldname": "cost", "fieldtype": "Currency", "in_list_view": 1, - "label": "Cost" + "label": "Cost", + "options": "currency" }, { "depends_on": "eval:doc.price_determination==\"Based On Price List\"", @@ -147,7 +148,7 @@ } ], "links": [], - "modified": "2021-08-13 10:53:44.205774", + "modified": "2021-12-10 15:24:15.794477", "modified_by": "Administrator", "module": "Accounts", "name": "Subscription Plan", From 85abb95df62c3932ca89b3e8a03abd08f5abb928 Mon Sep 17 00:00:00 2001 From: marination Date: Wed, 22 Dec 2021 12:24:09 +0530 Subject: [PATCH 3/5] fix: Sider --- .../convert_to_website_item_in_item_card_group_template.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/patches/v13_0/convert_to_website_item_in_item_card_group_template.py b/erpnext/patches/v13_0/convert_to_website_item_in_item_card_group_template.py index af71df603bc..34d28e47f32 100644 --- a/erpnext/patches/v13_0/convert_to_website_item_in_item_card_group_template.py +++ b/erpnext/patches/v13_0/convert_to_website_item_in_item_card_group_template.py @@ -54,5 +54,5 @@ def make_new_website_item(item, web_template_value, field): return web_item[0] except Exception: title = f"{item}: Error while converting to Website Item " - frappe.log_error(title + "for Item Card Group Template" + "\n\n" + frappe.get_traceback(), title=title) + frappe.log_error(title + "for Item Card Group Template" + "\n\n" + frappe.get_traceback(), title=title) return None From ffdaa849fb330103477ffcb6f10b2bcdd7d801d9 Mon Sep 17 00:00:00 2001 From: marination Date: Wed, 22 Dec 2021 12:26:43 +0530 Subject: [PATCH 4/5] fix: Code cleanup --- .../convert_to_website_item_in_item_card_group_template.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/erpnext/patches/v13_0/convert_to_website_item_in_item_card_group_template.py b/erpnext/patches/v13_0/convert_to_website_item_in_item_card_group_template.py index 34d28e47f32..673f7053918 100644 --- a/erpnext/patches/v13_0/convert_to_website_item_in_item_card_group_template.py +++ b/erpnext/patches/v13_0/convert_to_website_item_in_item_card_group_template.py @@ -1,5 +1,5 @@ import json -from typing import List +from typing import List, Union import frappe @@ -32,7 +32,7 @@ def execute(): if frappe.db.exists("Website Item", {"item_code": item}): website_item = frappe.db.get_value("Website Item", {"item_code": item}) else: - website_item = make_new_website_item(item, web_template_value, field) + website_item = make_new_website_item(item) continue if website_item: @@ -47,7 +47,7 @@ def generate_fields_to_edit() -> List: return fields -def make_new_website_item(item, web_template_value, field): +def make_new_website_item(item: str) -> Union[str, None]: try: doc = frappe.get_doc("Item", item) web_item = make_website_item(doc) # returns [website_item.name, item_name] From a6e7b43f0b31ce8a1d4732d9646608c8cd7d1ff7 Mon Sep 17 00:00:00 2001 From: marination Date: Wed, 22 Dec 2021 13:23:00 +0530 Subject: [PATCH 5/5] fix: Faulty 'continue' not setting value in db --- .../v13_0/convert_to_website_item_in_item_card_group_template.py | 1 - 1 file changed, 1 deletion(-) diff --git a/erpnext/patches/v13_0/convert_to_website_item_in_item_card_group_template.py b/erpnext/patches/v13_0/convert_to_website_item_in_item_card_group_template.py index 673f7053918..d3ee3f8276c 100644 --- a/erpnext/patches/v13_0/convert_to_website_item_in_item_card_group_template.py +++ b/erpnext/patches/v13_0/convert_to_website_item_in_item_card_group_template.py @@ -33,7 +33,6 @@ def execute(): website_item = frappe.db.get_value("Website Item", {"item_code": item}) else: website_item = make_new_website_item(item) - continue if website_item: web_template_value[field] = website_item