diff --git a/frappe/website/doctype/css_class/__init__.py b/frappe/website/doctype/css_class/__init__.py
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/frappe/website/doctype/css_class/css_class.js b/frappe/website/doctype/css_class/css_class.js
deleted file mode 100644
index 4544e249bf..0000000000
--- a/frappe/website/doctype/css_class/css_class.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright (c) 2020, Frappe Technologies and contributors
-// For license information, please see license.txt
-
-frappe.ui.form.on('CSS Class', {
- // refresh: function(frm) {
-
- // }
-});
diff --git a/frappe/website/doctype/css_class/css_class.json b/frappe/website/doctype/css_class/css_class.json
deleted file mode 100644
index 2a7e1e010e..0000000000
--- a/frappe/website/doctype/css_class/css_class.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "actions": [],
- "allow_import": 1,
- "allow_rename": 1,
- "autoname": "Prompt",
- "creation": "2020-03-17 15:03:31.431344",
- "doctype": "DocType",
- "editable_grid": 1,
- "engine": "InnoDB",
- "field_order": [
- "is_global",
- "is_dynamic",
- "css"
- ],
- "fields": [
- {
- "default": "0",
- "fieldname": "is_global",
- "fieldtype": "Check",
- "label": "Is Global?"
- },
- {
- "fieldname": "css",
- "fieldtype": "Code",
- "in_list_view": 1,
- "label": "CSS",
- "reqd": 1
- },
- {
- "default": "0",
- "description": "Website Theme elements are accessible as Jinja variables. Example: \"{{ primary_color }}\"",
- "fieldname": "is_dynamic",
- "fieldtype": "Check",
- "label": "Is Dynamic?"
- }
- ],
- "links": [],
- "modified": "2020-03-17 17:01:14.874631",
- "modified_by": "Administrator",
- "module": "Website",
- "name": "CSS Class",
- "owner": "Administrator",
- "permissions": [
- {
- "create": 1,
- "delete": 1,
- "email": 1,
- "export": 1,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "Website Manager",
- "share": 1,
- "write": 1
- }
- ],
- "sort_field": "modified",
- "sort_order": "DESC",
- "track_changes": 1
-}
\ No newline at end of file
diff --git a/frappe/website/doctype/css_class/css_class.py b/frappe/website/doctype/css_class/css_class.py
deleted file mode 100644
index cb9e7483d4..0000000000
--- a/frappe/website/doctype/css_class/css_class.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2020, Frappe Technologies and contributors
-# For license information, please see license.txt
-
-from __future__ import unicode_literals
-# import frappe
-from frappe.model.document import Document
-
-class CSSClass(Document):
- pass
diff --git a/frappe/website/doctype/css_class/test_css_class.py b/frappe/website/doctype/css_class/test_css_class.py
deleted file mode 100644
index 551b44e3f2..0000000000
--- a/frappe/website/doctype/css_class/test_css_class.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2020, Frappe Technologies and Contributors
-# See license.txt
-from __future__ import unicode_literals
-
-# import frappe
-import unittest
-
-class TestCSSClass(unittest.TestCase):
- pass
diff --git a/frappe/website/doctype/web_view/__init__.py b/frappe/website/doctype/web_view/__init__.py
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/frappe/website/doctype/web_view/templates/web_view.html b/frappe/website/doctype/web_view/templates/web_view.html
deleted file mode 100644
index bf993c05fb..0000000000
--- a/frappe/website/doctype/web_view/templates/web_view.html
+++ /dev/null
@@ -1,7 +0,0 @@
-{% extends "templates/web.html" %}
-
-{% block page_content %}
- {% include "frappe/website/doctype/web_view/templates/web_view_content.html" %}
-{% endblock %}
-
-
\ No newline at end of file
diff --git a/frappe/website/doctype/web_view/templates/web_view_content.html b/frappe/website/doctype/web_view/templates/web_view_content.html
deleted file mode 100644
index a1ac143639..0000000000
--- a/frappe/website/doctype/web_view/templates/web_view_content.html
+++ /dev/null
@@ -1,83 +0,0 @@
-{%- if css_rules or css -%}
-
-
-{%- endif -%}
-
-{%- macro render_element(element) -%}
- {%- if element.element_type in ('Content', 'Web View') -%}
-
- {{ element.web_content_html }}
-
- {%- elif element.element_type=='Image' -%}
-
- {%- endif -%}
-{%- endmacro -%}
-
-{%- macro element_class(element) -%}
- {{ element.element_class or "" }}
-{%- endmacro -%}
-
-{%- macro element_style(element) -%}
- {%- if element.element_style or element.background_color -%}
- style = "{{ element.element_style or '' }} {%if element.background_color %}background-color: {{ element.background_color }};{% endif %}"
- {%- endif -%}
-{%- endmacro -%}
-
-{%- macro render_sections(sections) -%}
-{%- for section in sections -%}
-
-
- {%- if section.section_intro -%}
-
{{ section.section_intro }}
- {%- endif -%}
-
- {%- if section.section_type == 'List' -%}
- {%- for element in section.elements -%}
- {{ render_element(element) }}
- {%- endfor -%}
-
- {%- elif section.section_type == 'Grid' -%}
-
- {%- for element in section.elements -%}
-
- {{ render_element(element) }}
-
- {%- endfor -%}
-
-
- {%- elif section.section_type == 'Tabbed' -%}
-
-
- {%- for element in section.elements -%}
-
- {{ render_element(element) }}
-
- {%- endfor -%}
-
-
- {%- endif -%}
-
-
-{%- endfor -%}
-{%- endmacro -%}
-
-{% if content_type == 'HTML' -%}
-{{ content_html }}
-{%- else -%}
-{{ render_sections(sections) }}
-{%- endif -%}
\ No newline at end of file
diff --git a/frappe/website/doctype/web_view/templates/web_view_row.html b/frappe/website/doctype/web_view/templates/web_view_row.html
deleted file mode 100644
index 2b999819cb..0000000000
--- a/frappe/website/doctype/web_view/templates/web_view_row.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
\ No newline at end of file
diff --git a/frappe/website/doctype/web_view/test_web_view.py b/frappe/website/doctype/web_view/test_web_view.py
deleted file mode 100644
index 3dc072a6dd..0000000000
--- a/frappe/website/doctype/web_view/test_web_view.py
+++ /dev/null
@@ -1,115 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2020, Frappe Technologies and Contributors
-# See license.txt
-from __future__ import unicode_literals
-
-import frappe
-import unittest
-
-from frappe.website.doctype.web_page.test_web_page import get_page_content
-
-test_dependencies = ['Web Page'] # for test
-
-class TestWebView(unittest.TestCase):
- @classmethod
- def setUpClass(cls):
- frappe.delete_doc_if_exists('Web View', 'test-web-view')
- frappe.delete_doc_if_exists('Web View', 'html-web-view')
- frappe.delete_doc_if_exists('CSS Class', 'test-css-class')
-
- frappe.get_doc(dict(
- doctype = 'CSS Class',
- name = 'test-css-class',
- css = '.test-class { color: red; }'
- )).insert()
-
- # simple html webview
- frappe.get_doc(dict(
- doctype = 'Web View',
- title = 'HTML Web View',
- route = 'html-web-view',
- published = 1,
- content_type = 'HTML',
- content_html = 'Hello HTML
'
- )).insert()
-
- # simple web view with components
-
- frappe.get_doc(dict(
- doctype = 'Web View',
- title = 'Test Web View',
- route = 'test-web-view',
- published = 1,
- content_type = 'Components',
- components = [
- dict(
- element_type = 'Section',
- section_type = 'List'
- ),
- dict(
- element_type = 'Content',
- web_content_type = 'Markdown',
- web_content_markdown = '## Heading\n\nBody'
- ),
- dict(
- element_type = 'Content',
- web_content_type = 'HTML',
- web_content_html = 'Here is some HTML
'
- ),
- dict(
- element_type = 'Section',
- section_type = 'Grid'
- ),
- dict(
- element_type = 'Content',
- element_class = 'test-css-class',
- web_content_type = 'Markdown',
- web_content_markdown = 'Column 1'
- ),
- dict(
- element_type = 'Content',
- web_content_type = 'Markdown',
- web_content_markdown = 'Column 2'
- ),
- dict(
- element_type = 'Web View',
- web_view = 'html-web-view',
- ),
- ]
- )).insert()
-
- def test_web_view(self):
- html = get_page_content('test-web-view')
- self.assert_web_view_in_html(html)
-
- def test_html_web_view(self):
- html = get_page_content('html-web-view')
- self.assertTrue('Hello HTML' in html)
-
- def assert_web_view_in_html(self, html):
- self.assertTrue('Heading
' in html)
- self.assertTrue('Here is some HTML
' in html)
- self.assertTrue('Column 1' in html)
- self.assertTrue('Column 2' in html)
- self.assertTrue('Hello HTML' in html)
- self.assertTrue('.test-class { color: red; }' in html)
-
- def test_web_view_in_footer(self):
- website_settings = frappe.get_single("Website Settings")
- website_settings.footer_type = 'Web View'
- website_settings.footer_web_view = 'test-web-view'
- website_settings.save()
-
- html = get_page_content('test-web-page-1')
-
- website_settings.footer_type = 'Standard'
- website_settings.footer_web_view = ''
- website_settings.save()
-
- # web view should still come as footer
- self.assert_web_view_in_html(html)
-
- html_without_footer = get_page_content('test-web-page-1')
-
- # no more footer
- self.assertFalse('Column 1' in html_without_footer)
diff --git a/frappe/website/doctype/web_view/web_view.js b/frappe/website/doctype/web_view/web_view.js
deleted file mode 100644
index 449c0949b6..0000000000
--- a/frappe/website/doctype/web_view/web_view.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright (c) 2020, Frappe Technologies and contributors
-// For license information, please see license.txt
-
-frappe.ui.form.on('Web View', {
- // refresh: function(frm) {
-
- // }
-});
diff --git a/frappe/website/doctype/web_view/web_view.json b/frappe/website/doctype/web_view/web_view.json
deleted file mode 100644
index d4ccbad0e4..0000000000
--- a/frappe/website/doctype/web_view/web_view.json
+++ /dev/null
@@ -1,154 +0,0 @@
-{
- "actions": [],
- "allow_guest_to_view": 1,
- "allow_import": 1,
- "allow_rename": 1,
- "beta": 1,
- "creation": "2020-03-16 15:28:03.828741",
- "doctype": "DocType",
- "editable_grid": 1,
- "engine": "InnoDB",
- "field_order": [
- "title",
- "route",
- "column_break_4",
- "full_width",
- "published",
- "section_break_6",
- "content_type",
- "content_html",
- "components",
- "style_section",
- "css",
- "metatags_section",
- "meta_title",
- "meta_description",
- "meta_image"
- ],
- "fields": [
- {
- "fieldname": "title",
- "fieldtype": "Data",
- "in_list_view": 1,
- "label": "Title",
- "reqd": 1,
- "unique": 1
- },
- {
- "fieldname": "route",
- "fieldtype": "Data",
- "in_list_view": 1,
- "label": "Route"
- },
- {
- "default": "0",
- "fieldname": "published",
- "fieldtype": "Check",
- "label": "Published"
- },
- {
- "fieldname": "css",
- "fieldtype": "Code",
- "label": "CSS"
- },
- {
- "fieldname": "column_break_4",
- "fieldtype": "Column Break"
- },
- {
- "default": "0",
- "fieldname": "full_width",
- "fieldtype": "Check",
- "label": "Full Width"
- },
- {
- "fieldname": "section_break_6",
- "fieldtype": "Section Break",
- "label": "Content"
- },
- {
- "default": "Components",
- "fieldname": "content_type",
- "fieldtype": "Select",
- "label": "Content Type",
- "options": "Components\nHTML",
- "reqd": 1
- },
- {
- "depends_on": "eval:doc.content_type==='Components'",
- "fieldname": "components",
- "fieldtype": "Table",
- "label": "Components",
- "options": "Web View Component"
- },
- {
- "depends_on": "eval:doc.content_type===\"HTML\"",
- "fieldname": "content_html",
- "fieldtype": "HTML Editor",
- "label": "Content HTML"
- },
- {
- "fieldname": "style_section",
- "fieldtype": "Section Break",
- "label": "Style"
- },
- {
- "fieldname": "metatags_section",
- "fieldtype": "Section Break",
- "label": "Meta Tags"
- },
- {
- "fieldname": "meta_title",
- "fieldtype": "Data",
- "label": "Title"
- },
- {
- "fieldname": "meta_description",
- "fieldtype": "Small Text",
- "label": "Description"
- },
- {
- "fieldname": "meta_image",
- "fieldtype": "Attach Image",
- "label": "Image"
- }
- ],
- "has_web_view": 1,
- "is_published_field": "published",
- "links": [],
- "modified": "2020-04-22 00:54:23.413077",
- "modified_by": "Administrator",
- "module": "Website",
- "name": "Web View",
- "owner": "Administrator",
- "permissions": [
- {
- "create": 1,
- "delete": 1,
- "email": 1,
- "export": 1,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "System Manager",
- "share": 1,
- "write": 1
- },
- {
- "create": 1,
- "delete": 1,
- "email": 1,
- "export": 1,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "Website Manager",
- "share": 1,
- "write": 1
- }
- ],
- "route": "route",
- "sort_field": "creation",
- "sort_order": "DESC",
- "track_changes": 1
-}
\ No newline at end of file
diff --git a/frappe/website/doctype/web_view/web_view.py b/frappe/website/doctype/web_view/web_view.py
deleted file mode 100644
index 8b441579b6..0000000000
--- a/frappe/website/doctype/web_view/web_view.py
+++ /dev/null
@@ -1,104 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2020, Frappe Technologies and contributors
-# For license information, please see license.txt
-
-from __future__ import unicode_literals
-# import frappe
-from frappe.website.website_generator import WebsiteGenerator
-from frappe.utils import markdown
-import frappe
-
-class WebView(WebsiteGenerator):
- def get_context(self, context):
- # group components into sections
- if self.content_type=='Components':
- self.build_components(context)
-
- self.set_metatags(context)
- return context
-
- def build_components(self, context):
- context.sections = []
- context.css_rules = []
- for component in self.components:
- if not context.sections and component.element_type!='Section':
- self.add_default_section(context)
-
- if component.element_type=='Section':
- self.add_section(context, component)
- else:
- self.add_component(context, component)
-
- self.add_css_class(context, component)
- self.add_color(component)
- self.add_missing_semi(component)
-
- return context
-
- def add_section(self, context, component):
- component.elements = []
- context.sections.append(component)
-
- if component.section_intro:
- component.section_intro = markdown(component.section_intro)
-
- def add_component(self, context, component):
- if component.hide:
- return
-
- if component.element_type == 'Web View' and component.web_view:
- component.web_content_html = frappe.get_doc('Web View', component.web_view).render_content()
-
- elif component.web_content_type == 'Markdown':
- component.web_content_html = markdown(component.web_content_markdown)
-
- if component.title:
- component.element_id = frappe.scrub(component.title)
-
- context.sections[-1].elements.append(component)
-
- def add_css_class(self, context, component):
- # add css class definitions selected by the user
- if component.element_class and not component.hide:
- css, is_dynamic = frappe.db.get_value('CSS Class', component.element_class, ['css', 'is_dynamic'])
- if is_dynamic:
- css = frappe.render_template(css, self.get_theme())
- context.css_rules.append(css)
-
- def add_color(self, component):
- # convert to css color
- if component.background_color and not component.hide:
- component.background_color = frappe.db.get_value('Color',
- component.background_color, 'color', cache=True)
-
- def add_missing_semi(self, component):
- if component.element_style and not component.element_style.strip().endswith(';'):
- component.element_style = component.element_style.strip() + ';'
-
- def render_content(self):
- # webview can be rendered as an object (see footer)
- return frappe.render_template("frappe/website/doctype/web_view/templates/web_view_content.html", self.get_context(self.as_dict()))
-
- def get_theme(self):
- # get theme properties
- if not hasattr(self, '_theme'):
- default_theme = frappe.db.get_value("Website Settings", "Website Settings", "website_theme")
- self._theme = frappe.get_value('Website Theme', default_theme, '*')
- return self._theme
-
- def add_default_section(self, context):
- # add a default section if not added
- context.sections.append(frappe._dict(
- element_type='Section',
- section_type='List',
- title='Default Section',
- elements=[]
- ))
-
- def set_metatags(self, context):
- context.metatags = {
- "name": self.meta_title or context.title,
- "description": self.meta_description,
- "image": self.meta_image
- }
-
diff --git a/frappe/website/doctype/web_view_component/__init__.py b/frappe/website/doctype/web_view_component/__init__.py
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/frappe/website/doctype/web_view_component/web_view_component.json b/frappe/website/doctype/web_view_component/web_view_component.json
deleted file mode 100644
index 15dd761c81..0000000000
--- a/frappe/website/doctype/web_view_component/web_view_component.json
+++ /dev/null
@@ -1,146 +0,0 @@
-{
- "actions": [],
- "creation": "2020-03-16 15:25:17.530296",
- "doctype": "DocType",
- "editable_grid": 1,
- "engine": "InnoDB",
- "field_order": [
- "element_type",
- "title",
- "hide",
- "contain_section_width",
- "column_break_3",
- "columns",
- "background_color",
- "element_class",
- "element_style",
- "section_break_5",
- "web_view",
- "section_type",
- "web_content_type",
- "web_content_html",
- "web_content_markdown",
- "image_url",
- "section_intro"
- ],
- "fields": [
- {
- "fieldname": "element_type",
- "fieldtype": "Select",
- "in_list_view": 1,
- "label": "Element Type",
- "options": "Section\nContent\nImage\nWeb View",
- "reqd": 1
- },
- {
- "default": "List",
- "depends_on": "eval:doc.element_type==='Section'",
- "fieldname": "section_type",
- "fieldtype": "Select",
- "in_list_view": 1,
- "label": "Section Type",
- "options": "List\nTabbed\nGrid"
- },
- {
- "default": "Markdown",
- "depends_on": "eval:doc.element_type==='Content'",
- "fieldname": "web_content_type",
- "fieldtype": "Select",
- "in_list_view": 1,
- "label": "Web Content Type",
- "options": "Markdown\nHTML"
- },
- {
- "depends_on": "eval:doc.element_type === 'Content' && doc.web_content_type === 'HTML'",
- "fieldname": "web_content_html",
- "fieldtype": "HTML Editor",
- "label": "Web Content HTML"
- },
- {
- "depends_on": "eval:doc.element_type === 'Content' && doc.web_content_type === 'Markdown'",
- "fieldname": "web_content_markdown",
- "fieldtype": "Markdown Editor",
- "label": "Web Content Markdown"
- },
- {
- "fieldname": "title",
- "fieldtype": "Data",
- "in_list_view": 1,
- "label": "Title"
- },
- {
- "fieldname": "columns",
- "fieldtype": "Int",
- "label": "Columns"
- },
- {
- "fieldname": "element_class",
- "fieldtype": "Link",
- "label": "Element Class",
- "options": "CSS Class"
- },
- {
- "fieldname": "section_break_5",
- "fieldtype": "Section Break"
- },
- {
- "fieldname": "column_break_3",
- "fieldtype": "Column Break"
- },
- {
- "depends_on": "eval:doc.element_type==='Image'",
- "fieldname": "image_url",
- "fieldtype": "Small Text",
- "label": "Image URL"
- },
- {
- "depends_on": "eval:doc.element_type==='Section'",
- "fieldname": "section_intro",
- "fieldtype": "Markdown Editor",
- "label": "Section Intro"
- },
- {
- "default": "0",
- "fieldname": "hide",
- "fieldtype": "Check",
- "label": "Hide"
- },
- {
- "fieldname": "element_style",
- "fieldtype": "Small Text",
- "label": "Element Style"
- },
- {
- "default": "0",
- "depends_on": "eval:doc.element_type==='Section'",
- "fieldname": "contain_section_width",
- "fieldtype": "Check",
- "label": "Contain Section Width"
- },
- {
- "fieldname": "background_color",
- "fieldtype": "Link",
- "label": "Background Color",
- "options": "Color"
- },
- {
- "depends_on": "eval:doc.element_type==='Web View'",
- "fieldname": "web_view",
- "fieldtype": "Link",
- "label": "Web View",
- "options": "Web View"
- }
- ],
- "istable": 1,
- "links": [],
- "modified": "2020-04-19 03:02:53.233036",
- "modified_by": "Administrator",
- "module": "Website",
- "name": "Web View Component",
- "owner": "Administrator",
- "permissions": [],
- "quick_entry": 1,
- "sort_field": "modified",
- "sort_order": "DESC",
- "track_changes": 1
-}
\ No newline at end of file
diff --git a/frappe/website/doctype/web_view_component/web_view_component.py b/frappe/website/doctype/web_view_component/web_view_component.py
deleted file mode 100644
index dcf1726c4a..0000000000
--- a/frappe/website/doctype/web_view_component/web_view_component.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2020, Frappe Technologies and contributors
-# For license information, please see license.txt
-
-from __future__ import unicode_literals
-# import frappe
-from frappe.model.document import Document
-
-class WebViewComponent(Document):
- pass