feat: add product category cards
diff --git a/erpnext/shopping_cart/web_template/product_category_cards/product_category_cards.html b/erpnext/shopping_cart/web_template/product_category_cards/product_category_cards.html
index e69de29..88ba7fd 100644
--- a/erpnext/shopping_cart/web_template/product_category_cards/product_category_cards.html
+++ b/erpnext/shopping_cart/web_template/product_category_cards/product_category_cards.html
@@ -0,0 +1,53 @@
+{%- macro card(title, image, url, text_primary=False) -%}
+{%- set align_class = resolve_class({
+ 'text-right': text_primary,
+ 'text-centre': align == 'Center',
+ 'text-left': align == 'Left',
+}) -%}
+<div class="card h-100">
+ {% if image %}
+ <img class="card-img-top" src="{{ image }}" alt="{{ title }}">
+ {% endif %}
+ <div class="card-body text-center text-muted small">
+ {{ title or '' }}
+ </div>
+ <a href="{{ url or '#' }}" class="stretched-link"></a>
+</div>
+{%- endmacro -%}
+
+<div class="section-with-cards">
+ {%- if title -%}
+ <h2 class="section-title">{{ title }}</h2>
+ {%- endif -%}
+ {%- if subtitle -%}
+ <p class="section-description">{{ subtitle }}</p>
+ {%- endif -%}
+ <!-- {%- set card_size = card_size or 'Small' -%} -->
+ <div class="{{ resolve_class({'mt-6': title}) }}">
+ <div class="card-grid">
+ {%- for index in ['1', '2', '3', '4', '5', '6', '7', '8'] -%}
+ {%- set category = values['category_' + index] -%}
+ {%- if category -%}
+ {%- set category = frappe.get_doc("Item Group", category) -%}
+ {{ card(category.name, category.image, category.route) }}
+ {%- endif -%}
+ {%- endfor -%}
+ </div>
+ </div>
+</div>
+
+<style>
+ .card-grid {
+ display: grid;
+ grid-gap: 15px;
+ grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));;
+ }
+
+ .card {
+ border: none;
+ }
+
+ .card:hover {
+ box-shadow: 0px 16px 45px 6px rgba(0, 0, 0, 0.08), 0px 8px 10px -10px rgba(0, 0, 0, 0.04);
+ }
+</style>
diff --git a/erpnext/shopping_cart/web_template/product_category_cards/product_category_cards.json b/erpnext/shopping_cart/web_template/product_category_cards/product_category_cards.json
index 1a3143c..ba5f63b 100644
--- a/erpnext/shopping_cart/web_template/product_category_cards/product_category_cards.json
+++ b/erpnext/shopping_cart/web_template/product_category_cards/product_category_cards.json
@@ -5,78 +5,68 @@
"doctype": "Web Template",
"fields": [
{
- "__unsaved": 1,
"fieldname": "title",
"fieldtype": "Data",
"label": "Title",
"reqd": 1
},
{
- "__unsaved": 1,
"fieldname": "subtitle",
"fieldtype": "Data",
"label": "Subtitle",
"reqd": 0
},
{
- "__unsaved": 1,
- "fieldname": "category_1_group",
+ "fieldname": "category_1",
"fieldtype": "Link",
"label": "Item Group",
"options": "Item Group",
"reqd": 0
},
{
- "__unsaved": 1,
- "fieldname": "category_2_group",
+ "fieldname": "category_2",
"fieldtype": "Link",
"label": "Item Group",
"options": "Item Group",
"reqd": 0
},
{
- "__unsaved": 1,
- "fieldname": "category_3_group",
+ "fieldname": "category_3",
"fieldtype": "Link",
"label": "Item Group",
"options": "Item Group",
"reqd": 0
},
{
- "__unsaved": 1,
- "fieldname": "category_4_group",
+ "fieldname": "category_4",
"fieldtype": "Link",
"label": "Item Group",
"options": "Item Group",
"reqd": 0
},
{
- "__unsaved": 1,
- "fieldname": "category_5_group",
+ "fieldname": "category_5",
"fieldtype": "Link",
"label": "Item Group",
"options": "Item Group",
"reqd": 0
},
{
- "__unsaved": 1,
- "fieldname": "category_6_group",
+ "fieldname": "category_6",
"fieldtype": "Link",
"label": "Item Group",
"options": "Item Group",
"reqd": 0
},
{
- "__unsaved": 1,
- "fieldname": "category_7_group",
+ "fieldname": "category_7",
"fieldtype": "Link",
"label": "Item Group",
"options": "Item Group",
"reqd": 0
},
{
- "__unsaved": 1,
- "fieldname": "category_8_group",
+ "fieldname": "category_8",
"fieldtype": "Link",
"label": "Item Group",
"options": "Item Group",
@@ -84,7 +74,7 @@
}
],
"idx": 0,
- "modified": "2020-11-17 15:27:36.250460",
+ "modified": "2020-11-18 17:26:28.726260",
"modified_by": "Administrator",
"module": "Shopping Cart",
"name": "Product Category Cards",