diff --git a/frappe/templates/generators/web_form.html b/frappe/templates/generators/web_form.html
index e8887f04fd..eaba9f2d11 100644
--- a/frappe/templates/generators/web_form.html
+++ b/frappe/templates/generators/web_form.html
@@ -66,7 +66,7 @@
{%- macro properties(field) %}
- name="{{ field.fieldname }}"
+ name="{{ field.fieldname }}" data-fieldname="{{ field.fieldname }}"
{% if field.placeholder -%} placeholder="{{ _(field.placeholder) }}" {%- endif %}
data-label="{{ _(field.label) }}" data-fieldtype="{{ field.fieldtype }}"
data-doctype="{{ field.parent }}" data-default="{{ field.default or "" }}"
diff --git a/frappe/templates/includes/list/list.html b/frappe/templates/includes/list/list.html
index 2b9d5aeca6..23f358bdb3 100644
--- a/frappe/templates/includes/list/list.html
+++ b/frappe/templates/includes/list/list.html
@@ -12,9 +12,6 @@
-
- {% if introduction %}
{{ introduction }}{% endif %}
-
{% if result_heading_template %}{% include result_heading_template %}{% endif %}
diff --git a/frappe/templates/includes/web_sidebar.html b/frappe/templates/includes/web_sidebar.html
index 3e40df8f65..764ce4d277 100644
--- a/frappe/templates/includes/web_sidebar.html
+++ b/frappe/templates/includes/web_sidebar.html
@@ -24,7 +24,7 @@
{%- endfor %}
diff --git a/frappe/utils/jinja.py b/frappe/utils/jinja.py
index 7ffdd9a28f..70681357d5 100644
--- a/frappe/utils/jinja.py
+++ b/frappe/utils/jinja.py
@@ -59,6 +59,7 @@ def get_allowed_functions_for_jenv():
from frappe.website.utils import get_shade
from frappe.modules import scrub
import mimetypes
+ from html2text import html2text
datautils = {}
if frappe.db:
@@ -110,6 +111,7 @@ def get_allowed_functions_for_jenv():
"get_shade": get_shade,
"scrub": scrub,
"guess_mimetype": mimetypes.guess_type,
+ 'html2text': html2text,
"dev_server": 1 if os.environ.get('DEV_SERVER', False) else 0
}
diff --git a/frappe/website/context.py b/frappe/website/context.py
index e233234905..35a1217919 100644
--- a/frappe/website/context.py
+++ b/frappe/website/context.py
@@ -6,6 +6,7 @@ import frappe, os, json
from frappe.website.doctype.website_settings.website_settings import get_website_settings
from frappe.website.router import get_page_context
+from frappe.model.document import Document
def get_context(path, args=None):
if args and args.source:
@@ -132,16 +133,21 @@ def add_sidebar_data(context):
roles = frappe.get_roles()
portal_settings = frappe.get_doc('Portal Settings', 'Portal Settings')
- def add_items(sidebar_items, menu_field):
- for d in portal_settings.get(menu_field):
- if d.enabled and ((not d.role) or d.role in roles):
- sidebar_items.append(d.as_dict())
+ def add_items(sidebar_items, items):
+ for d in items:
+ if d.get('enabled') and ((not d.get('role')) or d.get('role') in roles):
+ sidebar_items.append(d.as_dict() if isinstance(d, Document) else d)
if not portal_settings.hide_standard_menu:
- add_items(sidebar_items, 'menu')
+ add_items(sidebar_items, portal_settings.get('menu'))
if portal_settings.custom_menu:
- add_items(sidebar_items, 'custom_menu')
+ add_items(sidebar_items, portal_settings.get('custom_menu'))
+
+ items_via_hooks = frappe.get_hooks('portal_menu_items')
+ if items_via_hooks:
+ for i in items_via_hooks: i['enabled'] = 1
+ add_items(sidebar_items, items_via_hooks)
frappe.cache().hset('portal_menu_items', frappe.session.user, sidebar_items)
diff --git a/frappe/website/js/web_form.js b/frappe/website/js/web_form.js
index 8ebe8a400d..0efc777883 100644
--- a/frappe/website/js/web_form.js
+++ b/frappe/website/js/web_form.js
@@ -1,9 +1,9 @@
frappe.ready(function() {
frappe.file_reading = false;
frappe.form_dirty = false;
- moment.defaultFormat = frappe.moment_date_format;
$.extend(frappe, web_form_settings);
+ moment.defaultFormat = frappe.moment_date_format;
$('[data-toggle="tooltip"]').tooltip();
diff --git a/frappe/www/list.html b/frappe/www/list.html
index 2129326558..a6d89685b4 100644
--- a/frappe/www/list.html
+++ b/frappe/www/list.html
@@ -20,7 +20,10 @@
{% endif %}
{% endblock %}
-{% block page_content %}{% include "templates/includes/list/list.html" %}{% endblock %}
+{% block page_content %}
+{% if introduction %}
{{ introduction }}
{% endif %}
+{% include "templates/includes/list/list.html" %}
+{% endblock %}
{% block script %}