diff --git a/frappe/desk/form/meta.py b/frappe/desk/form/meta.py index 2f6c0ccc88..55112cc183 100644 --- a/frappe/desk/form/meta.py +++ b/frappe/desk/form/meta.py @@ -80,7 +80,7 @@ class FormMeta(Meta): js = get_js(path) if js: self.set(fieldname, (self.get(fieldname) or "") - + "\n\n\* Adding {0} *\n\n".format(path) + js) + + "\n\n/* Adding {0} */\n\n".format(path) + js) def add_html_templates(self, path): if self.custom: diff --git a/frappe/templates/generators/web_form.html b/frappe/templates/generators/web_form.html index c4b363681a..f58012fe0a 100644 --- a/frappe/templates/generators/web_form.html +++ b/frappe/templates/generators/web_form.html @@ -103,9 +103,9 @@ {% elif field.fieldtype=="Text" %}
{{ label(field) }} + {{ help(field) }} - {{ help(field) }}
{% elif field.fieldtype=="Attach" %}
diff --git a/frappe/website/doctype/web_form/web_form.py b/frappe/website/doctype/web_form/web_form.py index cc4f1f0110..d65620af7c 100644 --- a/frappe/website/doctype/web_form/web_form.py +++ b/frappe/website/doctype/web_form/web_form.py @@ -31,7 +31,23 @@ class WebForm(WebsiteGenerator): and self.is_standard and not frappe.conf.developer_mode): frappe.throw(_("You need to be in developer mode to edit a Standard Web Form")) + def convert_links_to_selects(self): + '''Convert link fields to select with names as options''' + for df in self.web_form_fields: + if df.fieldtype == "Link": + options = [d.name for d in frappe.get_all(df.options)] + df.fieldtype = "Select" + + if len(options)==1: + df.options = options[0] + df.default = options[0] + df.hidden = 1 + + else: + df.options = "\n".join([""] + options) + def use_meta_fields(self): + '''Override default properties for standard web forms''' meta = frappe.get_meta(self.doc_type) for df in self.web_form_fields: @@ -46,21 +62,6 @@ class WebForm(WebsiteGenerator): "hidden", "read_only", "label"): df.set(prop, meta_df.get(prop)) - if df.fieldtype == "Link": - try: - options = [d.name for d in frappe.get_list(df.options)] - df.fieldtype = "Select" - - if len(options)==1: - df.options = options[0] - df.default = options[0] - df.hidden = 1 - - else: - df.options = "\n".join([""] + options) - - except frappe.PermissionError: - df.hidden = 1 # TODO translate options of Select fields like Country @@ -72,8 +73,7 @@ class WebForm(WebsiteGenerator): """ if not frappe.flags.in_import and getattr(frappe.get_conf(),'developer_mode', 0) and self.is_standard: from frappe.modules.export_file import export_to_files - from frappe.modules import get_module_path, scrub - import os + from frappe.modules import get_module_path # json export_to_files(record_list=[['Web Form', self.name]]) @@ -118,6 +118,8 @@ def get_context(context): if frappe.form_dict.name and not has_web_form_permission(self.doc_type, frappe.form_dict.name): frappe.throw(_("You don't have the permissions to access this document"), frappe.PermissionError) + self.convert_links_to_selects() + if self.is_standard: self.use_meta_fields()