From ecfb630246b5d6694f1564faed7cdf1051109d79 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 12 Oct 2016 14:12:41 +0530 Subject: [PATCH] [minor] print format in web form --- frappe/limits.py | 4 +-- frappe/templates/generators/web_form.html | 7 +++-- .../print_formats/standard_macros.html | 27 ++++++++++++----- frappe/utils/scheduler.py | 1 - frappe/website/doctype/web_form/web_form.json | 30 ++++++++++++++++++- frappe/website/doctype/web_form/web_form.py | 5 +++- 6 files changed, 58 insertions(+), 16 deletions(-) diff --git a/frappe/limits.py b/frappe/limits.py index 9ecb88fba0..90efaca935 100755 --- a/frappe/limits.py +++ b/frappe/limits.py @@ -4,11 +4,11 @@ from frappe import _ from frappe.utils import now_datetime, getdate, flt, cint, get_fullname from frappe.installer import update_site_config from frappe.utils.data import formatdate -from frappe.utils.user import get_enabled_system_users, get_system_managers +from frappe.utils.user import get_enabled_system_users import os, subprocess, urlparse, urllib class SiteExpiredError(frappe.ValidationError): - pass + http_status_code = 417 EXPIRY_WARNING_DAYS = 10 diff --git a/frappe/templates/generators/web_form.html b/frappe/templates/generators/web_form.html index 52b6060620..a24895b689 100644 --- a/frappe/templates/generators/web_form.html +++ b/frappe/templates/generators/web_form.html @@ -28,9 +28,10 @@ {% endif %} - {%- if allow_print and not is_list -%} + {%- if allow_print and not is_list and not _login_required -%}
- + {{ _("Print") }}
{%- endif -%} @@ -43,7 +44,7 @@ {% endif %}
-{% if login_required and frappe.user=="Guest" %} +{% if _login_required %}
{{ _("Please sign-up or login to begin") }} diff --git a/frappe/templates/print_formats/standard_macros.html b/frappe/templates/print_formats/standard_macros.html index 1bbb2e09a1..8bce379d1d 100644 --- a/frappe/templates/print_formats/standard_macros.html +++ b/frappe/templates/print_formats/standard_macros.html @@ -5,6 +5,9 @@
{{ frappe.render_template(df.options, {"doc": doc}) or "" }}
{%- elif df.fieldtype in ("Text", "Text Editor", "Code") -%} {{ render_text_field(df, doc) }} + {%- elif df.fieldtype in ("Image", "Attach Image", "Attach") + and (guess_mimetype(doc[df.fieldname])[0] or "").startswith("image/") -%} + {{ render_image(df, doc) }} {%- else -%} {{ render_field_with_label(df, doc) }} {%- endif -%} @@ -26,7 +29,7 @@ Sr {% for tdf in visible_columns %} - + {{ _(tdf.label) }} {% endfor %} @@ -37,7 +40,7 @@ {{ d.idx }} {% for tdf in visible_columns %} -
{{ print_value(tdf, d, table_meta, doc) }}
+
{{ print_value(tdf, d, doc) }}
{% endfor %} {% endfor %} @@ -82,17 +85,25 @@ data-fieldname="{{ df.fieldname }}" data-fieldtype="{{ df.fieldtype }}" {%- endif -%} {%- endmacro -%} -{%- macro print_value(df, doc, meta, parent_doc=None) -%} +{%- macro render_image(df, doc) -%} + {%- if df.label %}{%- endif %} + {{ print_value(df, doc) }} +{% endmacro %} + +{%- macro print_value(df, doc, parent_doc=None) -%} {% if doc.print_templates and doc.print_templates.get(df.fieldname) %} {% include doc.print_templates[df.fieldname] %} {% elif df.fieldtype=="Check" %} {% elif df.fieldtype=="Image" %} - + {% elif df.fieldtype in ("Attach", "Attach Image") and doc[df.fieldname] and (guess_mimetype(doc[df.fieldname])[0] or "").startswith("image/") %} - + {% elif df.fieldtype=="HTML" %} {{ frappe.render_template(df.options, {"doc":doc}) }} {% else %} @@ -101,9 +112,9 @@ data-fieldname="{{ df.fieldname }}" data-fieldtype="{{ df.fieldtype }}" {%- endmacro %} {% macro get_width(df) -%} - {%- if df.print_width -%}{{ (df.print_width|str).replace("px", "") }} - {%- elif df.fieldtype in ("Int", "Check", "Float", "Currency") -%}{{ 80 }} - {%- else -%}{{ 150 }}{% endif -%} + {%- if df.print_width -%}{{ (df.print_width|str).replace("px", "") }}px + {%- elif df.fieldtype in ("Int", "Check", "Float", "Currency") -%}{{ 80 }}px + {%- else -%}{{ 150 }}px{% endif -%} {%- endmacro %} {% macro get_align_class(fieldtype) %} diff --git a/frappe/utils/scheduler.py b/frappe/utils/scheduler.py index 54205589e5..4fc8e45be3 100755 --- a/frappe/utils/scheduler.py +++ b/frappe/utils/scheduler.py @@ -79,7 +79,6 @@ def enqueue_events(site, queued_jobs): last = frappe.db.get_value('System Settings', 'System Settings', 'scheduler_last_event') # set scheduler last event - frappe.db.begin() frappe.db.set_value('System Settings', 'System Settings', 'scheduler_last_event', nowtime.strftime(DATETIME_FORMAT), update_modified=False) diff --git a/frappe/website/doctype/web_form/web_form.json b/frappe/website/doctype/web_form/web_form.json index f1f73f17ea..faee6ede71 100644 --- a/frappe/website/doctype/web_form/web_form.json +++ b/frappe/website/doctype/web_form/web_form.json @@ -321,6 +321,34 @@ "set_only_once": 0, "unique": 0 }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "allow_print", + "fieldname": "print_format", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Print Format", + "length": 0, + "no_copy": 0, + "options": "Print Format", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, { "allow_on_submit": 0, "bold": 0, @@ -941,7 +969,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2016-10-10 05:03:19.428894", + "modified": "2016-10-12 04:33:14.728373", "modified_by": "Administrator", "module": "Website", "name": "Web Form", diff --git a/frappe/website/doctype/web_form/web_form.py b/frappe/website/doctype/web_form/web_form.py index 70a0741892..dd7213d188 100644 --- a/frappe/website/doctype/web_form/web_form.py +++ b/frappe/website/doctype/web_form/web_form.py @@ -107,6 +107,9 @@ def get_context(context): self.set_web_form_module() logged_in = frappe.session.user != "Guest" + self._login_required = self.login_required + if logged_in and self.login_required: + self._login_required = False doc, delimeter = make_route_string(frappe.form_dict) context.doc = doc @@ -124,7 +127,7 @@ def get_context(context): if self.is_standard: self.use_meta_fields() - if self.login_required and logged_in: + if not self._login_required: if self.allow_edit: if self.allow_multiple: if not frappe.form_dict.name and not frappe.form_dict.new: