fix!(portal): remove Homepage
diff --git a/erpnext/patches/v12_0/set_default_homepage_type.py b/erpnext/patches/v12_0/set_default_homepage_type.py
deleted file mode 100644
index d91fe33..0000000
--- a/erpnext/patches/v12_0/set_default_homepage_type.py
+++ /dev/null
@@ -1,5 +0,0 @@
-import frappe
-
-
-def execute():
- frappe.db.set_single_value("Homepage", "hero_section_based_on", "Default")
diff --git a/erpnext/portal/doctype/homepage/__init__.py b/erpnext/portal/doctype/homepage/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/portal/doctype/homepage/__init__.py
+++ /dev/null
diff --git a/erpnext/portal/doctype/homepage/homepage.js b/erpnext/portal/doctype/homepage/homepage.js
deleted file mode 100644
index 6739979..0000000
--- a/erpnext/portal/doctype/homepage/homepage.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
-// For license information, please see license.txt
-
-frappe.ui.form.on('Homepage', {
- refresh: function(frm) {
- frm.add_custom_button(__('Set Meta Tags'), () => {
- frappe.utils.set_meta_tag('home');
- });
- frm.add_custom_button(__('Customize Homepage Sections'), () => {
- frappe.set_route('List', 'Homepage Section', 'List');
- });
- },
-});
diff --git a/erpnext/portal/doctype/homepage/homepage.json b/erpnext/portal/doctype/homepage/homepage.json
deleted file mode 100644
index 2b891f7..0000000
--- a/erpnext/portal/doctype/homepage/homepage.json
+++ /dev/null
@@ -1,122 +0,0 @@
-{
- "actions": [],
- "beta": 1,
- "creation": "2016-04-22 05:27:52.109319",
- "doctype": "DocType",
- "document_type": "Setup",
- "engine": "InnoDB",
- "field_order": [
- "company",
- "hero_section_based_on",
- "column_break_2",
- "title",
- "section_break_4",
- "tag_line",
- "description",
- "hero_image",
- "slideshow",
- "hero_section"
- ],
- "fields": [
- {
- "fieldname": "company",
- "fieldtype": "Link",
- "in_list_view": 1,
- "label": "Company",
- "options": "Company",
- "reqd": 1
- },
- {
- "fieldname": "hero_section_based_on",
- "fieldtype": "Select",
- "label": "Hero Section Based On",
- "options": "Default\nSlideshow\nHomepage Section"
- },
- {
- "fieldname": "column_break_2",
- "fieldtype": "Column Break"
- },
- {
- "fieldname": "title",
- "fieldtype": "Data",
- "label": "Title"
- },
- {
- "fieldname": "section_break_4",
- "fieldtype": "Section Break",
- "label": "Hero Section"
- },
- {
- "depends_on": "eval:doc.hero_section_based_on === 'Default'",
- "description": "Company Tagline for website homepage",
- "fieldname": "tag_line",
- "fieldtype": "Data",
- "in_list_view": 1,
- "label": "Tag Line",
- "reqd": 1
- },
- {
- "depends_on": "eval:doc.hero_section_based_on === 'Default'",
- "description": "Company Description for website homepage",
- "fieldname": "description",
- "fieldtype": "Text",
- "in_list_view": 1,
- "label": "Description",
- "reqd": 1
- },
- {
- "depends_on": "eval:doc.hero_section_based_on === 'Default'",
- "fieldname": "hero_image",
- "fieldtype": "Attach Image",
- "label": "Hero Image"
- },
- {
- "depends_on": "eval:doc.hero_section_based_on === 'Slideshow'",
- "fieldname": "slideshow",
- "fieldtype": "Link",
- "label": "Homepage Slideshow",
- "options": "Website Slideshow"
- },
- {
- "depends_on": "eval:doc.hero_section_based_on === 'Homepage Section'",
- "fieldname": "hero_section",
- "fieldtype": "Link",
- "label": "Homepage Section",
- "options": "Homepage Section"
- }
- ],
- "issingle": 1,
- "links": [],
- "modified": "2022-12-19 21:10:29.127277",
- "modified_by": "Administrator",
- "module": "Portal",
- "name": "Homepage",
- "owner": "Administrator",
- "permissions": [
- {
- "create": 1,
- "delete": 1,
- "email": 1,
- "print": 1,
- "read": 1,
- "role": "System Manager",
- "share": 1,
- "write": 1
- },
- {
- "create": 1,
- "delete": 1,
- "email": 1,
- "print": 1,
- "read": 1,
- "role": "Administrator",
- "share": 1,
- "write": 1
- }
- ],
- "sort_field": "modified",
- "sort_order": "DESC",
- "states": [],
- "title_field": "company",
- "track_changes": 1
-}
\ No newline at end of file
diff --git a/erpnext/portal/doctype/homepage/homepage.py b/erpnext/portal/doctype/homepage/homepage.py
deleted file mode 100644
index 3539b28..0000000
--- a/erpnext/portal/doctype/homepage/homepage.py
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors
-# For license information, please see license.txt
-
-
-import frappe
-from frappe.model.document import Document
-from frappe.website.utils import delete_page_cache
-
-
-class Homepage(Document):
- # begin: auto-generated types
- # This code is auto-generated. Do not modify anything in this block.
-
- from typing import TYPE_CHECKING
-
- if TYPE_CHECKING:
- from frappe.types import DF
-
- company: DF.Link
- description: DF.Text
- hero_image: DF.AttachImage | None
- hero_section: DF.Link | None
- hero_section_based_on: DF.Literal["Default", "Slideshow", "Homepage Section"]
- slideshow: DF.Link | None
- tag_line: DF.Data
- title: DF.Data | None
- # end: auto-generated types
-
- def validate(self):
- if not self.description:
- self.description = frappe._("This is an example website auto-generated from ERPNext")
- delete_page_cache("home")
diff --git a/erpnext/portal/doctype/homepage/test_homepage.py b/erpnext/portal/doctype/homepage/test_homepage.py
deleted file mode 100644
index e153223..0000000
--- a/erpnext/portal/doctype/homepage/test_homepage.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and Contributors
-# See license.txt
-
-import unittest
-
-import frappe
-from frappe.utils import set_request
-from frappe.website.serve import get_response
-
-
-class TestHomepage(unittest.TestCase):
- def test_homepage_load(self):
- set_request(method="GET", path="home")
- response = get_response()
-
- self.assertEqual(response.status_code, 200)
-
- html = frappe.safe_decode(response.get_data())
- self.assertTrue('<section class="hero-section' in html)
diff --git a/erpnext/portal/doctype/homepage_section/__init__.py b/erpnext/portal/doctype/homepage_section/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/portal/doctype/homepage_section/__init__.py
+++ /dev/null
diff --git a/erpnext/portal/doctype/homepage_section/homepage_section.js b/erpnext/portal/doctype/homepage_section/homepage_section.js
deleted file mode 100644
index 68859eb..0000000
--- a/erpnext/portal/doctype/homepage_section/homepage_section.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors
-// For license information, please see license.txt
-
-frappe.ui.form.on('Homepage Section', {
-
-});
diff --git a/erpnext/portal/doctype/homepage_section/homepage_section.json b/erpnext/portal/doctype/homepage_section/homepage_section.json
deleted file mode 100644
index 0692126..0000000
--- a/erpnext/portal/doctype/homepage_section/homepage_section.json
+++ /dev/null
@@ -1,336 +0,0 @@
-{
- "allow_copy": 0,
- "allow_events_in_timeline": 0,
- "allow_guest_to_view": 0,
- "allow_import": 0,
- "allow_rename": 1,
- "autoname": "Prompt",
- "beta": 0,
- "creation": "2019-02-10 19:42:35.809238",
- "custom": 0,
- "docstatus": 0,
- "doctype": "DocType",
- "document_type": "",
- "editable_grid": 1,
- "engine": "InnoDB",
- "fields": [
- {
- "allow_bulk_edit": 0,
- "allow_in_quick_entry": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "section_based_on",
- "fieldtype": "Select",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Section Based On",
- "length": 0,
- "no_copy": 0,
- "options": "Cards\nCustom HTML",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "translatable": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_in_quick_entry": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "collapsible_depends_on": "",
- "columns": 0,
- "depends_on": "eval:doc.section_based_on === 'Cards'",
- "fieldname": "section_cards_section",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Section Cards",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "translatable": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_in_quick_entry": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "",
- "fieldname": "section_cards",
- "fieldtype": "Table",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Section Cards",
- "length": 0,
- "no_copy": 0,
- "options": "Homepage Section Card",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "translatable": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_in_quick_entry": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "collapsible_depends_on": "",
- "columns": 0,
- "default": "3",
- "depends_on": "",
- "description": "Number of columns for this section. 3 cards will be shown per row if you select 3 columns.",
- "fieldname": "no_of_columns",
- "fieldtype": "Select",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Number of Columns",
- "length": 0,
- "no_copy": 0,
- "options": "1\n2\n3\n4\n6",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "translatable": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_in_quick_entry": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "collapsible_depends_on": "",
- "columns": 0,
- "depends_on": "eval:doc.section_based_on === 'Custom HTML'",
- "fieldname": "custom_html_section",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Custom HTML",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "translatable": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_in_quick_entry": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "",
- "description": "Use this field to render any custom HTML in the section.",
- "fieldname": "section_html",
- "fieldtype": "Code",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Section HTML",
- "length": 0,
- "no_copy": 0,
- "options": "HTML",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "translatable": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_in_quick_entry": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "section_break_7",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "translatable": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_in_quick_entry": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "description": "Order in which sections should appear. 0 is first, 1 is second and so on.",
- "fieldname": "section_order",
- "fieldtype": "Int",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Section Order",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "translatable": 0,
- "unique": 0
- }
- ],
- "has_web_view": 0,
- "hide_heading": 0,
- "hide_toolbar": 0,
- "idx": 0,
- "image_view": 0,
- "in_create": 0,
- "is_submittable": 0,
- "issingle": 0,
- "istable": 0,
- "max_attachments": 0,
- "modified": "2019-03-04 23:52:31.290468",
- "modified_by": "Administrator",
- "module": "Portal",
- "name": "Homepage Section",
- "name_case": "",
- "owner": "Administrator",
- "permissions": [
- {
- "amend": 0,
- "cancel": 0,
- "create": 1,
- "delete": 1,
- "email": 1,
- "export": 1,
- "if_owner": 0,
- "import": 0,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "System Manager",
- "set_user_permissions": 0,
- "share": 1,
- "submit": 0,
- "write": 1
- }
- ],
- "quick_entry": 0,
- "read_only": 0,
- "read_only_onload": 0,
- "show_name_in_global_search": 0,
- "sort_field": "modified",
- "sort_order": "DESC",
- "track_changes": 1,
- "track_seen": 0,
- "track_views": 0
-}
\ No newline at end of file
diff --git a/erpnext/portal/doctype/homepage_section/homepage_section.py b/erpnext/portal/doctype/homepage_section/homepage_section.py
deleted file mode 100644
index 9499ce3..0000000
--- a/erpnext/portal/doctype/homepage_section/homepage_section.py
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors
-# For license information, please see license.txt
-
-
-from frappe.model.document import Document
-from frappe.utils import cint
-
-
-class HomepageSection(Document):
- # begin: auto-generated types
- # This code is auto-generated. Do not modify anything in this block.
-
- from typing import TYPE_CHECKING
-
- if TYPE_CHECKING:
- from frappe.types import DF
-
- from erpnext.portal.doctype.homepage_section_card.homepage_section_card import (
- HomepageSectionCard,
- )
-
- no_of_columns: DF.Literal["1", "2", "3", "4", "6"]
- section_based_on: DF.Literal["Cards", "Custom HTML"]
- section_cards: DF.Table[HomepageSectionCard]
- section_html: DF.Code | None
- section_order: DF.Int
- # end: auto-generated types
-
- @property
- def column_value(self):
- return cint(12 / cint(self.no_of_columns or 3))
diff --git a/erpnext/portal/doctype/homepage_section/test_homepage_section.py b/erpnext/portal/doctype/homepage_section/test_homepage_section.py
deleted file mode 100644
index 3df56e6..0000000
--- a/erpnext/portal/doctype/homepage_section/test_homepage_section.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and Contributors
-# See license.txt
-
-import unittest
-
-import frappe
-from bs4 import BeautifulSoup
-from frappe.utils import set_request
-from frappe.website.serve import get_response
-
-
-class TestHomepageSection(unittest.TestCase):
- def test_homepage_section_custom_html(self):
- frappe.get_doc(
- {
- "doctype": "Homepage Section",
- "name": "Custom HTML Section",
- "section_based_on": "Custom HTML",
- "section_html": '<div class="custom-section">My custom html</div>',
- }
- ).insert()
-
- set_request(method="GET", path="home")
- response = get_response()
-
- self.assertEqual(response.status_code, 200)
-
- html = frappe.safe_decode(response.get_data())
-
- soup = BeautifulSoup(html, "html.parser")
- sections = soup.find("main").find_all(class_="custom-section")
- self.assertEqual(len(sections), 1)
-
- homepage_section = sections[0]
- self.assertEqual(homepage_section.text, "My custom html")
-
- # cleanup
- frappe.db.rollback()
diff --git a/erpnext/portal/doctype/homepage_section_card/__init__.py b/erpnext/portal/doctype/homepage_section_card/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/portal/doctype/homepage_section_card/__init__.py
+++ /dev/null
diff --git a/erpnext/portal/doctype/homepage_section_card/homepage_section_card.json b/erpnext/portal/doctype/homepage_section_card/homepage_section_card.json
deleted file mode 100644
index 9092b26..0000000
--- a/erpnext/portal/doctype/homepage_section_card/homepage_section_card.json
+++ /dev/null
@@ -1,203 +0,0 @@
-{
- "allow_copy": 0,
- "allow_events_in_timeline": 0,
- "allow_guest_to_view": 0,
- "allow_import": 0,
- "allow_rename": 0,
- "beta": 0,
- "creation": "2019-02-10 19:39:02.734686",
- "custom": 0,
- "docstatus": 0,
- "doctype": "DocType",
- "document_type": "",
- "editable_grid": 1,
- "engine": "InnoDB",
- "fields": [
- {
- "allow_bulk_edit": 0,
- "allow_in_quick_entry": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "title",
- "fieldtype": "Data",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 1,
- "in_standard_filter": 0,
- "label": "Title",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 0,
- "set_only_once": 0,
- "translatable": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_in_quick_entry": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "subtitle",
- "fieldtype": "Data",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Subtitle",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "translatable": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_in_quick_entry": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "image",
- "fieldtype": "Attach Image",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Image",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "translatable": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_in_quick_entry": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "content",
- "fieldtype": "Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Content",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "translatable": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_in_quick_entry": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "route",
- "fieldtype": "Data",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 1,
- "in_standard_filter": 0,
- "label": "Route",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "translatable": 0,
- "unique": 0
- }
- ],
- "has_web_view": 0,
- "hide_heading": 0,
- "hide_toolbar": 0,
- "idx": 0,
- "image_view": 0,
- "in_create": 0,
- "is_submittable": 0,
- "issingle": 0,
- "istable": 1,
- "max_attachments": 0,
- "modified": "2019-02-10 20:11:41.040716",
- "modified_by": "Administrator",
- "module": "Portal",
- "name": "Homepage Section Card",
- "name_case": "",
- "owner": "Administrator",
- "permissions": [],
- "quick_entry": 1,
- "read_only": 0,
- "read_only_onload": 0,
- "show_name_in_global_search": 0,
- "sort_field": "modified",
- "sort_order": "DESC",
- "track_changes": 1,
- "track_seen": 0,
- "track_views": 0
-}
\ No newline at end of file
diff --git a/erpnext/portal/doctype/homepage_section_card/homepage_section_card.py b/erpnext/portal/doctype/homepage_section_card/homepage_section_card.py
deleted file mode 100644
index ce2fe31..0000000
--- a/erpnext/portal/doctype/homepage_section_card/homepage_section_card.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors
-# For license information, please see license.txt
-
-
-from frappe.model.document import Document
-
-
-class HomepageSectionCard(Document):
- # begin: auto-generated types
- # This code is auto-generated. Do not modify anything in this block.
-
- from typing import TYPE_CHECKING
-
- if TYPE_CHECKING:
- from frappe.types import DF
-
- content: DF.Text | None
- image: DF.AttachImage | None
- parent: DF.Data
- parentfield: DF.Data
- parenttype: DF.Data
- route: DF.Data | None
- subtitle: DF.Data | None
- title: DF.Data
- # end: auto-generated types
-
- pass
diff --git a/erpnext/templates/includes/macros.html b/erpnext/templates/includes/macros.html
index dc9ee23..5c8714d 100644
--- a/erpnext/templates/includes/macros.html
+++ b/erpnext/templates/includes/macros.html
@@ -33,38 +33,6 @@
</div>
{% endmacro %}
-{% macro render_homepage_section(section) %}
-
-{% if section.section_based_on == 'Custom HTML' and section.section_html %}
- {{ section.section_html }}
-{% elif section.section_based_on == 'Cards' %}
-<section class="container my-5">
- <h3>{{ section.name }}</h3>
-
- <div class="row">
- {% for card in section.section_cards %}
- <div class="col-md-{{ section.column_value }} mb-4">
- <div class="card h-100 justify-content-between">
- {% if card.image %}
- <img class="card-img-top h-75" src="{{ card.image }}" loading="lazy" alt="{{ card.title }}"></img>
- {% endif %}
- <div class="card-body">
- <h5 class="card-title">{{ card.title }}</h5>
- <p class="card-subtitle mb-2 text-muted">{{ card.subtitle or '' }}</p>
- <p class="card-text">{{ card.content or '' | truncate(140, True) }}</p>
- </div>
- <div class="card-body flex-grow-0">
- <a href="{{ card.route }}" class="card-link">{{ _('More details') }}</a>
- </div>
- </div>
- </div>
- {% endfor %}
- </div>
-</section>
-{% endif %}
-
-{% endmacro %}
-
{%- macro item_card(item, is_featured=False, is_full_width=False, align="Left") -%}
{%- set align_items_class = resolve_class({
'align-items-end': align == 'Right',
diff --git a/erpnext/templates/pages/home.css b/erpnext/templates/pages/home.css
deleted file mode 100644
index f266149..0000000
--- a/erpnext/templates/pages/home.css
+++ /dev/null
@@ -1,8 +0,0 @@
-/* csslint ignore:start */
-{% if homepage.hero_image %}
-.hero-image {
- background-size: cover;
- padding: 10rem 0;
-}
-{% endif %}
-/* csslint ignore:end */
diff --git a/erpnext/templates/pages/home.html b/erpnext/templates/pages/home.html
deleted file mode 100644
index b9b435c..0000000
--- a/erpnext/templates/pages/home.html
+++ /dev/null
@@ -1,76 +0,0 @@
-{% extends "templates/web.html" %}
-
-{% from "erpnext/templates/includes/macros.html" import render_homepage_section %}
-
-{% block content %}
-<main>
- {% if homepage.hero_section_based_on == 'Default' %}
- <section class="hero-section border-bottom {%if homepage.hero_image%}hero-image{%endif%}"
- {% if homepage.hero_image %}
- style="background-image: url('{{ homepage.hero_image }}');"
- {%- endif %}
- >
- <div class="container py-5">
- <h1 class="d-none d-sm-block display-4">{{ homepage.tag_line }}</h1>
- <h1 class="d-block d-sm-none">{{ homepage.tag_line }}</h1>
- <h2 class="d-none d-sm-block">{{ homepage.description }}</h2>
- <h3 class="d-block d-sm-none">{{ homepage.description }}</h3>
- </div>
-
- </section>
- {% elif homepage.hero_section_based_on == 'Slideshow' and slideshow %}
- <section class="hero-section">
- {% include "templates/includes/slideshow.html" %}
- </section>
- {% elif homepage.hero_section_based_on == 'Homepage Section' %}
- {{ render_homepage_section(homepage.hero_section_doc) }}
- {% endif %}
-
- {% if homepage.products %}
- <section class="container section-products my-5">
- <h3>{{ _('Products') }}</h3>
-
- <div class="row">
- {% for item in homepage.products %}
- <div class="col-md-4 mb-4">
- <div class="card h-100 justify-content-between">
- <img class="card-img-top website-image-extra-large" src="{{ item.image }}" loading="lazy" alt="{{ item.item_name }}"></img>
- <div class="card-body flex-grow-0">
- <h5 class="card-title">{{ item.item_name }}</h5>
- <a href="{{ item.route }}" class="card-link">{{ _('More details') }}</a>
- </div>
- </div>
- </div>
- {% endfor %}
- </div>
- </section>
- {% endif %}
-
- {% if blogs %}
- <section class="container my-5">
- <h3>{{ _('Publications') }}</h3>
-
- <div class="row">
- {% for blog in blogs %}
- <div class="col-md-4 mb-4">
- <div class="card h-100">
- <div class="card-body">
- <h5 class="card-title">{{ blog.title }}</h5>
- <p class="card-subtitle mb-2 text-muted">{{ _('By {0}').format(blog.blogger) }}</p>
- <p class="card-text">{{ blog.blog_intro }}</p>
- </div>
- <div class="card-body flex-grow-0">
- <a href="{{ blog.route }}" class="card-link">{{ _('Read blog') }}</a>
- </div>
- </div>
- </div>
- {% endfor %}
- </div>
- </section>
- {% endif %}
-
- {% for section in homepage_sections %}
- {{ render_homepage_section(section) }}
- {% endfor %}
-</main>
-{% endblock %}
diff --git a/erpnext/templates/pages/home.py b/erpnext/templates/pages/home.py
deleted file mode 100644
index 751a5b0..0000000
--- a/erpnext/templates/pages/home.py
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-
-import frappe
-
-no_cache = 1
-
-
-def get_context(context):
- homepage = frappe.get_cached_doc("Homepage")
-
- homepage.title = homepage.title or homepage.company
- context.title = homepage.title
- context.homepage = homepage
-
- if homepage.hero_section_based_on == "Homepage Section" and homepage.hero_section:
- homepage.hero_section_doc = frappe.get_cached_doc("Homepage Section", homepage.hero_section)
-
- if homepage.slideshow:
- doc = frappe.get_cached_doc("Website Slideshow", homepage.slideshow)
- context.slideshow = homepage.slideshow
- context.slideshow_header = doc.header
- context.slides = doc.slideshow_items
-
- context.blogs = frappe.get_all(
- "Blog Post",
- fields=["title", "blogger", "blog_intro", "route"],
- filters={"published": 1},
- order_by="modified desc",
- limit=3,
- )
-
- # filter out homepage section which is used as hero section
- homepage_hero_section = (
- homepage.hero_section_based_on == "Homepage Section" and homepage.hero_section
- )
- homepage_sections = frappe.get_all(
- "Homepage Section",
- filters=[["name", "!=", homepage_hero_section]] if homepage_hero_section else None,
- order_by="section_order asc",
- )
- context.homepage_sections = [
- frappe.get_cached_doc("Homepage Section", name) for name in homepage_sections
- ]
-
- context.metatags = context.metatags or frappe._dict({})
- context.metatags.image = homepage.hero_image or None
- context.metatags.description = homepage.description or None