From 8735683635bebd125e5e4869e2a74cd3d00ea988 Mon Sep 17 00:00:00 2001 From: Suraj Shetty Date: Wed, 29 Apr 2020 18:59:33 +0530 Subject: [PATCH] refactor: Remove Webview feature --- frappe/website/doctype/css_class/__init__.py | 0 frappe/website/doctype/css_class/css_class.js | 8 - .../website/doctype/css_class/css_class.json | 60 ------- frappe/website/doctype/css_class/css_class.py | 10 -- .../doctype/css_class/test_css_class.py | 10 -- frappe/website/doctype/web_view/__init__.py | 0 .../doctype/web_view/templates/web_view.html | 7 - .../web_view/templates/web_view_content.html | 83 ---------- .../web_view/templates/web_view_row.html | 4 - .../website/doctype/web_view/test_web_view.py | 115 ------------- frappe/website/doctype/web_view/web_view.js | 8 - frappe/website/doctype/web_view/web_view.json | 154 ------------------ frappe/website/doctype/web_view/web_view.py | 104 ------------ .../doctype/web_view_component/__init__.py | 0 .../web_view_component.json | 146 ----------------- .../web_view_component/web_view_component.py | 10 -- 16 files changed, 719 deletions(-) delete mode 100644 frappe/website/doctype/css_class/__init__.py delete mode 100644 frappe/website/doctype/css_class/css_class.js delete mode 100644 frappe/website/doctype/css_class/css_class.json delete mode 100644 frappe/website/doctype/css_class/css_class.py delete mode 100644 frappe/website/doctype/css_class/test_css_class.py delete mode 100644 frappe/website/doctype/web_view/__init__.py delete mode 100644 frappe/website/doctype/web_view/templates/web_view.html delete mode 100644 frappe/website/doctype/web_view/templates/web_view_content.html delete mode 100644 frappe/website/doctype/web_view/templates/web_view_row.html delete mode 100644 frappe/website/doctype/web_view/test_web_view.py delete mode 100644 frappe/website/doctype/web_view/web_view.js delete mode 100644 frappe/website/doctype/web_view/web_view.json delete mode 100644 frappe/website/doctype/web_view/web_view.py delete mode 100644 frappe/website/doctype/web_view_component/__init__.py delete mode 100644 frappe/website/doctype/web_view_component/web_view_component.json delete mode 100644 frappe/website/doctype/web_view_component/web_view_component.py 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 @@ -
- {{ title }} -
- \ 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