From 251f43ff87475165b9f054eb7d3bf9d7e080bd38 Mon Sep 17 00:00:00 2001 From: sbkolate Date: Thu, 18 Feb 2016 15:52:58 +0530 Subject: [PATCH 01/72] Enable Custom Fields in Naming Series # 3019 of ERPNext Issue --- frappe/model/naming.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/frappe/model/naming.py b/frappe/model/naming.py index 5152e83df0..aa2dfcd646 100644 --- a/frappe/model/naming.py +++ b/frappe/model/naming.py @@ -61,9 +61,8 @@ def set_name_by_naming_series(doc): if not doc.naming_series: frappe.throw(frappe._("Naming Series mandatory")) - doc.name = make_autoname(doc.naming_series+'.#####') - -def make_autoname(key, doctype=''): + doc.name = make_autoname(doc.naming_series+'.#####', '', doc) +def make_autoname(key='', doctype='', doc=''): """ Creates an autoname from the given key: @@ -109,6 +108,8 @@ def make_autoname(key, doctype=''): en = today.strftime("%d") elif e=='YYYY': en = today.strftime('%Y') + elif doc and doc.get(e,None): + en = doc.get(e,None) else: en = e n+=en return n From 2a5dbd718558e55bf9c78b63ce94c47452d9fcf1 Mon Sep 17 00:00:00 2001 From: sbkolate Date: Fri, 19 Feb 2016 13:04:05 +0530 Subject: [PATCH 02/72] updated make_autoname() for adding Custom Fields in Naming Series --- frappe/model/naming.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frappe/model/naming.py b/frappe/model/naming.py index aa2dfcd646..21d18fc451 100644 --- a/frappe/model/naming.py +++ b/frappe/model/naming.py @@ -62,6 +62,7 @@ def set_name_by_naming_series(doc): frappe.throw(frappe._("Naming Series mandatory")) doc.name = make_autoname(doc.naming_series+'.#####', '', doc) + def make_autoname(key='', doctype='', doc=''): """ Creates an autoname from the given key: @@ -108,8 +109,8 @@ def make_autoname(key='', doctype='', doc=''): en = today.strftime("%d") elif e=='YYYY': en = today.strftime('%Y') - elif doc and doc.get(e,None): - en = doc.get(e,None) + elif doc and doc.get(e): + en = doc.get(e) else: en = e n+=en return n From 353e8a9d1f3720182ac4ce9f655ebeb4c2e77a91 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Thu, 18 Feb 2016 18:37:02 +0530 Subject: [PATCH 03/72] [fix] Sanitize form_dict and doc values to prevent XSS --- frappe/core/doctype/communication/comment.py | 11 +- frappe/core/doctype/docfield/docfield.json | 72 +- frappe/core/doctype/docperm/docperm.json | 54 +- .../error_snapshot/error_snapshot.json | 26 +- frappe/core/doctype/file/file.json | 25 +- frappe/core/doctype/patch_log/patch_log.js | 8 + frappe/core/doctype/patch_log/patch_log.json | 6 +- frappe/core/doctype/report/report.json | 30 +- .../doctype/scheduler_log/scheduler_log.js | 8 + .../doctype/scheduler_log/scheduler_log.json | 10 +- frappe/core/doctype/version/version.json | 11 +- .../doctype/custom_field/custom_field.json | 66 +- .../customize_form_field.json | 41 +- frappe/desk/form/load.py | 3 + frappe/desk/notifications.py | 6 +- frappe/email/__init__.py | 4 +- .../email/doctype/bulk_email/bulk_email.json | 483 ++++----- .../email_account/test_email_account.py | 1 + .../email_alert_recipient.json | 12 +- frappe/email/email_body.py | 3 +- frappe/handler.py | 5 +- frappe/model/base_document.py | 43 +- frappe/model/document.py | 12 +- frappe/model/naming.py | 6 + frappe/patches.txt | 2 +- frappe/public/css/form.css | 3 + .../public/js/frappe/form/footer/timeline.js | 4 +- frappe/public/less/form.less | 4 + .../templates/includes/comments/comments.py | 4 +- frappe/tests/test_document.py | 33 + frappe/utils/__init__.py | 131 ++- frappe/utils/jinja.py | 3 +- frappe/utils/setup_docs.py | 6 +- frappe/website/doctype/blog_post/blog_post.js | 8 + .../website/doctype/blog_post/blog_post.json | 27 +- frappe/website/doctype/blog_post/blog_post.py | 3 +- frappe/website/doctype/web_form/web_form.json | 964 +++++++++--------- frappe/website/doctype/web_page/web_page.json | 57 +- frappe/website/doctype/web_page/web_page.py | 3 +- .../doctype/website_script/website_script.js | 8 + .../website_script/website_script.json | 9 +- .../website_settings/website_settings.json | 121 ++- .../doctype/website_theme/website_theme.json | 61 +- requirements.txt | 1 + 44 files changed, 1557 insertions(+), 841 deletions(-) create mode 100644 frappe/core/doctype/patch_log/patch_log.js create mode 100644 frappe/core/doctype/scheduler_log/scheduler_log.js create mode 100644 frappe/website/doctype/blog_post/blog_post.js create mode 100644 frappe/website/doctype/website_script/website_script.js diff --git a/frappe/core/doctype/communication/comment.py b/frappe/core/doctype/communication/comment.py index 78f7b2ab67..589210918b 100644 --- a/frappe/core/doctype/communication/comment.py +++ b/frappe/core/doctype/communication/comment.py @@ -15,15 +15,8 @@ def validate_comment(doc): if not (doc.communication_type=='Comment' and doc.reference_doctype and doc.reference_name): return - comment_count = frappe.db.sql("""select count(*) from `tabCommunication` - where - communication_type='Comment' - and reference_doctype=%(reference_doctype)s - and reference_name=%(reference_name)s""", - {"reference_doctype": doc.reference_doctype, "reference_name": doc.reference_name})[0][0] - - if comment_count >= 50: - frappe.throw(_("Cannot add more than 50 comments")) + if doc.comment_type=="Comment" and "" not in doc.content: + doc.content += '\n' def on_trash(doc): if doc.communication_type != "Comment": diff --git a/frappe/core/doctype/docfield/docfield.json b/frappe/core/doctype/docfield/docfield.json index f53ebdda47..9d81c082c0 100644 --- a/frappe/core/doctype/docfield/docfield.json +++ b/frappe/core/doctype/docfield/docfield.json @@ -16,6 +16,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "", @@ -39,6 +40,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Label", @@ -67,6 +69,7 @@ "fieldtype": "Select", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Type", @@ -93,6 +96,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Name", @@ -118,6 +122,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Mandatory", @@ -147,6 +152,7 @@ "fieldtype": "Select", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Precision", @@ -172,6 +178,7 @@ "fieldtype": "Int", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Length", @@ -196,6 +203,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Index", @@ -223,6 +231,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "In List View", @@ -248,6 +257,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Bold", @@ -273,6 +283,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Collapsible", @@ -295,9 +306,10 @@ "collapsible": 0, "depends_on": "eval:doc.fieldtype==\"Section Break\"", "fieldname": "collapsible_depends_on", - "fieldtype": "Small Text", + "fieldtype": "Code", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Collapsible Depends On", @@ -322,6 +334,7 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -345,6 +358,7 @@ "fieldtype": "Text", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Options", @@ -370,6 +384,7 @@ "fieldtype": "Small Text", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Default", @@ -395,6 +410,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Permissions", @@ -415,9 +431,10 @@ "bold": 0, "collapsible": 0, "fieldname": "depends_on", - "fieldtype": "Small Text", + "fieldtype": "Code", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Depends On", @@ -443,6 +460,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Hidden", @@ -470,6 +488,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Read Only", @@ -495,6 +514,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Unique", @@ -520,6 +540,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Set Only Once", @@ -543,6 +564,7 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -566,6 +588,7 @@ "fieldtype": "Int", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Perm Level", @@ -594,6 +617,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Ignore User Permissions", @@ -617,6 +641,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Allow on Submit", @@ -644,6 +669,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Report Hide", @@ -663,6 +689,32 @@ "unique": 0, "width": "50px" }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "description": "Don't HTML Encode HTML tags like <script> or just characters like < or >, as they could be intentionally used in this field", + "fieldname": "ignore_xss_filter", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Ignore XSS Filter", + "length": 0, + "no_copy": 0, + "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, @@ -671,6 +723,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Display", @@ -694,6 +747,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "In Filter", @@ -721,6 +775,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "No Copy", @@ -748,6 +803,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Print Hide", @@ -776,6 +832,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Print Hide If No Value", @@ -800,6 +857,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Print Width", @@ -823,6 +881,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Width", @@ -850,6 +909,7 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -872,6 +932,7 @@ "fieldtype": "Small Text", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Description", @@ -899,6 +960,7 @@ "fieldtype": "Data", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -923,6 +985,7 @@ "fieldtype": "Data", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -949,12 +1012,13 @@ "issingle": 0, "istable": 1, "max_attachments": 0, - "modified": "2015-11-24 02:28:08.985496", + "modified": "2016-02-22 09:08:47.112186", "modified_by": "Administrator", "module": "Core", "name": "DocField", "owner": "Administrator", "permissions": [], "read_only": 0, - "read_only_onload": 0 + "read_only_onload": 0, + "sort_order": "ASC" } \ No newline at end of file diff --git a/frappe/core/doctype/docperm/docperm.json b/frappe/core/doctype/docperm/docperm.json index c8085aa8fb..7b4be6800c 100644 --- a/frappe/core/doctype/docperm/docperm.json +++ b/frappe/core/doctype/docperm/docperm.json @@ -16,6 +16,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Role and Level", @@ -23,6 +24,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -38,6 +40,7 @@ "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Role", @@ -48,6 +51,7 @@ "options": "Role", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "print_width": "150px", "read_only": 0, "report_hide": 0, @@ -66,6 +70,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Apply User Permissions", @@ -73,6 +78,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -89,6 +95,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "If user is the owner", @@ -97,6 +104,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -112,12 +120,14 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -134,6 +144,7 @@ "fieldtype": "Int", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Level", @@ -143,6 +154,7 @@ "oldfieldtype": "Int", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "print_width": "40px", "read_only": 0, "report_hide": 0, @@ -159,9 +171,10 @@ "depends_on": "", "description": "JSON list of DocTypes used to apply User Permissions. If empty, all linked DocTypes will be used to apply User Permissions.", "fieldname": "user_permission_doctypes", - "fieldtype": "Text", + "fieldtype": "Code", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "User Permission DocTypes", @@ -169,6 +182,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 1, "report_hide": 0, "reqd": 0, @@ -184,6 +198,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Permissions", @@ -191,6 +206,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -207,6 +223,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Read", @@ -216,6 +233,7 @@ "oldfieldtype": "Check", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "print_width": "32px", "read_only": 0, "report_hide": 0, @@ -234,6 +252,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Write", @@ -243,6 +262,7 @@ "oldfieldtype": "Check", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "print_width": "32px", "read_only": 0, "report_hide": 0, @@ -261,6 +281,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Create", @@ -270,6 +291,7 @@ "oldfieldtype": "Check", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "print_width": "32px", "read_only": 0, "report_hide": 0, @@ -288,6 +310,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Delete", @@ -295,6 +318,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -310,12 +334,14 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -331,6 +357,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Submit", @@ -340,6 +367,7 @@ "oldfieldtype": "Check", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "print_width": "32px", "read_only": 0, "report_hide": 0, @@ -357,6 +385,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Cancel", @@ -366,6 +395,7 @@ "oldfieldtype": "Check", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "print_width": "32px", "read_only": 0, "report_hide": 0, @@ -383,6 +413,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Amend", @@ -392,6 +423,7 @@ "oldfieldtype": "Check", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "print_width": "32px", "read_only": 0, "report_hide": 0, @@ -409,6 +441,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Additional Permissions", @@ -416,6 +449,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -432,6 +466,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Report", @@ -439,6 +474,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "print_width": "32px", "read_only": 0, "report_hide": 0, @@ -457,6 +493,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Export", @@ -464,6 +501,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -479,6 +517,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Import", @@ -486,6 +525,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -502,6 +542,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Set User Permissions", @@ -509,6 +550,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -524,12 +566,14 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -546,6 +590,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Share", @@ -554,6 +599,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -570,6 +616,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Print", @@ -577,6 +624,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -593,6 +641,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Email", @@ -600,6 +649,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -617,7 +667,7 @@ "issingle": 0, "istable": 1, "max_attachments": 0, - "modified": "2015-11-16 06:29:45.429411", + "modified": "2016-02-22 09:18:14.138259", "modified_by": "Administrator", "module": "Core", "name": "DocPerm", diff --git a/frappe/core/doctype/error_snapshot/error_snapshot.json b/frappe/core/doctype/error_snapshot/error_snapshot.json index b9dd81387b..e7dd851b2d 100644 --- a/frappe/core/doctype/error_snapshot/error_snapshot.json +++ b/frappe/core/doctype/error_snapshot/error_snapshot.json @@ -16,6 +16,7 @@ "fieldtype": "HTML", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Snapshot View", @@ -40,6 +41,7 @@ "fieldtype": "Check", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 1, "in_list_view": 0, "label": "Seen", @@ -61,9 +63,10 @@ "bold": 0, "collapsible": 0, "fieldname": "evalue", - "fieldtype": "Small Text", + "fieldtype": "Code", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Friendly Title", @@ -88,6 +91,7 @@ "fieldtype": "Datetime", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Timestamp", @@ -113,6 +117,7 @@ "fieldtype": "Int", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Relapses", @@ -137,6 +142,7 @@ "fieldtype": "Data", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Exception Type", @@ -158,9 +164,10 @@ "bold": 0, "collapsible": 0, "fieldname": "traceback", - "fieldtype": "Small Text", + "fieldtype": "Code", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Traceback", @@ -185,6 +192,7 @@ "fieldtype": "Data", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Parent Error Snapshot", @@ -207,9 +215,10 @@ "bold": 0, "collapsible": 0, "fieldname": "pyver", - "fieldtype": "Small Text", + "fieldtype": "Code", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Pyver", @@ -231,9 +240,10 @@ "bold": 0, "collapsible": 0, "fieldname": "exception", - "fieldtype": "Small Text", + "fieldtype": "Code", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Exception", @@ -255,9 +265,10 @@ "bold": 0, "collapsible": 0, "fieldname": "locals", - "fieldtype": "Text", + "fieldtype": "Code", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Locals", @@ -279,9 +290,10 @@ "bold": 0, "collapsible": 0, "fieldname": "frames", - "fieldtype": "Text", + "fieldtype": "Code", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Frames", @@ -308,7 +320,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2015-12-28 00:44:30.751680", + "modified": "2016-02-22 09:23:46.208471", "modified_by": "Administrator", "module": "Core", "name": "Error Snapshot", diff --git a/frappe/core/doctype/file/file.json b/frappe/core/doctype/file/file.json index 7c7b2a0a2a..7ad3426de3 100644 --- a/frappe/core/doctype/file/file.json +++ b/frappe/core/doctype/file/file.json @@ -16,6 +16,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "File Name", @@ -42,6 +43,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Is Private", @@ -66,6 +68,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Preview", @@ -90,6 +93,7 @@ "fieldtype": "HTML", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Preview HTML", @@ -114,6 +118,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -138,6 +143,7 @@ "fieldtype": "Check", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Is Home Folder", @@ -162,6 +168,7 @@ "fieldtype": "Check", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Is Attachments Folder", @@ -186,6 +193,7 @@ "fieldtype": "Int", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "File Size", @@ -209,6 +217,7 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -230,9 +239,10 @@ "collapsible": 0, "depends_on": "eval:!doc.is_folder", "fieldname": "file_url", - "fieldtype": "Small Text", + "fieldtype": "Code", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "File URL", @@ -256,6 +266,7 @@ "fieldtype": "Small Text", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Thumbnail URL", @@ -280,6 +291,7 @@ "fieldtype": "Link", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Folder", @@ -305,6 +317,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Is Folder", @@ -330,6 +343,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -353,6 +367,7 @@ "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Attached To DocType", @@ -377,6 +392,7 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -400,6 +416,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Attached To Name", @@ -423,6 +440,7 @@ "fieldtype": "Data", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Content Hash", @@ -446,6 +464,7 @@ "fieldtype": "Int", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "lft", @@ -470,6 +489,7 @@ "fieldtype": "Int", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "rgt", @@ -494,6 +514,7 @@ "fieldtype": "Data", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "old_parent", @@ -522,7 +543,7 @@ "istable": 0, "max_attachments": 0, "menu_index": 0, - "modified": "2015-12-08 05:03:48.767257", + "modified": "2016-02-22 09:23:59.892258", "modified_by": "Administrator", "module": "Core", "name": "File", diff --git a/frappe/core/doctype/patch_log/patch_log.js b/frappe/core/doctype/patch_log/patch_log.js new file mode 100644 index 0000000000..0080584a29 --- /dev/null +++ b/frappe/core/doctype/patch_log/patch_log.js @@ -0,0 +1,8 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Patch Log', { + refresh: function(frm) { + + } +}); diff --git a/frappe/core/doctype/patch_log/patch_log.json b/frappe/core/doctype/patch_log/patch_log.json index 96a0e4fff8..edbd03bceb 100644 --- a/frappe/core/doctype/patch_log/patch_log.json +++ b/frappe/core/doctype/patch_log/patch_log.json @@ -15,9 +15,10 @@ "bold": 0, "collapsible": 0, "fieldname": "patch", - "fieldtype": "Small Text", + "fieldtype": "Code", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Patch", @@ -25,6 +26,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -43,7 +45,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2015-11-16 06:29:51.487656", + "modified": "2016-02-22 09:31:31.854246", "modified_by": "Administrator", "module": "Core", "name": "Patch Log", diff --git a/frappe/core/doctype/report/report.json b/frappe/core/doctype/report/report.json index ffe98701f0..4d40a60899 100644 --- a/frappe/core/doctype/report/report.json +++ b/frappe/core/doctype/report/report.json @@ -17,6 +17,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Report Name", @@ -24,6 +25,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 1, @@ -39,6 +41,7 @@ "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Ref DocType", @@ -47,6 +50,7 @@ "options": "DocType", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 1, @@ -62,6 +66,7 @@ "fieldtype": "Select", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Is Standard", @@ -70,6 +75,7 @@ "options": "No\nYes", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 1, @@ -85,6 +91,7 @@ "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Module", @@ -93,6 +100,7 @@ "options": "Module Def", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -108,6 +116,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Add Total Row", @@ -115,6 +124,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -130,12 +140,14 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -151,6 +163,7 @@ "fieldtype": "Select", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Report Type", @@ -159,6 +172,7 @@ "options": "Report Builder\nQuery Report\nScript Report", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 1, @@ -174,6 +188,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Disabled", @@ -181,6 +196,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -198,6 +214,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Apply User Permissions", @@ -205,6 +222,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -220,12 +238,14 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -242,6 +262,7 @@ "fieldtype": "Code", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Query", @@ -249,6 +270,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -266,6 +288,7 @@ "fieldtype": "Code", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Javascript", @@ -273,6 +296,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -286,9 +310,10 @@ "collapsible": 0, "depends_on": "eval:doc.report_type==\"Report Builder\"", "fieldname": "json", - "fieldtype": "Text", + "fieldtype": "Code", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "JSON", @@ -296,6 +321,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 1, "report_hide": 0, "reqd": 0, @@ -314,7 +340,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2015-11-16 06:29:55.357855", + "modified": "2016-02-22 09:14:41.050580", "modified_by": "Administrator", "module": "Core", "name": "Report", diff --git a/frappe/core/doctype/scheduler_log/scheduler_log.js b/frappe/core/doctype/scheduler_log/scheduler_log.js new file mode 100644 index 0000000000..ac3b026934 --- /dev/null +++ b/frappe/core/doctype/scheduler_log/scheduler_log.js @@ -0,0 +1,8 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Scheduler Log', { + refresh: function(frm) { + + } +}); diff --git a/frappe/core/doctype/scheduler_log/scheduler_log.json b/frappe/core/doctype/scheduler_log/scheduler_log.json index 7582bb8960..fb94e75991 100644 --- a/frappe/core/doctype/scheduler_log/scheduler_log.json +++ b/frappe/core/doctype/scheduler_log/scheduler_log.json @@ -19,6 +19,7 @@ "fieldtype": "Check", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Seen", @@ -27,6 +28,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -42,6 +44,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Method", @@ -49,6 +52,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -61,9 +65,10 @@ "bold": 0, "collapsible": 0, "fieldname": "error", - "fieldtype": "Text", + "fieldtype": "Code", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Error", @@ -71,6 +76,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -89,7 +95,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2015-11-16 06:29:57.440897", + "modified": "2016-02-22 09:35:31.852571", "modified_by": "Administrator", "module": "Core", "name": "Scheduler Log", diff --git a/frappe/core/doctype/version/version.json b/frappe/core/doctype/version/version.json index a86578db39..ba9a975797 100644 --- a/frappe/core/doctype/version/version.json +++ b/frappe/core/doctype/version/version.json @@ -17,6 +17,7 @@ "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Ref DocType", @@ -25,6 +26,7 @@ "options": "DocType", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 1, @@ -40,6 +42,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Docname", @@ -47,6 +50,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 1, @@ -62,6 +66,7 @@ "fieldtype": "Code", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Doclist JSON", @@ -69,6 +74,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 1, @@ -87,7 +93,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2015-11-16 06:30:00.036254", + "modified": "2016-02-22 07:59:43.968145", "modified_by": "Administrator", "module": "Core", "name": "Version", @@ -115,5 +121,6 @@ } ], "read_only": 0, - "read_only_onload": 0 + "read_only_onload": 0, + "sort_order": "ASC" } \ No newline at end of file diff --git a/frappe/custom/doctype/custom_field/custom_field.json b/frappe/custom/doctype/custom_field/custom_field.json index e7bb910d58..6b320b6c68 100644 --- a/frappe/custom/doctype/custom_field/custom_field.json +++ b/frappe/custom/doctype/custom_field/custom_field.json @@ -7,6 +7,7 @@ "description": "Adds a custom field to a DocType", "docstatus": 0, "doctype": "DocType", + "document_type": "Setup", "fields": [ { "allow_on_submit": 0, @@ -16,6 +17,7 @@ "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 1, "in_list_view": 1, "label": "Document", @@ -42,6 +44,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 1, "in_list_view": 0, "label": "Label", @@ -67,6 +70,7 @@ "fieldtype": "HTML", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Label Help", @@ -91,6 +95,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Fieldname", @@ -118,6 +123,7 @@ "fieldtype": "Select", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Insert After", @@ -143,6 +149,7 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -167,6 +174,7 @@ "fieldtype": "Select", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 1, "in_list_view": 1, "label": "Field Type", @@ -195,6 +203,7 @@ "fieldtype": "Select", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Precision", @@ -220,6 +229,7 @@ "fieldtype": "Text", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Options", @@ -245,6 +255,7 @@ "fieldtype": "HTML", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Options Help", @@ -269,6 +280,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -293,6 +305,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Collapsible", @@ -315,9 +328,10 @@ "collapsible": 0, "depends_on": "eval:doc.fieldtype==\"Section Break\"", "fieldname": "collapsible_depends_on", - "fieldtype": "Data", + "fieldtype": "Code", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Collapsible Depends On", @@ -342,6 +356,7 @@ "fieldtype": "Text", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Default Value", @@ -364,9 +379,10 @@ "bold": 0, "collapsible": 0, "fieldname": "depends_on", - "fieldtype": "Small Text", + "fieldtype": "Code", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Depends On", @@ -390,6 +406,7 @@ "fieldtype": "Text", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Field Description", @@ -418,6 +435,7 @@ "fieldtype": "Int", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Permission Level", @@ -443,6 +461,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Width", @@ -468,6 +487,7 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "", @@ -494,6 +514,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Is Mandatory Field", @@ -519,6 +540,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Unique", @@ -543,6 +565,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Read Only", @@ -567,6 +590,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Ignore User Permissions", @@ -590,6 +614,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Hidden", @@ -613,6 +638,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Print Hide", @@ -639,6 +665,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Print Hide If No Value", @@ -663,6 +690,7 @@ "fieldtype": "Data", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Print Width", @@ -686,6 +714,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "No Copy", @@ -711,6 +740,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Allow on Submit", @@ -736,6 +766,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "In Report Filter", @@ -761,6 +792,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "In List View", @@ -784,6 +816,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Report Hide", @@ -809,6 +842,7 @@ "fieldtype": "Check", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Index", @@ -823,6 +857,32 @@ "search_index": 0, "set_only_once": 0, "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "description": "Don't HTML Encode HTML tags like <script> or just characters like < or >, as they could be intentionally used in this field", + "fieldname": "ignore_xss_filter", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Ignore XSS Filter", + "length": 0, + "no_copy": 0, + "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 } ], "hide_heading": 0, @@ -835,7 +895,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2016-01-25 04:54:05.700031", + "modified": "2016-02-22 09:11:06.796094", "modified_by": "Administrator", "module": "Custom", "name": "Custom Field", diff --git a/frappe/custom/doctype/customize_form_field/customize_form_field.json b/frappe/custom/doctype/customize_form_field/customize_form_field.json index 0c332c2ddf..27d3ff8600 100644 --- a/frappe/custom/doctype/customize_form_field/customize_form_field.json +++ b/frappe/custom/doctype/customize_form_field/customize_form_field.json @@ -7,6 +7,7 @@ "custom": 0, "docstatus": 0, "doctype": "DocType", + "document_type": "Setup", "fields": [ { "allow_on_submit": 0, @@ -16,6 +17,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Label and Type", @@ -40,6 +42,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Label", @@ -66,6 +69,7 @@ "fieldtype": "Select", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Type", @@ -92,6 +96,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Name", @@ -117,6 +122,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Mandatory", @@ -144,6 +150,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Unique", @@ -168,6 +175,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "In List View", @@ -191,6 +199,7 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -216,6 +225,7 @@ "fieldtype": "Select", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Precision", @@ -242,6 +252,7 @@ "fieldtype": "Int", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Length", @@ -267,6 +278,7 @@ "fieldtype": "Text", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Options", @@ -292,6 +304,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Permissions", @@ -312,11 +325,12 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, - "description": "This field will appear only if the fieldname defined here has value OR the rules are true (examples): \nmyfield\neval:doc.myfield=='My Value'\neval:doc.age>18", + "description": "This field will appear only if the fieldname defined here has value OR the rules are true (examples): \nmyfield\neval:doc.myfield=='My Value'\neval:doc.age>18", "fieldname": "depends_on", - "fieldtype": "Data", + "fieldtype": "Code", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Depends On", @@ -343,6 +357,7 @@ "fieldtype": "Int", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Perm Level", @@ -368,6 +383,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Hidden", @@ -395,6 +411,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Read Only", @@ -420,6 +437,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Collapsible", @@ -442,9 +460,10 @@ "collapsible": 0, "depends_on": "eval:doc.fieldtype==\"Section Break\"", "fieldname": "collapsible_depends_on", - "fieldtype": "Data", + "fieldtype": "Code", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Collapsible Depends On", @@ -469,6 +488,7 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -492,6 +512,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Ignore User Permissions", @@ -515,6 +536,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Allow on Submit", @@ -540,6 +562,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Report Hide", @@ -565,6 +588,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Display", @@ -589,6 +613,7 @@ "fieldtype": "Text", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Default", @@ -614,6 +639,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "In Filter", @@ -641,6 +667,7 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -664,6 +691,7 @@ "fieldtype": "Text", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Description", @@ -691,6 +719,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Print Hide", @@ -717,6 +746,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Print Hide If No Value", @@ -742,6 +772,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Print Width", @@ -767,6 +798,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Width", @@ -794,6 +826,7 @@ "fieldtype": "Check", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Is Custom Field", @@ -820,7 +853,7 @@ "issingle": 0, "istable": 1, "max_attachments": 0, - "modified": "2015-11-24 02:27:50.426961", + "modified": "2016-02-22 09:11:53.773635", "modified_by": "Administrator", "module": "Custom", "name": "Customize Form Field", diff --git a/frappe/desk/form/load.py b/frappe/desk/form/load.py index b8971079cd..fcc4859e42 100644 --- a/frappe/desk/form/load.py +++ b/frappe/desk/form/load.py @@ -147,6 +147,9 @@ def _get_communications(doctype, name, start=0, limit=20): "attached_to_name": c.name} )) + elif c.communication_type=="Comment" and c.comment_type=="Comment": + c.content = frappe.utils.markdown(c.content) + return communications def get_assignments(dt, dn): diff --git a/frappe/desk/notifications.py b/frappe/desk/notifications.py index 247c45cd94..c4910175bb 100644 --- a/frappe/desk/notifications.py +++ b/frappe/desk/notifications.py @@ -68,7 +68,8 @@ def get_notifications_for(notification_type, config, notification_count): frappe.cache().hset("notification_count:" + m, frappe.session.user, open_count[m]) except frappe.PermissionError: - frappe.msgprint("Permission Error in notifications for {0}".format(m)) + pass + # frappe.msgprint("Permission Error in notifications for {0}".format(m)) return open_count @@ -92,7 +93,8 @@ def get_notifications_for_doctypes(config, notification_count): result = frappe.get_attr(condition)() except frappe.PermissionError: - frappe.msgprint("Permission Error in notifications for {0}".format(d)) + pass + # frappe.msgprint("Permission Error in notifications for {0}".format(d)) except Exception, e: # OperationalError: (1412, 'Table definition has changed, please retry transaction') diff --git a/frappe/email/__init__.py b/frappe/email/__init__.py index 4218598484..1c300ef559 100644 --- a/frappe/email/__init__.py +++ b/frappe/email/__init__.py @@ -6,12 +6,12 @@ import frappe from frappe.email.email_body import get_email from frappe.email.smtp import send +from frappe.utils import markdown def sendmail_md(recipients, sender=None, msg=None, subject=None, attachments=None, content=None, reply_to=None, cc=(), message_id=None): """send markdown email""" - import markdown2 - sendmail(recipients, sender, markdown2.markdown(content or msg), subject, attachments, reply_to=reply_to, cc=cc) + sendmail(recipients, sender, markdown(content or msg), subject, attachments, reply_to=reply_to, cc=cc) def sendmail(recipients, sender='', msg='', subject='[No Subject]', attachments=None, content=None, reply_to=None, cc=(), message_id=None): diff --git a/frappe/email/doctype/bulk_email/bulk_email.json b/frappe/email/doctype/bulk_email/bulk_email.json index b84f496968..18977b4c93 100644 --- a/frappe/email/doctype/bulk_email/bulk_email.json +++ b/frappe/email/doctype/bulk_email/bulk_email.json @@ -1,257 +1,276 @@ { - "allow_copy": 0, - "allow_import": 0, - "allow_rename": 0, - "autoname": "hash", - "creation": "2012-08-02 15:17:28", - "custom": 0, - "description": "Bulk Email records.", - "docstatus": 0, - "doctype": "DocType", - "document_type": "System", + "allow_copy": 0, + "allow_import": 0, + "allow_rename": 0, + "autoname": "hash", + "creation": "2012-08-02 15:17:28", + "custom": 0, + "description": "Bulk Email records.", + "docstatus": 0, + "doctype": "DocType", + "document_type": "System", "fields": [ { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "fieldname": "sender", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Sender", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "sender", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Sender", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "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, - "collapsible": 0, - "fieldname": "recipient", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 1, - "label": "Recipient", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "recipient", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 1, + "label": "Recipient", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "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, - "collapsible": 0, - "fieldname": "message", - "fieldtype": "Code", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Message", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "message", + "fieldtype": "Code", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Message", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "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, - "collapsible": 0, - "default": "Not Sent", - "fieldname": "status", - "fieldtype": "Select", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 1, - "label": "Status", - "length": 0, - "no_copy": 0, - "options": "\nNot Sent\nSending\nSent\nError\nExpired", - "permlevel": 0, - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "default": "Not Sent", + "fieldname": "status", + "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 1, + "label": "Status", + "length": 0, + "no_copy": 0, + "options": "\nNot Sent\nSending\nSent\nError\nExpired", + "permlevel": 0, + "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, - "collapsible": 0, - "fieldname": "error", - "fieldtype": "Text", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Error", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "error", + "fieldtype": "Code", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Error", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "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, - "collapsible": 0, - "fieldname": "reference_doctype", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Reference DocType", - "length": 0, - "no_copy": 0, - "options": "DocType", - "permlevel": 0, - "print_hide": 0, - "read_only": 1, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "reference_doctype", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Reference DocType", + "length": 0, + "no_copy": 0, + "options": "DocType", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "fieldname": "reference_name", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Reference DocName", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "read_only": 1, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "reference_name", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Reference DocName", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "fieldname": "send_after", - "fieldtype": "Datetime", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Send After", - "length": 0, - "no_copy": 1, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "read_only": 1, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "send_after", + "fieldtype": "Datetime", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Send After", + "length": 0, + "no_copy": 1, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "default": "1", - "fieldname": "priority", - "fieldtype": "Int", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Priority", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "read_only": 1, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "default": "1", + "fieldname": "priority", + "fieldtype": "Int", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Priority", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 } - ], - "hide_heading": 0, - "hide_toolbar": 0, - "icon": "icon-envelope", - "idx": 1, - "in_create": 1, - "in_dialog": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 0, - "max_attachments": 0, - "modified": "2015-12-24 06:29:43.089602", - "modified_by": "Administrator", - "module": "Email", - "name": "Bulk Email", - "owner": "Administrator", + ], + "hide_heading": 0, + "hide_toolbar": 0, + "icon": "icon-envelope", + "idx": 1, + "in_create": 1, + "in_dialog": 0, + "is_submittable": 0, + "issingle": 0, + "istable": 0, + "max_attachments": 0, + "modified": "2016-02-22 09:14:36.762997", + "modified_by": "Administrator", + "module": "Email", + "name": "Bulk Email", + "owner": "Administrator", "permissions": [ { - "amend": 0, - "apply_user_permissions": 0, - "cancel": 0, - "create": 0, - "delete": 1, - "email": 1, - "export": 0, - "if_owner": 0, - "import": 0, - "permlevel": 0, - "print": 1, - "read": 1, - "report": 1, - "role": "System Manager", - "set_user_permissions": 0, - "share": 0, - "submit": 0, + "amend": 0, + "apply_user_permissions": 0, + "cancel": 0, + "create": 0, + "delete": 1, + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "set_user_permissions": 0, + "share": 0, + "submit": 0, "write": 0 } - ], - "read_only": 0, - "read_only_onload": 0 -} + ], + "read_only": 0, + "read_only_onload": 0, + "sort_order": "DESC" +} \ No newline at end of file diff --git a/frappe/email/doctype/email_account/test_email_account.py b/frappe/email/doctype/email_account/test_email_account.py index 23d4cfe409..92fa8633cd 100644 --- a/frappe/email/doctype/email_account/test_email_account.py +++ b/frappe/email/doctype/email_account/test_email_account.py @@ -106,6 +106,7 @@ class TestEmailAccount(unittest.TestCase): send_email=True)["name"] sent_mail = email.message_from_string(frappe.get_last_doc("Bulk Email").message) + with open(os.path.join(os.path.dirname(__file__), "test_mails", "reply-1.raw"), "r") as f: raw = f.read() raw = raw.replace("<-- in-reply-to -->", sent_mail.get("Message-Id")) diff --git a/frappe/email/doctype/email_alert_recipient/email_alert_recipient.json b/frappe/email/doctype/email_alert_recipient/email_alert_recipient.json index c28dc54e22..a2c82fdfe5 100644 --- a/frappe/email/doctype/email_alert_recipient/email_alert_recipient.json +++ b/frappe/email/doctype/email_alert_recipient/email_alert_recipient.json @@ -17,6 +17,7 @@ "fieldtype": "Select", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Email By Document Field", @@ -24,6 +25,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -37,16 +39,19 @@ "collapsible": 0, "description": "Optional: Always send to these ids. Each email id on a new row", "fieldname": "cc", - "fieldtype": "Text", + "fieldtype": "Code", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "CC", "length": 0, "no_copy": 0, + "options": "Email", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -63,6 +68,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Condition", @@ -70,6 +76,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -80,13 +87,14 @@ ], "hide_heading": 0, "hide_toolbar": 0, + "idx": 0, "in_create": 0, "in_dialog": 0, "is_submittable": 0, "issingle": 0, "istable": 1, "max_attachments": 0, - "modified": "2015-11-16 06:29:46.092268", + "modified": "2016-02-22 09:19:41.689603", "modified_by": "Administrator", "module": "Email", "name": "Email Alert Recipient", diff --git a/frappe/email/email_body.py b/frappe/email/email_body.py index 93345b03f3..9d35c4f9b4 100644 --- a/frappe/email/email_body.py +++ b/frappe/email/email_body.py @@ -5,9 +5,8 @@ from __future__ import unicode_literals import frappe from frappe.utils.pdf import get_pdf from frappe.email.smtp import get_outgoing_email_account -from frappe.utils import get_url, scrub_urls, strip, expand_relative_urls, cint, split_emails, to_markdown +from frappe.utils import get_url, scrub_urls, strip, expand_relative_urls, cint, split_emails, to_markdown, markdown import email.utils -from markdown2 import markdown def get_email(recipients, sender='', msg='', subject='[No Subject]', text_content = None, footer=None, print_html=None, formatted=None, attachments=None, diff --git a/frappe/handler.py b/frappe/handler.py index 5325530d7b..c3f51adf8e 100755 --- a/frappe/handler.py +++ b/frappe/handler.py @@ -10,7 +10,6 @@ import frappe.sessions import frappe.utils.file_manager import frappe.desk.form.run_method from frappe.utils.response import build_response -import bleach def handle(): """handle request""" @@ -50,10 +49,9 @@ def is_whitelisted(method): if method not in frappe.xss_safe_methods: # strictly sanitize form_dict # escapes html characters like <> except for predefined tags like a, b, ul etc. - # if required, we can add more whitelisted tags like div, p, etc. (see its documentation) for key, value in frappe.form_dict.items(): if isinstance(value, basestring): - frappe.form_dict[key] = bleach.clean(value) + frappe.form_dict[key] = frappe.utils.sanitize_html(value) else: if not method in frappe.whitelisted: @@ -109,6 +107,7 @@ def uploadfile(): return ret + def get_attr(cmd): """get method object from cmd""" if '.' in cmd: diff --git a/frappe/model/base_document.py b/frappe/model/base_document.py index a94030cd64..f98b7e997c 100644 --- a/frappe/model/base_document.py +++ b/frappe/model/base_document.py @@ -4,7 +4,8 @@ from __future__ import unicode_literals import frappe, sys from frappe import _ -from frappe.utils import cint, flt, now, cstr, strip_html, getdate, get_datetime, to_timedelta +from frappe.utils import (cint, flt, now, cstr, strip_html, getdate, get_datetime, to_timedelta, + sanitize_html, sanitize_email) from frappe.model import default_fields from frappe.model.naming import set_new_name from frappe.modules import load_doctype_module @@ -177,7 +178,7 @@ class BaseDocument(object): d = frappe._dict() for fieldname in self.meta.get_valid_columns(): d[fieldname] = self.get(fieldname) - + # if no need for sanitization and value is None, continue if not sanitize and d[fieldname] is None: continue @@ -188,7 +189,7 @@ class BaseDocument(object): d[fieldname] = cint(d[fieldname]) elif df.fieldtype in ("Currency", "Float", "Percent") and not isinstance(d[fieldname], float): - + d[fieldname] = flt(d[fieldname]) elif df.fieldtype in ("Datetime", "Date") and d[fieldname]=="": @@ -505,6 +506,42 @@ class BaseDocument(object): frappe.throw(_("Not allowed to change {0} after submission").format(df.label), frappe.UpdateAfterSubmitError) + def _sanitize_content(self): + """Sanitize HTML and Email in field values. Used to prevent XSS. + + - Ignore if 'Ignore XSS Filter' is checked or fieldtype is 'Code' + """ + if frappe.flags.in_install: + return + + for fieldname, value in self.get_valid_dict().items(): + if not value or not isinstance(value, basestring): + continue + + elif ("<" not in value and ">" not in value): + # doesn't look like html so no need + continue + + elif "" in value and not (" 0, then reset the values to original / default""" if self.flags.ignore_permissions or frappe.flags.in_install: diff --git a/frappe/model/naming.py b/frappe/model/naming.py index 5152e83df0..879ddbe5a0 100644 --- a/frappe/model/naming.py +++ b/frappe/model/naming.py @@ -5,6 +5,7 @@ from __future__ import unicode_literals import frappe from frappe import _ from frappe.utils import now_datetime, cint +import re def set_new_name(doc): """Sets the `name`` property for the document based on various rules. @@ -161,6 +162,11 @@ def validate_name(doctype, name, case=None, merge=False): if not frappe.get_meta(doctype).get("issingle") and (doctype == name) and (name!="DocType"): frappe.throw(_("Name of {0} cannot be {1}").format(doctype, name), frappe.NameError) + special_characters = "<>" + if re.findall("[{0}]+".format(special_characters), name): + message = ", ".join("'{0}'".format(c) for c in special_characters) + frappe.throw(_("Name cannot contain special characters like {0}").format(special_characters), frappe.NameError) + return name def _set_amended_name(doc): diff --git a/frappe/patches.txt b/frappe/patches.txt index f90b3bc188..b8c9cd5b77 100644 --- a/frappe/patches.txt +++ b/frappe/patches.txt @@ -1,7 +1,7 @@ execute:frappe.db.sql("""update `tabPatch Log` set patch=replace(patch, '.4_0.', '.v4_0.')""") #2014-05-12 frappe.patches.v5_0.convert_to_barracuda_and_utf8mb4 frappe.patches.v6_1.rename_file_data -execute:frappe.reload_doc('core', 'doctype', 'doctype', force=True) #2014-01-24 +execute:frappe.reload_doc('core', 'doctype', 'doctype', force=True) #2016-02-17 execute:frappe.reload_doc('core', 'doctype', 'docfield', force=True) #2015-10-16 execute:frappe.reload_doc('core', 'doctype', 'docperm') #2014-06-24 execute:frappe.reload_doc('custom', 'doctype', 'custom_field') #2015-10-19 diff --git a/frappe/public/css/form.css b/frappe/public/css/form.css index 581a4223bf..4836063a02 100644 --- a/frappe/public/css/form.css +++ b/frappe/public/css/form.css @@ -327,6 +327,9 @@ select.form-control { max-width: none; padding-right: 0px; } + .form-column.col-sm-6 textarea[data-fieldtype="Code"] { + height: 120px !important; + } } @media (max-width: 991px) { .form-section .form-section-heading { diff --git a/frappe/public/js/frappe/form/footer/timeline.js b/frappe/public/js/frappe/form/footer/timeline.js index c6da1145e2..5abe958638 100644 --- a/frappe/public/js/frappe/form/footer/timeline.js +++ b/frappe/public/js/frappe/form/footer/timeline.js @@ -195,7 +195,6 @@ frappe.ui.form.Timeline = Class.extend({ if(c.communication_type=="Communication" && c.communication_medium=="Email") { c.content = c.content.split("")[0]; c.content = frappe.utils.strip_original_content(c.content); - c.content = frappe.dom.remove_script_and_style(c.content); c.original_content = c.content; c.content = frappe.utils.toggle_blockquote(c.content); @@ -222,6 +221,9 @@ frappe.ui.form.Timeline = Class.extend({ c.liked_by_user = c._liked_by.indexOf(user)!==-1; } } + + // basic level of XSS protection + c.content_html = frappe.dom.remove_script_and_style(c.content_html); }, is_communication_or_comment: function(c) { diff --git a/frappe/public/less/form.less b/frappe/public/less/form.less index a6a99cffaf..c5e95a9764 100644 --- a/frappe/public/less/form.less +++ b/frappe/public/less/form.less @@ -409,6 +409,10 @@ select.form-control { max-width: none; padding-right: 0px; } + + .form-column.col-sm-6 textarea[data-fieldtype="Code"] { + height: 120px !important; + } } // upto tablets diff --git a/frappe/templates/includes/comments/comments.py b/frappe/templates/includes/comments/comments.py index 54423a537e..fe5b7f2c45 100644 --- a/frappe/templates/includes/comments/comments.py +++ b/frappe/templates/includes/comments/comments.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals import frappe -import frappe.utils, markdown2 +import frappe.utils from frappe.website.render import clear_cache from frappe import _ @@ -45,7 +45,7 @@ def add_comment(args=None): owner = frappe.db.get_value(doc.doctype, doc.name, "owner") recipients = list(set(commentors if owner=="Administrator" else (commentors + [owner]))) - message = _("{0} by {1}").format(markdown2.markdown(args.get("comment")), comment.sender_full_name) + message = _("{0} by {1}").format(frappe.utils.markdown(args.get("comment")), comment.sender_full_name) message += "

{2}

".format(frappe.utils.get_request_site_address(), page_name, _("View it in your browser")) diff --git a/frappe/tests/test_document.py b/frappe/tests/test_document.py index 995103376a..62c3bc40d8 100644 --- a/frappe/tests/test_document.py +++ b/frappe/tests/test_document.py @@ -156,3 +156,36 @@ class TestDocument(unittest.TestCase): d.subject = "abcde"*100 self.assertRaises(frappe.CharacterLengthExceededError, d.save) + def test_xss_filter(self): + d = self.test_insert() + + # script + xss = '' + escaped_xss = xss.replace('<', '<').replace('>', '>') + d.subject += xss + d.save() + d.load_from_db() + + self.assertTrue(xss not in d.subject) + self.assertTrue(escaped_xss in d.subject) + + # onload + xss = '
Test
' + escaped_xss = '
Test
' + d.subject += xss + d.save() + d.load_from_db() + + self.assertTrue(xss not in d.subject) + self.assertTrue(escaped_xss in d.subject) + + # css attributes + xss = '
Test
' + escaped_xss = '
Test
' + d.subject += xss + d.save() + d.load_from_db() + + self.assertTrue(xss not in d.subject) + self.assertTrue(escaped_xss in d.subject) + diff --git a/frappe/utils/__init__.py b/frappe/utils/__init__.py index 426978c459..f6d3552125 100644 --- a/frappe/utils/__init__.py +++ b/frappe/utils/__init__.py @@ -5,10 +5,16 @@ from __future__ import unicode_literals from werkzeug.test import Client -import os, sys, re, urllib +import os, re, urllib, sys +import json import frappe import requests +import bleach +import bleach_whitelist +from html5lib.sanitizer import HTMLSanitizer +from markdown2 import markdown as _markdown + # utility functions like cint, int, flt, etc. from frappe.utils.data import * @@ -97,7 +103,9 @@ def validate_email_add(email_str, throw=False): def split_emails(txt): email_list = [] - for email in re.split(''',(?=(?:[^"]|"[^"]*")*$)''', cstr(txt)): + + # emails can be separated by comma or newline + for email in re.split('''[,\\n](?=(?:[^"]|"[^"]*")*$)''', cstr(txt)): email = strip(cstr(email)) if email: email_list.append(email) @@ -177,70 +185,6 @@ def strip_html_tags(text): """Remove html tags from text""" return re.sub("\<[^>]*\>", "", text) -def pprint_dict(d, level=1, no_blanks=True): - """ - Pretty print a dictionary with indents - """ - if no_blanks: - remove_blanks(d) - - # make indent - indent, ret = '', '' - for i in range(0,level): indent += '\t' - - # add lines - comment, lines = '', [] - kl = d.keys() - kl.sort() - - # make lines - for key in kl: - if key != '##comment': - tmp = {key: d[key]} - lines.append(indent + str(tmp)[1:-1] ) - - # add comment string - if '##comment' in kl: - ret = ('\n' + indent) + '# ' + d['##comment'] + '\n' - - # open - ret += indent + '{\n' - - # lines - ret += indent + ',\n\t'.join(lines) - - # close - ret += '\n' + indent + '}' - - return ret - -def get_common(d1,d2): - """ - returns (list of keys) the common part of two dicts - """ - return [p for p in d1 if p in d2 and d1[p]==d2[p]] - -def get_common_dict(d1, d2): - """ - return common dictionary of d1 and d2 - """ - ret = {} - for key in d1: - if key in d2 and d2[key]==d1[key]: - ret[key] = d1[key] - return ret - -def get_diff_dict(d1, d2): - """ - return common dictionary of d1 and d2 - """ - diff_keys = set(d2.keys()).difference(set(d1.keys())) - - ret = {} - for d in diff_keys: ret[d] = d2[d] - return ret - - def get_file_timestamp(fn): """ Returns timestamp of the given file @@ -427,11 +371,9 @@ def get_request_session(max_retries=3): return session def watch(path, handler=None, debug=True): - import sys import time - import logging from watchdog.observers import Observer - from watchdog.events import LoggingEventHandler, FileSystemEventHandler + from watchdog.events import FileSystemEventHandler class Handler(FileSystemEventHandler): def on_any_event(self, event): @@ -454,3 +396,54 @@ def watch(path, handler=None, debug=True): except KeyboardInterrupt: observer.stop() observer.join() + +def sanitize_html(html): + """ + Sanitize HTML tags, attributes and style to prevent XSS attacks + Based on bleach clean, bleach whitelist and HTML5lib's Sanitizer defaults + + Does not sanitize JSON, as it could lead to future problems + """ + if not isinstance(html, basestring): + return html + + elif is_json(html): + return html + + # retuns html with escaped tags, escaped orphan >, <, etc. + escaped_html = bleach.clean(html, + tags=HTMLSanitizer.acceptable_elements + HTMLSanitizer.svg_elements, + attributes={"*": HTMLSanitizer.acceptable_attributes, "svg": HTMLSanitizer.svg_attributes}, + styles=bleach_whitelist.all_styles, + strip_comments=False) + + return escaped_html + +def is_json(text): + try: + json.loads(text) + + except ValueError: + return False + + else: + return True + +def markdown(text): + html = _markdown(text) + html = html.replace("", "") + html = sanitize_html(html) + return html + +def sanitize_email(emails): + from email.utils import parseaddr, formataddr + + sanitized = [] + for e in split_emails(emails): + if not validate_email_add(e): + continue + + fullname, email_id = parseaddr(e) + sanitized.append(formataddr((fullname, email_id))) + + return ", ".join(sanitized) diff --git a/frappe/utils/jinja.py b/frappe/utils/jinja.py index 345b1edf76..6d53443dfe 100644 --- a/frappe/utils/jinja.py +++ b/frappe/utils/jinja.py @@ -127,9 +127,8 @@ def get_jloader(): def set_filters(jenv): import frappe - from frappe.utils import global_date_format, cint, cstr, flt + from frappe.utils import global_date_format, cint, cstr, flt, markdown from frappe.website.utils import get_shade, abs_url - from markdown2 import markdown jenv.filters["global_date_format"] = global_date_format jenv.filters["markdown"] = markdown diff --git a/frappe/utils/setup_docs.py b/frappe/utils/setup_docs.py index f3e59e4f08..fa7df65cb9 100644 --- a/frappe/utils/setup_docs.py +++ b/frappe/utils/setup_docs.py @@ -6,10 +6,10 @@ Call from command line: """ -import os, json, frappe, markdown2, shutil +import os, json, frappe, shutil import frappe.website.statics from frappe.website.context import get_context -from markdown2 import markdown +from frappe.utils import markdown class setup_docs(object): def __init__(self, app): @@ -38,7 +38,7 @@ class setup_docs(object): "source_link": self.docs_config.source_link, "hide_install": getattr(self.docs_config, "hide_install", False), "docs_base_url": self.docs_config.docs_base_url, - "long_description": markdown2.markdown(getattr(self.docs_config, "long_description", "")), + "long_description": markdown(getattr(self.docs_config, "long_description", "")), "license": self.hooks.get("app_license")[0], "branch": getattr(self.docs_config, "branch", None) or "develop", "style": getattr(self.docs_config, "style", "") diff --git a/frappe/website/doctype/blog_post/blog_post.js b/frappe/website/doctype/blog_post/blog_post.js new file mode 100644 index 0000000000..e1b8341139 --- /dev/null +++ b/frappe/website/doctype/blog_post/blog_post.js @@ -0,0 +1,8 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Blog Post', { + refresh: function(frm) { + + } +}); diff --git a/frappe/website/doctype/blog_post/blog_post.json b/frappe/website/doctype/blog_post/blog_post.json index e41e39990a..1acd776256 100644 --- a/frappe/website/doctype/blog_post/blog_post.json +++ b/frappe/website/doctype/blog_post/blog_post.json @@ -15,6 +15,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Title", @@ -22,6 +23,7 @@ "no_copy": 1, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 1, @@ -37,6 +39,7 @@ "fieldtype": "Date", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Published On", @@ -44,6 +47,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -59,6 +63,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Published", @@ -66,6 +71,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -81,12 +87,14 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -102,6 +110,7 @@ "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Blog Category", @@ -110,6 +119,7 @@ "options": "Blog Category", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 1, @@ -125,6 +135,7 @@ "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Blogger", @@ -133,6 +144,7 @@ "options": "Blogger", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 1, @@ -148,6 +160,7 @@ "fieldtype": "Read Only", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Parent Website Route", @@ -156,6 +169,7 @@ "options": "", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 1, "report_hide": 0, "reqd": 0, @@ -171,12 +185,14 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -193,6 +209,7 @@ "fieldtype": "Small Text", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Blog Intro", @@ -200,6 +217,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -215,6 +233,7 @@ "fieldtype": "Text Editor", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 1, "in_filter": 0, "in_list_view": 0, "label": "Content", @@ -222,6 +241,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 1, @@ -237,6 +257,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Page Name", @@ -244,6 +265,7 @@ "no_copy": 1, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -259,6 +281,7 @@ "fieldtype": "Check", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Email Sent", @@ -266,6 +289,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -284,7 +308,7 @@ "issingle": 0, "istable": 0, "max_attachments": 5, - "modified": "2015-11-16 06:29:42.508658", + "modified": "2016-02-22 09:16:25.270128", "modified_by": "Administrator", "module": "Website", "name": "Blog Post", @@ -333,5 +357,6 @@ ], "read_only": 0, "read_only_onload": 0, + "sort_order": "ASC", "title_field": "title" } \ No newline at end of file diff --git a/frappe/website/doctype/blog_post/blog_post.py b/frappe/website/doctype/blog_post/blog_post.py index 0ade3a9e05..30d37db136 100644 --- a/frappe/website/doctype/blog_post/blog_post.py +++ b/frappe/website/doctype/blog_post/blog_post.py @@ -7,9 +7,8 @@ import frappe from frappe import _ from frappe.website.website_generator import WebsiteGenerator from frappe.website.render import clear_cache -from frappe.utils import today, cint, global_date_format, get_fullname, strip_html_tags +from frappe.utils import today, cint, global_date_format, get_fullname, strip_html_tags, markdown from frappe.website.utils import find_first_image, get_comment_list -from markdown2 import markdown class BlogPost(WebsiteGenerator): save_versions = True diff --git a/frappe/website/doctype/web_form/web_form.json b/frappe/website/doctype/web_form/web_form.json index a927fa6139..202ed583cd 100644 --- a/frappe/website/doctype/web_form/web_form.json +++ b/frappe/website/doctype/web_form/web_form.json @@ -1,509 +1,551 @@ { - "allow_copy": 0, - "allow_import": 0, - "allow_rename": 0, - "autoname": "field:title", - "creation": "2014-09-01 14:08:48.624556", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "Document", + "allow_copy": 0, + "allow_import": 0, + "allow_rename": 0, + "autoname": "field:title", + "creation": "2014-09-01 14:08:48.624556", + "custom": 0, + "docstatus": 0, + "doctype": "DocType", + "document_type": "Document", "fields": [ { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "fieldname": "title", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Title", - "length": 0, - "no_copy": 1, - "permlevel": 0, - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "title", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Title", + "length": 0, + "no_copy": 1, + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "description": "Website URL", - "fieldname": "page_name", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Page Name", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "description": "Website URL", + "fieldname": "page_name", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Page Name", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "fieldname": "doc_type", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 1, - "label": "Select DocType", - "length": 0, - "no_copy": 0, - "options": "DocType", - "permlevel": 0, - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "doc_type", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 1, + "label": "Select DocType", + "length": 0, + "no_copy": 0, + "options": "DocType", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "fieldname": "column_break_4", - "fieldtype": "Column Break", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "column_break_4", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "length": 0, + "no_copy": 0, + "permlevel": 0, + "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, - "collapsible": 0, - "fieldname": "is_standard", - "fieldtype": "Check", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Is Standard", - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "is_standard", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Is Standard", + "length": 0, + "no_copy": 0, + "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, - "collapsible": 0, - "fieldname": "published", - "fieldtype": "Check", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Published", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "published", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Published", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "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, - "collapsible": 0, - "fieldname": "login_required", - "fieldtype": "Check", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Login Required", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "login_required", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Login Required", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "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, - "collapsible": 0, - "depends_on": "login_required", - "fieldname": "allow_edit", - "fieldtype": "Check", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Allow Edit", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "depends_on": "login_required", + "fieldname": "allow_edit", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Allow Edit", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "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, - "collapsible": 0, - "depends_on": "login_required", - "fieldname": "allow_multiple", - "fieldtype": "Check", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Allow Multiple", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "depends_on": "login_required", + "fieldname": "allow_multiple", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Allow Multiple", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "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, - "collapsible": 0, - "depends_on": "allow_multiple", - "fieldname": "allow_delete", - "fieldtype": "Check", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Allow Delete", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "depends_on": "allow_multiple", + "fieldname": "allow_delete", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Allow Delete", + "length": 0, + "no_copy": 0, + "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, - "collapsible": 0, - "depends_on": "login_required", - "fieldname": "allow_comments", - "fieldtype": "Check", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Allow Comments", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "depends_on": "login_required", + "fieldname": "allow_comments", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Allow Comments", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "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, - "collapsible": 0, - "fieldname": "fields", - "fieldtype": "Section Break", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Fields", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "fields", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Fields", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "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, - "collapsible": 0, - "fieldname": "introduction_text", - "fieldtype": "Text", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Introduction", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "introduction_text", + "fieldtype": "Text", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Introduction", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "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, - "collapsible": 0, - "fieldname": "web_form_fields", - "fieldtype": "Table", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Web Form Fields", - "length": 0, - "no_copy": 0, - "options": "Web Form Field", - "permlevel": 0, - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "web_form_fields", + "fieldtype": "Table", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Web Form Fields", + "length": 0, + "no_copy": 0, + "options": "Web Form Field", + "permlevel": 0, + "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, - "collapsible": 0, - "fieldname": "actions", - "fieldtype": "Section Break", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Actions", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "actions", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Actions", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "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, - "collapsible": 0, - "description": "Message to be displayed on successful completion", - "fieldname": "success_message", - "fieldtype": "Text", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Success Message", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "description": "Message to be displayed on successful completion", + "fieldname": "success_message", + "fieldtype": "Text", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Success Message", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "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, - "collapsible": 0, - "description": "Go to this url after completing the form.", - "fieldname": "success_url", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Success URL", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "description": "Go to this url after completing the form.", + "fieldname": "success_url", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Success URL", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "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, - "collapsible": 0, - "fieldname": "advanced", - "fieldtype": "Section Break", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Advanced", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "advanced", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Advanced", + "length": 0, + "no_copy": 0, + "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, - "collapsible": 0, - "description": "Text to be displayed for Link to Web Page if this form has a web page. Link route will be automatically generated based on `page_name` and `parent_website_route`", - "fieldname": "web_page_link_text", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Web Page Link Text", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "description": "Text to be displayed for Link to Web Page if this form has a web page. Link route will be automatically generated based on `page_name` and `parent_website_route`", + "fieldname": "web_page_link_text", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Web Page Link Text", + "length": 0, + "no_copy": 0, + "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, - "collapsible": 0, - "description": "In JSON as [{\"title\":\"Jobs\", \"name\":\"jobs\"}]", - "fieldname": "breadcrumbs", - "fieldtype": "Small Text", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Breadcrumbs", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "description": "In JSON as [{\"title\":\"Jobs\", \"name\":\"jobs\"}]", + "fieldname": "breadcrumbs", + "fieldtype": "Code", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Breadcrumbs", + "length": 0, + "no_copy": 0, + "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 } - ], - "hide_heading": 0, - "hide_toolbar": 0, - "icon": "icon-edit", - "in_create": 0, - "in_dialog": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 0, - "max_attachments": 0, - "modified": "2015-11-16 06:30:00.321700", - "modified_by": "Administrator", - "module": "Website", - "name": "Web Form", - "name_case": "", - "owner": "Administrator", + ], + "hide_heading": 0, + "hide_toolbar": 0, + "icon": "icon-edit", + "idx": 0, + "in_create": 0, + "in_dialog": 0, + "is_submittable": 0, + "issingle": 0, + "istable": 0, + "max_attachments": 0, + "modified": "2016-02-22 09:38:31.955298", + "modified_by": "Administrator", + "module": "Website", + "name": "Web Form", + "name_case": "", + "owner": "Administrator", "permissions": [ { - "amend": 0, - "apply_user_permissions": 0, - "cancel": 0, - "create": 1, - "delete": 1, - "email": 0, - "export": 0, - "if_owner": 0, - "import": 0, - "permlevel": 0, - "print": 0, - "read": 1, - "report": 1, - "role": "Website Manager", - "set_user_permissions": 0, - "share": 1, - "submit": 0, + "amend": 0, + "apply_user_permissions": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Website Manager", + "set_user_permissions": 0, + "share": 1, + "submit": 0, "write": 1 } - ], - "read_only": 0, - "read_only_onload": 0, - "sort_field": "modified", - "sort_order": "DESC", + ], + "read_only": 0, + "read_only_onload": 0, + "sort_field": "modified", + "sort_order": "DESC", "title_field": "title" -} +} \ No newline at end of file diff --git a/frappe/website/doctype/web_page/web_page.json b/frappe/website/doctype/web_page/web_page.json index f8956e819f..95e8da5440 100644 --- a/frappe/website/doctype/web_page/web_page.json +++ b/frappe/website/doctype/web_page/web_page.json @@ -17,6 +17,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Title", @@ -24,6 +25,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -40,6 +42,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Title", @@ -47,6 +50,7 @@ "no_copy": 1, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 1, @@ -63,6 +67,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Show Title", @@ -71,6 +76,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -87,6 +93,7 @@ "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Slideshow", @@ -95,6 +102,7 @@ "options": "Website Slideshow", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -110,12 +118,14 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -133,6 +143,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Page Name", @@ -140,6 +151,7 @@ "no_copy": 1, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -155,6 +167,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Published", @@ -162,6 +175,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -178,6 +192,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Content", @@ -185,6 +200,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -201,6 +217,7 @@ "fieldtype": "Text Editor", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Main Section", @@ -208,6 +225,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -223,6 +241,7 @@ "fieldtype": "Fold", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -230,6 +249,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -245,6 +265,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Custom Javascript", @@ -252,6 +273,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -268,6 +290,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Insert Code", @@ -275,6 +298,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -291,6 +315,7 @@ "fieldtype": "Code", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Javascript", @@ -299,6 +324,7 @@ "options": "Javascript", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -314,6 +340,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Custom CSS", @@ -321,6 +348,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -336,6 +364,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Insert Style", @@ -343,6 +372,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -359,6 +389,7 @@ "fieldtype": "Code", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "CSS", @@ -367,6 +398,7 @@ "options": "CSS", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -382,6 +414,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -389,6 +422,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -404,6 +438,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Enable Comments", @@ -411,6 +446,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -426,6 +462,7 @@ "fieldtype": "Select", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Text Align", @@ -434,6 +471,7 @@ "options": "Left\nCenter\nRight", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -449,6 +487,7 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -456,6 +495,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -471,6 +511,7 @@ "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Parent Web Page", @@ -479,6 +520,7 @@ "options": "Web Page", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -494,6 +536,7 @@ "fieldtype": "Read Only", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Parent Website Route", @@ -502,6 +545,7 @@ "options": "", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -518,6 +562,7 @@ "fieldtype": "Int", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Priority", @@ -525,6 +570,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -540,6 +586,7 @@ "fieldtype": "Small Text", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Template Path", @@ -547,6 +594,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 1, "report_hide": 0, "reqd": 0, @@ -564,6 +612,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "", @@ -571,6 +620,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -587,6 +637,7 @@ "fieldtype": "Small Text", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Description", @@ -594,6 +645,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -610,6 +662,7 @@ "fieldtype": "Text", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Header", @@ -617,6 +670,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -635,7 +689,7 @@ "issingle": 0, "istable": 0, "max_attachments": 20, - "modified": "2015-11-16 06:30:00.482822", + "modified": "2016-02-22 08:00:02.354788", "modified_by": "Administrator", "module": "Website", "name": "Web Page", @@ -665,5 +719,6 @@ "read_only": 0, "read_only_onload": 0, "search_fields": "title", + "sort_order": "ASC", "title_field": "title" } \ No newline at end of file diff --git a/frappe/website/doctype/web_page/web_page.py b/frappe/website/doctype/web_page/web_page.py index 1736e8bb3d..978d610b98 100644 --- a/frappe/website/doctype/web_page/web_page.py +++ b/frappe/website/doctype/web_page/web_page.py @@ -4,12 +4,11 @@ from __future__ import unicode_literals import frappe, re, os, json, imp import requests, requests.exceptions -from frappe.utils import strip_html +from frappe.utils import strip_html, markdown from frappe.website.website_generator import WebsiteGenerator from frappe.website.router import resolve_route from frappe.website.doctype.website_slideshow.website_slideshow import get_slideshow from frappe.website.utils import find_first_image, get_comment_list, get_full_index -from markdown2 import markdown from frappe.utils.jinja import render_template from jinja2.exceptions import TemplateSyntaxError from frappe import _ diff --git a/frappe/website/doctype/website_script/website_script.js b/frappe/website/doctype/website_script/website_script.js new file mode 100644 index 0000000000..a64b8efff1 --- /dev/null +++ b/frappe/website/doctype/website_script/website_script.js @@ -0,0 +1,8 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Website Script', { + refresh: function(frm) { + + } +}); diff --git a/frappe/website/doctype/website_script/website_script.json b/frappe/website/doctype/website_script/website_script.json index 541e3f9dc5..5d603f041e 100644 --- a/frappe/website/doctype/website_script/website_script.json +++ b/frappe/website/doctype/website_script/website_script.json @@ -17,13 +17,16 @@ "fieldtype": "Code", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Javascript", + "length": 0, "no_copy": 0, "options": "Javascript", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -41,7 +44,8 @@ "is_submittable": 0, "issingle": 1, "istable": 0, - "modified": "2015-02-05 05:11:49.093880", + "max_attachments": 0, + "modified": "2016-02-22 08:00:04.936041", "modified_by": "Administrator", "module": "Website", "name": "Website Script", @@ -69,5 +73,6 @@ } ], "read_only": 0, - "read_only_onload": 0 + "read_only_onload": 0, + "sort_order": "ASC" } \ No newline at end of file diff --git a/frappe/website/doctype/website_settings/website_settings.json b/frappe/website/doctype/website_settings/website_settings.json index 3ef204feb6..80f506d114 100644 --- a/frappe/website/doctype/website_settings/website_settings.json +++ b/frappe/website/doctype/website_settings/website_settings.json @@ -16,12 +16,15 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Landing Page", + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -38,13 +41,16 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Home Page", + "length": 0, "no_copy": 0, "options": "", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -61,12 +67,15 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Home Page is Products", + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -82,11 +91,14 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -103,12 +115,15 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 1, "label": "Title Prefix", + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -124,12 +139,15 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, + "length": 0, "no_copy": 0, "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -146,14 +164,17 @@ "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Website Theme", + "length": 0, "no_copy": 0, "options": "Website Theme", "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -169,14 +190,17 @@ "fieldtype": "Image", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Website Theme Image", + "length": 0, "no_copy": 0, "options": "website_theme_image_link", "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -189,16 +213,19 @@ "bold": 0, "collapsible": 0, "fieldname": "website_theme_image_link", - "fieldtype": "Small Text", + "fieldtype": "Code", "hidden": 1, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Website Theme Image Link", + "length": 0, "no_copy": 0, "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -215,12 +242,15 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Banner", + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -237,13 +267,16 @@ "fieldtype": "Attach Image", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Banner Image", + "length": 0, "no_copy": 0, "options": "", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -259,12 +292,15 @@ "fieldtype": "Button", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Set Banner from Image", + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -280,12 +316,15 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, + "length": 0, "no_copy": 0, "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -302,12 +341,15 @@ "fieldtype": "Small Text", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Banner HTML", + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -324,12 +366,15 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Top Bar", + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -346,12 +391,15 @@ "fieldtype": "Small Text", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Brand HTML", + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -367,13 +415,16 @@ "fieldtype": "Table", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Top Bar Items", + "length": 0, "no_copy": 0, "options": "Top Bar Item", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -390,12 +441,15 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Sidebar", + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -411,13 +465,16 @@ "fieldtype": "Table", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Sidebar Items", + "length": 0, "no_copy": 0, "options": "Top Bar Item", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -433,12 +490,15 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Footer", + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -454,12 +514,15 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Copyright", + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -476,12 +539,15 @@ "fieldtype": "Text Editor", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Address", + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -497,13 +563,16 @@ "fieldtype": "Table", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Footer Items", + "length": 0, "no_copy": 0, "options": "Top Bar Item", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -519,13 +588,16 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Hide Footer Signup", + "length": 0, "no_copy": 0, "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -541,12 +613,15 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Integrations", + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -563,12 +638,15 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Google Analytics ID", + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -584,11 +662,14 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -604,12 +685,15 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Google Plus One", + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -625,12 +709,15 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Facebook Share", + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -646,12 +733,15 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Linked In Share", + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -667,12 +757,15 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Twitter Share", + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -689,12 +782,15 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Twitter Share via", + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -710,12 +806,15 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "More Information", + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -732,13 +831,16 @@ "fieldtype": "Attach", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "FavIcon", + "length": 0, "no_copy": 0, "options": "", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -755,12 +857,15 @@ "fieldtype": "Text", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Subdomain", + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 1, "report_hide": 0, "reqd": 0, @@ -776,11 +881,14 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -797,12 +905,15 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Disable Signup", + "length": 0, "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -818,13 +929,16 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "", + "length": 0, "no_copy": 0, "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -841,14 +955,17 @@ "fieldtype": "Code", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "<head> HTML", + "length": 0, "no_copy": 0, "options": "HTML", "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -867,7 +984,7 @@ "issingle": 1, "istable": 0, "max_attachments": 10, - "modified": "2015-10-19 03:04:48.520048", + "modified": "2016-02-22 09:38:53.160165", "modified_by": "Administrator", "module": "Website", "name": "Website Settings", diff --git a/frappe/website/doctype/website_theme/website_theme.json b/frappe/website/doctype/website_theme/website_theme.json index 743172795f..f9c4f54799 100644 --- a/frappe/website/doctype/website_theme/website_theme.json +++ b/frappe/website/doctype/website_theme/website_theme.json @@ -17,6 +17,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Theme", @@ -25,6 +26,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 1, @@ -41,6 +43,7 @@ "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Module", @@ -50,6 +53,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 1, @@ -67,6 +71,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Apply Style", @@ -75,6 +80,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -91,6 +97,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Custom?", @@ -99,6 +106,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -114,6 +122,7 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -121,6 +130,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -134,9 +144,10 @@ "collapsible": 0, "description": "Link to your Bootstrap theme", "fieldname": "bootstrap", - "fieldtype": "Small Text", + "fieldtype": "Code", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Link to Bootstrap CSS", @@ -145,6 +156,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -161,6 +173,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -168,6 +181,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -184,6 +198,7 @@ "fieldtype": "Select", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Font Size", @@ -193,6 +208,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -209,6 +225,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Google Font (Text)", @@ -217,6 +234,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -233,6 +251,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Google Font (Heading)", @@ -241,6 +260,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -256,6 +276,7 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -263,6 +284,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -278,6 +300,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Text Color", @@ -286,6 +309,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -301,6 +325,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Link Color", @@ -309,6 +334,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -324,6 +350,7 @@ "fieldtype": "Select", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Heading Style", @@ -333,6 +360,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -349,6 +377,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -356,6 +385,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -371,6 +401,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Top Bar Color", @@ -379,6 +410,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -394,6 +426,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Top Bar Text Color", @@ -402,6 +435,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -417,6 +451,7 @@ "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Hide Sidebar", @@ -425,6 +460,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -440,6 +476,7 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -447,6 +484,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -462,6 +500,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Footer Color", @@ -470,6 +509,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -485,6 +525,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Footer Text Color", @@ -493,6 +534,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -509,6 +551,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -516,6 +559,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -531,6 +575,7 @@ "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Background Color", @@ -539,6 +584,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -554,6 +600,7 @@ "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -561,6 +608,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -577,6 +625,7 @@ "fieldtype": "Attach Image", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Background Image", @@ -585,6 +634,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -601,6 +651,7 @@ "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "length": 0, @@ -608,6 +659,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -625,6 +677,7 @@ "fieldtype": "Code", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "Style using CSS", @@ -633,6 +686,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -648,6 +702,7 @@ "fieldtype": "Code", "hidden": 0, "ignore_user_permissions": 0, + "ignore_xss_filter": 0, "in_filter": 0, "in_list_view": 0, "label": "JavaScript", @@ -656,6 +711,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -666,13 +722,14 @@ ], "hide_heading": 0, "hide_toolbar": 0, + "idx": 0, "in_create": 0, "in_dialog": 0, "is_submittable": 0, "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2015-11-16 06:30:00.700801", + "modified": "2016-02-22 09:39:16.920883", "modified_by": "Administrator", "module": "Website", "name": "Website Theme", diff --git a/requirements.txt b/requirements.txt index 794388a750..8b74dcf845 100644 --- a/requirements.txt +++ b/requirements.txt @@ -29,5 +29,6 @@ click num2words watchdog==0.8.0 bleach +bleach-whitelist Pillow beautifulsoup4 From 88e4178446028b8cb3d57d4d033b56ebf1c9a5bf Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Tue, 23 Feb 2016 12:44:34 +0530 Subject: [PATCH 04/72] [fix] frappe.tools.downloadify: use data-url if download feature is missing in link tag --- frappe/public/js/frappe/misc/tools.js | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/frappe/public/js/frappe/misc/tools.js b/frappe/public/js/frappe/misc/tools.js index f5a8015968..63f05552c6 100644 --- a/frappe/public/js/frappe/misc/tools.js +++ b/frappe/public/js/frappe/misc/tools.js @@ -9,15 +9,22 @@ frappe.tools.downloadify = function(data, roles, title) { return; } + var filename = title + ".csv"; var csv_data = frappe.tools.to_csv(data); - - // Used Blob object, because it can handle large files - var blob_object = new Blob([csv_data], { type: 'text/csv' }); - var blob_url = URL.createObjectURL(blob_object); - var a = document.createElement('a'); - a.download = title + '.csv'; - a.href = blob_url; + + if ("download" in a) { + // Used Blob object, because it can handle large files + var blob_object = new Blob([csv_data], { type: 'text/csv;charset=UTF-8' }); + a.href = URL.createObjectURL(blob_object); + a.download = filename; + + } else { + // use old method + a.href = 'data:attachment/csv,' + encodeURIComponent(csv_data); + a.download = filename; + a.target = "_blank"; + } document.body.appendChild(a); a.click(); From a3999826b6ebe0b8760a4491e273197d75466472 Mon Sep 17 00:00:00 2001 From: Neil Trini Lasrado Date: Tue, 23 Feb 2016 18:52:28 +0530 Subject: [PATCH 05/72] Added new_line_sep to data.py --- frappe/utils/data.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/frappe/utils/data.py b/frappe/utils/data.py index d5fc004caf..720b694f7f 100644 --- a/frappe/utils/data.py +++ b/frappe/utils/data.py @@ -532,6 +532,21 @@ def comma_sep(some_list, pattern): else: return some_list +def new_line_sep(some_list): + if isinstance(some_list, (list, tuple)): + # list(some_list) is done to preserve the existing list + some_list = [unicode(s) for s in list(some_list)] + if not some_list: + return "" + elif len(some_list) == 1: + return some_list[0] + else: + some_list = ["%s" % s for s in some_list] + return format("\n ".join(some_list)) + else: + return some_list + + def filter_strip_join(some_list, sep): """given a list, filter None values, strip spaces and join""" return (cstr(sep)).join((cstr(a).strip() for a in filter(None, some_list))) From 8ca3fea7622f1435a6b4616dd3d6724c4d8c1d0a Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 24 Feb 2016 12:53:36 +0530 Subject: [PATCH 06/72] [minor] [fix] [docs] fix missing link --- frappe/docs/user/guides/app-development/index.txt | 2 +- frappe/hooks.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frappe/docs/user/guides/app-development/index.txt b/frappe/docs/user/guides/app-development/index.txt index 32b9c08c0d..2c74940479 100644 --- a/frappe/docs/user/guides/app-development/index.txt +++ b/frappe/docs/user/guides/app-development/index.txt @@ -4,7 +4,7 @@ generating-docs how-enable-developer-mode-in-frappe fetch-custom-field-value-from-master-to-all-related-transactions executing-code-on-doctype-events -how-to-add-customizations-to-app +how-to-create-custom-fields-during-app-installation insert-a-document-via-api how-to-improve-a-standard-control overriding-link-query-by-custom-script diff --git a/frappe/hooks.py b/frappe/hooks.py index 5203f1a5bb..67994207b0 100644 --- a/frappe/hooks.py +++ b/frappe/hooks.py @@ -1,7 +1,7 @@ from __future__ import unicode_literals app_name = "frappe" app_title = "Frappe Framework" -app_publisher = "Frappe Technologies Pvt. Ltd." +app_publisher = "Frappe Technologies" app_description = "Full stack web framework with Python, Javascript, MariaDB, Redis, Node" app_icon = "octicon octicon-circuit-board" From a79bb3cf6e57d3ba69656406f7960cf93943e1e8 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Wed, 24 Feb 2016 13:02:19 +0530 Subject: [PATCH 07/72] [fix] Try to reconnect to dropbox if token expires. Also upgrade to oauth2. --- .../doctype/dropbox_backup/dropbox_backup.py | 70 ++++++++++++++----- 1 file changed, 52 insertions(+), 18 deletions(-) diff --git a/frappe/integrations/doctype/dropbox_backup/dropbox_backup.py b/frappe/integrations/doctype/dropbox_backup/dropbox_backup.py index 9e0723e0b9..bf9198c73c 100644 --- a/frappe/integrations/doctype/dropbox_backup/dropbox_backup.py +++ b/frappe/integrations/doctype/dropbox_backup/dropbox_backup.py @@ -15,6 +15,9 @@ from __future__ import unicode_literals import frappe from frappe.model.document import Document from frappe.utils import cint, split_emails, get_request_site_address, cstr +from frappe.utils.backups import new_backup +from frappe.utils import get_files_path, get_backups_path + import os from frappe import _ @@ -38,7 +41,6 @@ def take_backups_if(freq): def take_backups_dropbox(): did_not_upload, error_log = [], [] try: - from frappe.integrations.doctype.dropbox_backup.dropbox_backup import backup_to_dropbox did_not_upload, error_log = backup_to_dropbox() if did_not_upload: raise Exception @@ -60,7 +62,9 @@ def send_email(success, service_name, error_status=None): subject = "[Warning] Backup Upload Failed" message ="""

Backup Upload Failed

Oops, your automated backup to %s failed.

-

Error message: %s

+

Error message:
+

%s
+

Please contact your system manager for more information.

""" % (service_name, error_status) @@ -87,7 +91,6 @@ def get_dropbox_authorize_url(): @frappe.whitelist(allow_guest=True) def dropbox_callback(oauth_token=None, not_approved=False): - from dropbox import client if not not_approved: if frappe.db.get_value("Dropbox Backup", None, "dropbox_access_key")==oauth_token: allowed = 1 @@ -127,23 +130,15 @@ def dropbox_callback(oauth_token=None, not_approved=False): frappe.response['page_name'] = 'message.html' def backup_to_dropbox(): - from dropbox import client, session - from frappe.utils.backups import new_backup - from frappe.utils import get_files_path, get_backups_path if not frappe.db: frappe.connect() - sess = session.DropboxSession(frappe.conf.dropbox_access_key, frappe.conf.dropbox_secret_key, "app_folder") - - sess.set_token(frappe.db.get_value("Dropbox Backup", None, "dropbox_access_key"), - frappe.db.get_value("Dropbox Backup", None, "dropbox_access_secret")) - - dropbox_client = client.DropboxClient(sess) + dropbox_client = get_dropbox_client() # upload database backup = new_backup(ignore_files=True) filename = os.path.join(get_backups_path(), os.path.basename(backup.backup_path_db)) - upload_file_to_dropbox(filename, "/database", dropbox_client) + dropbox_client = upload_file_to_dropbox(filename, "/database", dropbox_client) frappe.db.close() @@ -151,12 +146,33 @@ def backup_to_dropbox(): did_not_upload = [] error_log = [] - upload_from_folder(get_files_path(), "/files", dropbox_client, did_not_upload, error_log) - upload_from_folder(get_files_path(is_private=1), "/private/files", dropbox_client, did_not_upload, error_log) + dropbox_client = upload_from_folder(get_files_path(), "/files", dropbox_client, did_not_upload, error_log) + dropbox_client = upload_from_folder(get_files_path(is_private=1), "/private/files", dropbox_client, did_not_upload, error_log) frappe.connect() return did_not_upload, list(set(error_log)) +def get_dropbox_client(previous_dropbox_client=None): + from dropbox import client + + sess = get_dropbox_session() + + sess.set_token(frappe.db.get_value("Dropbox Backup", None, "dropbox_access_key"), + frappe.db.get_value("Dropbox Backup", None, "dropbox_access_secret")) + + dropbox_client = client.DropboxClient(sess) + + # upgrade to oauth2 + token = dropbox_client.create_oauth2_access_token() + dropbox_client = client.DropboxClient(token) + + if previous_dropbox_client: + dropbox_client.connection_reset_count = previous_dropbox_client.connection_reset_count + 1 + else: + dropbox_client.connection_reset_count = 0 + + return dropbox_client + def upload_from_folder(path, dropbox_folder, dropbox_client, did_not_upload, error_log): import dropbox.rest @@ -187,11 +203,13 @@ def upload_from_folder(path, dropbox_folder, dropbox_client, did_not_upload, err if not found: try: - upload_file_to_dropbox(filepath, dropbox_folder, dropbox_client) + dropbox_client = upload_file_to_dropbox(filepath, dropbox_folder, dropbox_client) except Exception: did_not_upload.append(filename) error_log.append(frappe.get_traceback()) + return dropbox_client + def get_dropbox_session(): try: from dropbox import session @@ -218,10 +236,26 @@ def upload_file_to_dropbox(filename, folder, dropbox_client): try: uploader.upload_chunked() uploader.finish(folder + "/" + os.path.basename(filename), overwrite=True) - except rest.ErrorResponse: - pass + + except rest.ErrorResponse, e: + # if "[401] u'Access token not found.'", + # it means that the user needs to again allow dropbox backup from the UI + # so re-raise + + if (e.startswith("[401]") + and dropbox_client.connection_reset_count < 10 + and e != "[401] u'Access token not found.'"): + + # session expired, so get a new connection! + # [401] u"The given OAuth 2 access token doesn't exist or has expired." + dropbox_client = get_dropbox_client(dropbox_client) + + else: + raise else: dropbox_client.put_file(folder + "/" + os.path.basename(filename), f, overwrite=True) + return dropbox_client + if __name__=="__main__": backup_to_dropbox() From 5649950dd21ca8bdabba490f56f8c6dabc5f1119 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 24 Feb 2016 14:40:00 +0530 Subject: [PATCH 08/72] [translations] --- frappe/translations/fr.csv | 42 ++++++------- frappe/translations/hr.csv | 30 ++++----- frappe/translations/ko.csv | 14 ++--- frappe/translations/nl.csv | 64 +++++++++---------- frappe/translations/pl.csv | 114 +++++++++++++++++----------------- frappe/translations/pt-BR.csv | 2 +- frappe/translations/pt.csv | 2 +- 7 files changed, 134 insertions(+), 134 deletions(-) diff --git a/frappe/translations/fr.csv b/frappe/translations/fr.csv index fa8bc2b2eb..c935473c52 100644 --- a/frappe/translations/fr.csv +++ b/frappe/translations/fr.csv @@ -26,7 +26,7 @@ apps/frappe/frappe/config/core.py +42,Logs,Logs DocType: DocPerm,This role update User Permissions for a user,Ce rôle Permission mise à jour de l'utilisateur pour un utilisateur apps/frappe/frappe/public/js/frappe/model/model.js +510,Rename {0},Renommer {0} DocType: Workflow State,zoom-out,Réduire -apps/frappe/frappe/public/js/legacy/form.js +66,Cannot open {0} when its instance is open,pas trouvé +apps/frappe/frappe/public/js/legacy/form.js +66,Cannot open {0} when its instance is open,Ne peut ouvrir {0} quand son instance est ouverte apps/frappe/frappe/model/document.py +756,Table {0} cannot be empty,La Table {0} ne peut pas être vide apps/frappe/frappe/public/js/frappe/views/reports/grid_report.js +893,With Ledgers,Permanence Annuler {0} ? DocType: Communication,Reference Owner,référence propriétaire @@ -63,7 +63,7 @@ apps/frappe/frappe/public/js/frappe/ui/upload.html +12,Web Link,Lien Web apps/frappe/frappe/public/js/frappe/misc/pretty_date.js +41,1 minute ago,il y a 1 minute apps/frappe/frappe/core/page/data_import_tool/data_import_main.html +33,"Recommended bulk editing records via import, or understanding the import format.","Modification d'enregistrements en vrac Recommandé par l'importation, ou de comprendre le format d'importation." apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +36,"Apart from System Manager, roles with Set User Permissions right can set permissions for other users for that Document Type.","En dehors de System Manager, les rôles avec Définir les autorisations de droit d'utilisateur peut définir des autorisations pour d'autres utilisateurs pour ce type de document." -DocType: Company History,Company History,Historique de l'entreprise +DocType: Company History,Company History,Historique de la société DocType: Workflow State,volume-up,Augmenter le volume apps/frappe/frappe/core/page/data_import_tool/importer.py +45,Only allowed {0} rows in one import,Seulement autorisés {0} lignes d'une importation apps/frappe/frappe/public/js/frappe/list/list_sidebar.js +61,Refresh Stats,Actualiser Statistiques @@ -224,7 +224,7 @@ apps/frappe/frappe/core/doctype/file/file_list.js +176,New,Nouveau DocType: System Settings,Loading...,Chargement en cours ... DocType: DocField,Password,Mot de passe DocType: Blogger,Will be used in url (usually first name).,Sera utilisé dans url (généralement prénom). -apps/frappe/frappe/client.py +63,Can not edit Read Only fields,Ne peut Editer les champs en Lecture Seule +apps/frappe/frappe/client.py +63,Can not edit Read Only fields,Ne peut éditer les champs en lecture seule apps/frappe/frappe/print/page/print_format_builder/print_format_builder.js +463,Edit Heading,Modifier rubrique DocType: File,File URL,URL du fichier apps/frappe/frappe/desk/doctype/event/event.py +68,Upcoming Events for Today,Prochains événements pour Aujourd'hui @@ -347,13 +347,13 @@ DocType: Workflow Transition,Defines actions on states and the next step and all apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +11,"As a best practice, do not assign the same set of permission rule to different Roles. Instead, set multiple Roles to the same User.","Comme une meilleure pratique , ne pas attribuer le même ensemble de règle d'autorisation pour différents rôles . Au lieu de cela , définir plusieurs rôles à un même utilisateur ." DocType: Web Form,Message to be displayed on successful completion,Message qui sera affiché sur la réussite DocType: Contact Us Settings,Address Title,Titre de l'adresse -DocType: Website Settings,Footer Items,Articles de bas de page +DocType: Website Settings,Footer Items,Éléments du pied de page apps/frappe/frappe/public/js/frappe/ui/page.html +21,Menu,Menu DocType: DefaultValue,DefaultValue,Valeur par défaut DocType: Dropbox Backup,Daily,Quotidien apps/frappe/frappe/config/setup.py +19,User Roles,Définition des rôles DocType: Property Setter,Property Setter overrides a standard DocType or Field property,Propriété Setter remplace un DOCTYPE standard ou bien le terrain -apps/frappe/frappe/core/doctype/user/user.py +380,Cannot Update: Incorrect / Expired Link.,Vous ne pouvez pas mettre à jour : Lien Mauvais ou périmée . +apps/frappe/frappe/core/doctype/user/user.py +380,Cannot Update: Incorrect / Expired Link.,La mise à jour ne peut être effectuée : Lien incorrect ou périmé . DocType: DocField,Set Only Once,Défini qu'une seule fois apps/frappe/frappe/core/doctype/user/user.py +315,Username {0} already exists,Nom d'utilisateur {0} existe déjà apps/frappe/frappe/core/doctype/doctype/doctype.py +528,{0}: Cannot set import as {1} is not importable,{0} : Impossible de définir l'importation car {1} n'est pas importable @@ -463,7 +463,7 @@ apps/frappe/frappe/config/setup.py +176,"States for workflow (e.g. Draft, Approv apps/frappe/frappe/public/js/frappe/form/link_selector.js +136,Set Quantity,Ensemble Quantité DocType: User,Unsubscribed,Désabonné ,Data Import Tool,Outil d'importation de données -apps/frappe/frappe/core/doctype/user/user.py +425,Registration Details Emailed.,Modalités d'inscription envoyé par courriel. +apps/frappe/frappe/core/doctype/user/user.py +425,Registration Details Emailed.,Modalités d'inscription envoyé par E-mail. DocType: Workflow State,Stop,arrêtez DocType: Top Bar Item,Link to the page you want to open. Leave blank if you want to make it a group parent.,Lien vers la page que vous souhaitez ouvrir. Laissez ce champ vide si vous voulez faire un parent du groupe. DocType: DocType,Is Single,Est célibataire @@ -471,7 +471,7 @@ apps/frappe/frappe/email/bulk.py +231,{0} has left the conversation in {1} {2},{ DocType: Blogger,User ID of a Blogger,ID de l'utilisateur d'un Blogger apps/frappe/frappe/core/doctype/user/user.py +201,There should remain at least one System Manager,Il devrait y rester au moins un administrateur système DocType: Workflow State,circle-arrow-right,cercle flèche à droite -apps/frappe/frappe/public/js/legacy/form.js +72,Cannot open instance when its {0} is open,Création / modification par +apps/frappe/frappe/public/js/legacy/form.js +72,Cannot open instance when its {0} is open,Ne peut ouvrir un instance quand son {0} est ouverte DocType: Scheduler Log,Method,Méthode DocType: Report,Script Report,Rapport de Script DocType: About Us Settings,Company Introduction,Présentation de l'entreprise @@ -639,7 +639,7 @@ DocType: DocPerm,Set User Permissions,Définir les autorisations des utilisateur DocType: Email Account,Email Account Name,Nom du compte E-mail apps/frappe/frappe/core/page/permission_manager/permission_manager.js +249,Select Document Types,Sélectionnez Types de documents DocType: File,old_parent,old_parent -DocType: Email Account,"e.g. ""Support"", ""Sales"", ""Jerry Yang""","par exemple ""Support "","" vente "","" Jerry Yang """ +DocType: Email Account,"e.g. ""Support"", ""Sales"", ""Jerry Yang""","Ex. ""Support "","" vente "",""Jerry Yang""" apps/frappe/frappe/public/js/frappe/form/workflow.js +115,Document Status transition from,Statut du document de transition DocType: DocField,Description,Description DocType: Print Settings,Repeat Header and Footer in PDF,Répétez-tête et pied de page en PDF @@ -739,7 +739,7 @@ apps/frappe/frappe/core/page/data_import_tool/exporter.py +60,Notes:,Remarques: apps/frappe/frappe/public/js/frappe/form/control.js +1391,Markdown,Markdown DocType: DocShare,Document Name,Nom du document DocType: ToDo,Medium,Moyen -apps/frappe/frappe/public/js/frappe/form/linked_with.js +86,Not enough permission to see links.,Pas l'autorisation suffisante pour voir les liens. +apps/frappe/frappe/public/js/frappe/form/linked_with.js +86,Not enough permission to see links.,Autorisation insuffisante pour voir les liens. DocType: Customize Form,Customize Form,Personnaliser le formulaire DocType: Currency,A symbol for this currency. For e.g. $,Un symbole pour cette monnaie. Par exemple $ apps/frappe/frappe/public/js/frappe/ui/toolbar/about.js +4,Frappe Framework,Framework Frappe @@ -831,7 +831,7 @@ apps/frappe/frappe/public/js/frappe/form/control.js +765,Please save the documen apps/frappe/frappe/public/js/frappe/ui/messages.js +163,Enter your password,Entrez votre mot de passe DocType: Dropbox Backup,Dropbox Access Secret,Dropbox accès secrète apps/frappe/frappe/core/doctype/doctype/doctype.py +351,Fold must come before a Section Break,Pliez doit venir avant un saut de section -apps/frappe/frappe/core/doctype/user/user.py +430,Not allowed to reset the password of {0},Non autorisé pour réinitialiser le mot de passe de {0} +apps/frappe/frappe/core/doctype/user/user.py +430,Not allowed to reset the password of {0},Non autorisé a réinitialiser le mot de passe de {0} DocType: Workflow State,hand-down,la main vers le bas apps/frappe/frappe/core/doctype/doctype/doctype.py +494,{0}: Cannot set Cancel without Submit,{0} : Impossible de définir Annuler sans Soumettre DocType: Website Theme,Theme,Thème @@ -931,7 +931,7 @@ apps/frappe/frappe/core/doctype/doctype/doctype.py +446,Enter at least one permi apps/frappe/frappe/public/js/frappe/model/model.js +20,Created On,Créé le DocType: Workflow State,align-center,Centrer apps/frappe/frappe/public/js/frappe/form/set_sharing.html +6,Can Write,Peut Ecrire -apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +16,"Certain documents, like an Invoice, should not be changed once final. The final state for such documents is called Submitted. You can restrict which roles can Submit.","Certains documents , comme une facture , ne devraient pas être modifiés une fois finale . L'état final de ces documents est appelée Soumis . Vous pouvez limiter les rôles pouvant Soumettre." +apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +16,"Certain documents, like an Invoice, should not be changed once final. The final state for such documents is called Submitted. You can restrict which roles can Submit.","Certains documents , comme une facture , ne devraient pas être modifiés une fois finalisés . L'état final de ces documents est appelée soumis . Vous pouvez limiter les rôles pouvant soumettre." apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +619,You are not allowed to export this report,Vous n'êtes pas autorisé à exporter ce rapport. DocType: ToDo,Sender,Expéditeur DocType: Web Page,Description for search engine optimization.,Description pour l'optimisation des moteurs de recherche. @@ -1005,7 +1005,7 @@ apps/frappe/frappe/public/js/legacy/print_format.js +125,You are not allowed to apps/frappe/frappe/public/js/frappe/views/reports/grid_report.js +286,Loading Report,Chargement rapport DocType: Page,Standard,Standard apps/frappe/frappe/public/js/frappe/form/form_sidebar.html +26,Attach File,Joindre un fichier -apps/frappe/frappe/templates/emails/password_update.html +1,Password Update Notification,Mot de passe Mise à jour de notification +apps/frappe/frappe/templates/emails/password_update.html +1,Password Update Notification,Notification de mise à jour du mot de passe apps/frappe/frappe/desk/page/backups/backups.html +13,Size,Taille apps/frappe/frappe/public/js/frappe/form/footer/assign_to.js +62,Assignment Complete,Cession complète DocType: DocPerm,User Permission DocTypes,DocTypes d'autorisation de l'utilisateur @@ -1279,7 +1279,7 @@ apps/frappe/frappe/core/doctype/user/user.js +317,Role Permissions,Permissions d apps/frappe/frappe/public/js/frappe/form/set_sharing.html +5,Can Read,Peut Lire DocType: Standard Reply,Response,Réponse apps/frappe/frappe/public/js/frappe/form/workflow.js +41,Workflow will start after saving.,Workflow démarre après la sauvegarde. -apps/frappe/frappe/public/js/frappe/form/set_sharing.html +7,Can Share,Peuvent partager +apps/frappe/frappe/public/js/frappe/form/set_sharing.html +7,Can Share,Peut partager apps/frappe/frappe/email/smtp.py +33,Invalid recipient address,Adresse de destinataire invalide DocType: Workflow State,step-forward,l'étape de l'avant- apps/frappe/frappe/core/doctype/user/user.js +41,Refreshing...,Actualisation ... @@ -1300,7 +1300,7 @@ DocType: Website Theme,Apply Style,Appliquer le style apps/frappe/frappe/public/js/frappe/form/form_sidebar.html +39,Shared With,Partagé avec ,Modules Setup,modules installation apps/frappe/frappe/core/page/data_import_tool/exporter.py +230,Type:,Type: -DocType: Communication,Unshared,non partagée +DocType: Communication,Unshared,Non partagée apps/frappe/frappe/desk/moduleview.py +57,Module Not Found,Module introuvable DocType: User,Location,Lieu ,Permitted Documents For User,Documents autorisés pour l'utilisateur @@ -1364,7 +1364,7 @@ DocType: DocType,Allow Import via Data Import Tool,Autoriser l'importation v apps/frappe/frappe/model/base_document.py +505,Not allowed to change {0} after submission,Non autorisé à changer {0} après la présentation DocType: Communication,Comment Type,Type de commentaire apps/frappe/frappe/config/setup.py +8,Users,Utilisateurs -DocType: Report,Report Type,Rapport Genre +DocType: Report,Report Type,Rapport type DocType: Email Account,Signature,Signature apps/frappe/frappe/public/js/frappe/form/share.js +112,Share With,Partager avec apps/frappe/frappe/core/doctype/user/user.js +130,Loading,Chargement @@ -1383,7 +1383,7 @@ DocType: Event,Sunday,Dimanche apps/frappe/frappe/public/js/frappe/form/save.js +14,Amending,Amendement apps/frappe/frappe/public/js/frappe/form/link_selector.js +5,Dialog box to select a Link Value,Boîte de dialogue pour sélectionner une valeur de lien DocType: Contact Us Settings,Send enquiries to this email address,Envoyer une demande à cette adresse courriel -DocType: Letter Head,Letter Head Name,Nom de A en-tête +DocType: Letter Head,Letter Head Name,Nom de l'en-tête apps/frappe/frappe/config/website.py +23,User editable form on Website.,Utilisateur formulaire modifiable sur le Site. DocType: Workflow State,file,fichier apps/frappe/frappe/templates/pages/login.html +74,Back to Login,Retour connexion @@ -1499,7 +1499,7 @@ DocType: Website Theme,This must be checked if the below style settings are appl apps/frappe/frappe/print/page/print_format_builder/print_format_builder.js +111,Name of the new Print Format,Nom du nouveau Format d'Impression apps/frappe/frappe/core/page/data_import_tool/exporter.py +229,Mandatory:,Obligatoire: ,User Permissions Manager,Gestion autorisations des utilisateurs -DocType: Property Setter,New value to be set,La nouvelle valeur à régler +DocType: Property Setter,New value to be set,Nouvelle valeur à régler DocType: Email Alert,Days Before or After,Jours avant ou après DocType: Email Alert,Email Alert,Alerte E-mail apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +34,Select Document Types to set which User Permissions are used to limit access.,Sélectionner les types de document pour définir les autorisations utilisateur sont utilisés pour limiter l'accès. @@ -1760,7 +1760,7 @@ DocType: Role,Role Name,Nom du Rôle apps/frappe/frappe/config/core.py +27,Script or Query reports,Script ou une requête rapports DocType: Workflow Document State,Workflow Document State,Etat du document de workflow apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +32,"To give acess to a role for only specific records, check the Apply User Permissions. User Permissions are used to limit users with such role to specific records.","Pour donner acess à un rôle pour que les enregistrements spécifiques, vérifiez les permissions d'utilisation se appliquent. les autorisations des utilisateurs sont utilisés pour limiter les utilisateurs avec ce rôle à des enregistrements spécifiques." -apps/frappe/frappe/workflow/doctype/workflow/workflow.py +70,Cannot cancel before submitting. See Transition {0},Vous ne pouvez pas annuler avant de soumettre . +apps/frappe/frappe/workflow/doctype/workflow/workflow.py +70,Cannot cancel before submitting. See Transition {0},Impossible d'annuler avant de soumettre . Voir transition {0} apps/frappe/frappe/templates/pages/print.py +173,Print Format {0} is disabled,Format d'impression {0} est désactivé DocType: Email Alert,Send days before or after the reference date,Envoyer jours avant ou après la date de référence DocType: User,Allow user to login only after this hour (0-24),Permettre à l'utilisateur de se connecter seulement après cette heure (0-24) @@ -1894,14 +1894,14 @@ apps/frappe/frappe/core/doctype/user/user.py +240,User {0} cannot be renamed,Uti DocType: Website Settings,An icon file with .ico extension. Should be 16 x 16 px. Generated using a favicon generator. [favicon-generator.org],Un fichier d'icône avec .ico. Devrait être 16 x 16 px. Généré en utilisant un générateur de favicon. [favicon-generator.org] apps/frappe/frappe/website/doctype/website_settings/website_settings.js +17,Exported,exporté DocType: DocPerm,"JSON list of DocTypes used to apply User Permissions. If empty, all linked DocTypes will be used to apply User Permissions.","JSON liste des DocTypes utilisés pour appliquer les autorisations des utilisateurs. Se il est vide, tous liés DocTypes seront utilisés pour appliquer les autorisations des utilisateurs." -DocType: Report,Ref DocType,Réf DocType +DocType: Report,Ref DocType,Réf. DocType apps/frappe/frappe/core/doctype/doctype/doctype.py +499,{0}: Cannot set Amend without Cancel,{0} : Impossible de définir Modifier sans Annuler apps/frappe/frappe/public/js/frappe/form/print_layout.html +20,Full Page,Pleine page DocType: DocType,Is Child Table,Est-table enfant apps/frappe/frappe/utils/csvutils.py +123,{0} must be one of {1},{0} doit être l'un des {1} apps/frappe/frappe/public/js/frappe/form/form_viewers.js +26,{0} is currently viewing this document,{0} est en train de regarder ce document apps/frappe/frappe/config/core.py +52,Background Email Queue,Contexte Email Queue -apps/frappe/frappe/templates/emails/password_reset.html +1,Password Reset,Password Reset +apps/frappe/frappe/templates/emails/password_reset.html +1,Password Reset,Initialisation du mot de passe DocType: Communication,Opened,Ouvert DocType: Workflow State,chevron-left,chevron gauche DocType: Bulk Email,Sending,Envoi @@ -2002,7 +2002,7 @@ apps/frappe/frappe/custom/doctype/customize_form/customize_form.js +158,"Change apps/frappe/frappe/website/doctype/web_form/web_form.py +27,You need to be in developer mode to edit a Standard Web Form,Vous devez être en mode développeur pour modifier un formulaire Web standard apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +48,"For comparative filters, start with","Pour les filtres de comparaison, commencez par" DocType: Website Theme,Link to Bootstrap CSS,Lien vers Bootstrap CSS -DocType: Workflow State,camera,appareil photo +DocType: Workflow State,camera,Caméra DocType: Website Settings,Brand HTML,Marque HTML apps/frappe/frappe/templates/includes/login/login.js +19,Both login and password required,Un login et un mot de passe sont requis apps/frappe/frappe/model/document.py +436,Please refresh to get the latest document.,S'il vous plaît Refresh pour obtenir la dernière version du document. diff --git a/frappe/translations/hr.csv b/frappe/translations/hr.csv index 595bcfa747..af1ec10ca0 100644 --- a/frappe/translations/hr.csv +++ b/frappe/translations/hr.csv @@ -60,7 +60,7 @@ DocType: Print Settings,Classic,Klasik apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +49,For ranges,Za raspone DocType: Workflow State,indent-right,alineje-desno apps/frappe/frappe/public/js/frappe/ui/upload.html +12,Web Link,Web Link -apps/frappe/frappe/public/js/frappe/misc/pretty_date.js +41,1 minute ago,prije 1 minutu +apps/frappe/frappe/public/js/frappe/misc/pretty_date.js +41,1 minute ago,Prije 1 minutu apps/frappe/frappe/core/page/data_import_tool/data_import_main.html +33,"Recommended bulk editing records via import, or understanding the import format.","Preporučena skupno uređivanje zapisa putem uvoza, odnosno razumijevanje uvoz formatu." apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +36,"Apart from System Manager, roles with Set User Permissions right can set permissions for other users for that Document Type.","Osim System Manager, uloge s postavite korisnički Dozvole pravo može postaviti dozvole za ostale korisnike za tu vrstu dokumenta." DocType: Company History,Company History,Povijest tvrtke @@ -108,7 +108,7 @@ apps/frappe/frappe/custom/doctype/custom_field/custom_field.py +108,"Insert Afte DocType: Workflow State,circle-arrow-up,krug sa strelicom prema gore apps/frappe/frappe/public/js/frappe/upload.js +156,Uploading...,Prijenos ... DocType: Workflow State,italic,kurzivan -apps/frappe/frappe/core/doctype/doctype/doctype.py +501,{0}: Cannot set Import without Create,{0} : Ne može se uvoz bez Stvoriti +apps/frappe/frappe/core/doctype/doctype/doctype.py +501,{0}: Cannot set Import without Create,{0} : Ne može se uvesti bez stvaranja apps/frappe/frappe/config/desk.py +21,Event and other calendars.,Događaj i druge kalendare. apps/frappe/frappe/public/js/frappe/views/reports/reportview.js +614,Drag to sort columns,Povucite kako bi sortirali stupce apps/frappe/frappe/print/page/print_format_builder/print_format_builder_column_selector.html +2,Widths can be set in px or %.,Širina može biti postavljena u px ili%. @@ -355,7 +355,7 @@ DocType: Property Setter,Property Setter overrides a standard DocType or Field p apps/frappe/frappe/core/doctype/user/user.py +380,Cannot Update: Incorrect / Expired Link.,Ne možete ažurirati : Nepravilan / istekla . DocType: DocField,Set Only Once,Postaviti samo jednom apps/frappe/frappe/core/doctype/user/user.py +315,Username {0} already exists,Korisničko ime {0} već postoji -apps/frappe/frappe/core/doctype/doctype/doctype.py +528,{0}: Cannot set import as {1} is not importable,{0} : Ne može se uvesti kao {1} nije za uvoz +apps/frappe/frappe/core/doctype/doctype/doctype.py +528,{0}: Cannot set import as {1} is not importable,{0} : Ne može se postaviti uvoz kao {1} nije za uvoz DocType: Top Bar Item,"target = ""_blank""",target = "_blank" DocType: Workflow State,hdd,HDD DocType: ToDo,High,Visok @@ -365,7 +365,7 @@ apps/frappe/frappe/desk/query_report.py +19,You don't have access to Report: {0} DocType: User,Send Welcome Email,Pošalji e-mail dobrodošlice apps/frappe/frappe/core/page/user_permissions/user_permissions.js +132,Upload CSV file containing all user permissions in the same format as Download.,Pošalji CSV datoteku koja sadrži sve korisničke dozvole u istom obliku kao preuzimanje. apps/frappe/frappe/public/js/frappe/ui/filters/filters.js +359,Remove Filter,Uklonite filtar -apps/frappe/frappe/config/setup.py +108,Bulk Rename,Bulk Rename +apps/frappe/frappe/config/setup.py +108,Bulk Rename,Skupno preimenuj DocType: DocField,Heading,Naslov DocType: Workflow State,resize-vertical,resize-vertikalna DocType: Contact Us Settings,Introductory information for the Contact Us Page,Uvodni podaci za stranicu Kontaktirajte nas @@ -386,7 +386,7 @@ DocType: DocType,Sort Order,sortiranje apps/frappe/frappe/custom/doctype/customize_form/customize_form.py +137,'In List View' not allowed for type {0} in row {1},'U prikazu popisa' nisu dopušteni za tip {0} u redu {1} DocType: Custom Field,Select the label after which you want to insert new field.,Odaberite oznaku nakon što želite umetnuti novo polje. DocType: Website Settings,Tweet will be shared via your user account (if specified),Tweet će se dijeliti putem vašeg korisničkog računa (ako je određeno) -,Document Share Report,Dokument Podijeli Prijavi +,Document Share Report,Dokument podijele prijava DocType: User,Last Login,Zadnja prijava apps/frappe/frappe/core/doctype/doctype/doctype.py +411,Fieldname is required in row {0},"Podataka, Naziv Polja je potrebno u redu {0}" apps/frappe/frappe/print/page/print_format_builder/print_format_builder_column_selector.html +4,Column,Kolona @@ -408,7 +408,7 @@ apps/frappe/frappe/public/js/frappe/ui/editor.html +12,Number list,Popis brojeva apps/frappe/frappe/config/setup.py +84,Log of error during requests.,Prijava pogreške prilikom zahtjeva. DocType: DocShare,Everyone,Svako DocType: Workflow State,backward,Natrag -apps/frappe/frappe/core/doctype/doctype/doctype.py +475,"{0}: Only one rule allowed with the same Role, Level and {1}","{0}: Samo jedno pravilo dopušten uz istu ulogu, razine i {1}" +apps/frappe/frappe/core/doctype/doctype/doctype.py +475,"{0}: Only one rule allowed with the same Role, Level and {1}","{0}: Samo je jedno pravilo dopušteno za istu ulogu, razinu i {1}" DocType: Workflow State,share,udio apps/frappe/frappe/config/setup.py +102,Set numbering series for transactions.,Postavi brojni slijed za transakcije. apps/frappe/frappe/desk/like.py +38,You cannot like something that you created,Ne možete se sviđa nešto što ste stvorili @@ -610,7 +610,7 @@ DocType: Custom Field,Field Type,Vrsta polja apps/frappe/frappe/utils/data.py +429,only.,samo. apps/frappe/frappe/public/js/frappe/views/reports/reportview.js +455,Descending,Silazni apps/frappe/frappe/email/receive.py +57,Invalid Mail Server. Please rectify and try again.,Nevažeći mail server. Ispravi i pokušaj ponovno. -DocType: Dropbox Backup,Dropbox Backup,Dropbox Backup +DocType: Dropbox Backup,Dropbox Backup,Dropbox backup DocType: DocField,"For Links, enter the DocType as range. For Select, enter list of Options, each on a new line.","Za Linkovi unesite DOCTYPE kao raspona. Za Odaberi unesite popisu opcija, svaki na novoj liniji." DocType: Workflow State,film,film @@ -704,7 +704,7 @@ DocType: DocPerm,If user is the owner,Ako korisnik je vlasnik ,Activity,Aktivnost DocType: Note,"Help: To link to another record in the system, use ""#Form/Note/[Note Name]"" as the Link URL. (don't use ""http://"")","Pomoć: Za povezivanje na drugi zapis u sustavu, koristite "# Forma / Napomena / [Napomena ime]" kao URL veze. (Ne koristite "http://")" DocType: Communication,Delayed,Odgođeno -apps/frappe/frappe/config/setup.py +116,List of backups available for download,Popis kopija dostupna za preuzimanje +apps/frappe/frappe/config/setup.py +116,List of backups available for download,Popis kopija dostupnih za preuzimanje apps/frappe/frappe/templates/pages/login.html +61,Sign up,Prijavite se apps/frappe/frappe/config/setup.py +222,Add fields to forms.,Dodaj polja obrascima. DocType: File,rgt,RGT @@ -832,7 +832,7 @@ DocType: Dropbox Backup,Dropbox Access Secret,Dropbox tajni pristup apps/frappe/frappe/core/doctype/doctype/doctype.py +351,Fold must come before a Section Break,Preklopite moraju doći pred Odjeljak Break apps/frappe/frappe/core/doctype/user/user.py +430,Not allowed to reset the password of {0},Nije dopušteno za resetiranje lozinke od {0} DocType: Workflow State,hand-down,rukom prema dolje -apps/frappe/frappe/core/doctype/doctype/doctype.py +494,{0}: Cannot set Cancel without Submit,{0} : Ne mogu postaviti Odustani bez Podnijeti +apps/frappe/frappe/core/doctype/doctype/doctype.py +494,{0}: Cannot set Cancel without Submit,{0} : Ne može se postaviti Odustani bez Potvrdi DocType: Website Theme,Theme,Tema apps/frappe/frappe/desk/page/setup_wizard/setup_wizard.js +146,There were errors.,Bilo je grešaka . DocType: DocType,Is Submittable,Je Submittable @@ -862,7 +862,7 @@ apps/frappe/frappe/desk/page/setup_wizard/setup_wizard.js +115,Sit tight while y apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +7,Roles can be set for users from their User page.,Uloge se mogu postaviti za korisnike iz svoje korisničke stranice . DocType: DocField,Mandatory,Obavezno apps/frappe/frappe/core/doctype/doctype/doctype.py +458,{0}: No basic permissions set,{0}: Nisu postavljene osnovne ovlasti -apps/frappe/frappe/utils/backups.py +158,Download link for your backup will be emailed on the following email address: {0},Preuzmite link za Vašu backup će biti poslana na e-mail adresu: {0} +apps/frappe/frappe/utils/backups.py +158,Download link for your backup will be emailed on the following email address: {0},Poveznica za Vašu sigurnosnu kopiju će biti poslana na email adresu: {0} apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +14,"Meaning of Submit, Cancel, Amend","Značenje od Podnijeti, Odustati, Izmijeniti" apps/frappe/frappe/desk/doctype/todo/todo_list.js +7,To Do,Podsjetnik apps/frappe/frappe/public/js/frappe/ui/editor.html +25,Paragraph,Paragraf @@ -1069,7 +1069,7 @@ apps/frappe/frappe/public/js/frappe/ui/toolbar/offcanvas_left_sidebar.html +31,R apps/frappe/frappe/email/doctype/email_account/email_account_list.js +14,Default Sending,Zadana Slanje DocType: Workflow State,volume-off,volumen-off apps/frappe/frappe/public/js/frappe/form/footer/timeline_item.html +107,Liked by {0},Svidjelo mi se {0} -,Download Backups,Preuzmite Sigurnosne kopije +,Download Backups,Preuzmi sigurnosne kopije apps/frappe/frappe/core/doctype/file/test_file.py +43,Home/Test Folder 1,Početna / Ispitni mapa 1 apps/frappe/frappe/core/page/data_import_tool/data_import_main.html +47,"Do not update, but insert new records.","Nemoj ažurirati, ali ubacite nove rekorde." apps/frappe/frappe/public/js/frappe/form/footer/assign_to.js +160,Assign to me,Dodijeli mi @@ -1476,7 +1476,7 @@ DocType: Workflow Transition,Action,Akcija apps/frappe/frappe/core/page/data_import_tool/exporter.py +231,Info:,Info: DocType: Custom Field,Permission Level,Razina ovlasti DocType: User,Send Notifications for Transactions I Follow,Pošalji obavijesti o transakcijama | Prati -apps/frappe/frappe/core/doctype/doctype/doctype.py +497,"{0}: Cannot set Submit, Cancel, Amend without Write","{0} : Ne mogu postaviti Podnijeti , Odustani , Izmijeniti bez zapisivanja" +apps/frappe/frappe/core/doctype/doctype/doctype.py +497,"{0}: Cannot set Submit, Cancel, Amend without Write","{0} : Ne može se postaviti Potvrdi, Odustani, Izmijeni bez zapisivanja" apps/frappe/frappe/public/js/frappe/form/footer/attachments.js +83,Are you sure you want to delete the attachment?,Jeste li sigurni da želite izbrisati privitak? apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +8,Setup > User,Postavke > Korisnik apps/frappe/frappe/model/base_document.py +483,"{0}: '{1}' will get truncated, as max characters allowed is {2}","{0}: '{1}' bi bio skraćen, kao max likovi dopušteno je {2}" @@ -1701,7 +1701,7 @@ apps/frappe/frappe/core/doctype/docshare/docshare.py +49,{0} shared this documen apps/frappe/frappe/desk/page/activity/activity_row.html +20,Commented on {0}: {1},Komentirano {0}: {1} apps/frappe/frappe/core/page/user_permissions/user_permissions.js +248,These restrictions will apply for Document Types where 'Apply User Permissions' is checked for the permission rule and a field with this value is present.,"Ova ograničenja primjenjivat će se za vrste dokumenata, gdje 'Primijeni korisnik dozvole' se provjerava za vladavinu dozvole i polje s ovim vrijednosti prisutan." DocType: Email Alert,Send alert if this field's value changes,Pošalji upozorenje ako se vrijednost mijenja ovom području je -apps/frappe/frappe/print/page/print_format_builder/print_format_builder.js +102,Select a DocType to make a new format,Odaberite vrstu dokumenta kako bi novi format +apps/frappe/frappe/print/page/print_format_builder/print_format_builder.js +102,Select a DocType to make a new format,Odaberite Doctype za kreiranje novog formata apps/frappe/frappe/public/js/frappe/misc/pretty_date.js +40,just now,upravo sad DocType: Module Def,Module Def,Definicija modula apps/frappe/frappe/public/js/frappe/form/grid_form.html +7,Done,Pospremljen @@ -1749,7 +1749,7 @@ DocType: Communication,Info,Info DocType: Communication,Email,E-mail apps/frappe/frappe/templates/includes/contact.js +30,Thank you for your message,Hvala vam za vašu poruku apps/frappe/frappe/templates/pages/login.py +54,Invalid Login Token,Pogrešna Prijava token -apps/frappe/frappe/public/js/frappe/misc/pretty_date.js +43,1 hour ago,prije 1 sat +apps/frappe/frappe/public/js/frappe/misc/pretty_date.js +43,1 hour ago,Prije 1 sat DocType: Website Settings,Home Page,Početna stranica DocType: Error Snapshot,Parent Error Snapshot,Roditelj Greška Snimak DocType: Email Alert,Filters,Filteri @@ -1821,7 +1821,7 @@ DocType: User,Enabled,Omogućeno DocType: Blog Category,Category Name,Naziv kategorije DocType: Print Settings,PDF Settings,PDF postavke apps/frappe/frappe/core/page/data_import_tool/data_import_tool.py +16,Column Name,Naziv Stupac -apps/frappe/frappe/print/doctype/print_format/print_format.js +18,Make Default,Make Default +apps/frappe/frappe/print/doctype/print_format/print_format.js +18,Make Default,Napravi zadani apps/frappe/frappe/core/doctype/doctype/doctype.py +339,Fieldtype {0} for {1} cannot be indexed,Fieldtype {0} od {1} ne može biti indeksirana DocType: Communication,Email Account,E-mail računa DocType: Workflow State,Download,Preuzimanje diff --git a/frappe/translations/ko.csv b/frappe/translations/ko.csv index c8b144f039..96a6caa40c 100644 --- a/frappe/translations/ko.csv +++ b/frappe/translations/ko.csv @@ -36,7 +36,7 @@ apps/frappe/frappe/model/base_document.py +478,"{0}, Row {1}",{0} 행 {1} apps/frappe/frappe/model/document.py +730,Beginning with,로 시작 apps/frappe/frappe/core/page/data_import_tool/exporter.py +51,Data Import Template,데이터 가져 오기 템플릿 apps/frappe/frappe/public/js/frappe/model/model.js +31,Parent,부모의 -DocType: About Us Settings,"""Team Members"" or ""Management""","""팀 회원""또는 ""관리""" +DocType: About Us Settings,"""Team Members"" or ""Management""","""Team Members""또는 ""Management""" apps/frappe/frappe/core/doctype/doctype/doctype.py +302,Default for 'Check' type of field must be either '0' or '1',필드의 '확인'유형의 기본 중 하나를 '0'또는 '1'이어야합니다 apps/frappe/frappe/public/js/frappe/misc/pretty_date.js +45,Yesterday,Yester일 apps/frappe/frappe/public/js/frappe/views/test_runner.js +10,Test Runner,테스트 러너 @@ -1168,7 +1168,7 @@ DocType: Web Form,Success Message,성공 메시지 DocType: DocType,User Cannot Search,사용자는 검색 할 수 없습니다 DocType: DocPerm,Apply this rule if the User is the Owner,사용자가 소유자 인 경우이 규칙 적용 apps/frappe/frappe/desk/page/activity/activity.js +73,Build Report,보고서보기 빌드 -apps/frappe/frappe/model/rename_doc.py +91,"{0} {1} does not exist, select a new target to merge","{0} {1}이 (가) 없습니다, 병합하는 새로운 대상을 선택" +apps/frappe/frappe/model/rename_doc.py +91,"{0} {1} does not exist, select a new target to merge","{0} {1}이 (가) 없습니다, 새로운 대상을 선택해서 병합하세요." apps/frappe/frappe/core/page/user_permissions/user_permissions.py +66,Cannot set permission for DocType: {0} and Name: {1},문서 종류에 대한 사용 권한을 설정할 수 없습니다 : {0}과 이름 : {1} apps/frappe/frappe/public/js/frappe/form/footer/assign_to.js +158,Add to To Do,할일 추가 apps/frappe/frappe/public/js/frappe/list/list_sidebar.html +10,Assigned To Me,나에게 할당 @@ -1185,7 +1185,7 @@ apps/frappe/frappe/email/doctype/email_unsubscribe/email_unsubscribe.py +21,{0} apps/frappe/frappe/public/js/frappe/views/communication.js +69,Communication Medium,통신 매체 DocType: Website Settings,Banner HTML,배너 HTML DocType: Error Snapshot,Pyver,Pyver -apps/frappe/frappe/model/base_document.py +451,"{0} {1} cannot be ""{2}"". It should be one of ""{3}""","{0} {1}이 될 수 없습니다 ""{2}"".그것은 ""{3}""중 하나 여야합니다" +apps/frappe/frappe/model/base_document.py +451,"{0} {1} cannot be ""{2}"". It should be one of ""{3}""","{0} {1} ""{2}""가 될 수 없습니다. ""{3}""중 하나입니다." apps/frappe/frappe/utils/data.py +516,{0} or {1},{0} 또는 {1} apps/frappe/frappe/core/doctype/user/user.py +160,Password Update,암호 업데이트 DocType: Workflow State,trash,쓰레기 @@ -1294,7 +1294,7 @@ DocType: Workflow State,ok-sign,확인 서명 apps/frappe/frappe/public/js/frappe/form/toolbar.js +126,Duplicate,복제 apps/frappe/frappe/public/js/frappe/views/reports/grid_report.js +305,From Date must be before To Date,날짜 누계 이전이어야합니다 apps/frappe/frappe/email/doctype/email_alert/email_alert.py +21,Please specify which value field must be checked,값 필드를 선택해야하는 이유를 적어주세요 -apps/frappe/frappe/core/page/data_import_tool/exporter.py +69,"""Parent"" signifies the parent table in which this row must be added","""부모는""이 행을 추가해야하는 부모 테이블을 의미" +apps/frappe/frappe/core/page/data_import_tool/exporter.py +69,"""Parent"" signifies the parent table in which this row must be added","""상위항목"" 테이블에서 열이 추가되어야 합니다." DocType: Website Theme,Apply Style,스타일 적용 apps/frappe/frappe/public/js/frappe/form/form_sidebar.html +39,Shared With,함께 공유 ,Modules Setup,모듈 설치 @@ -1517,7 +1517,7 @@ apps/frappe/frappe/public/js/frappe/list/listview.js +342,2 days ago,1 일 전 apps/frappe/frappe/config/website.py +64,Categorize blog posts.,블로그 게시물을 분류합니다. DocType: Workflow State,Time,시간 DocType: DocField,Attach,첨부 -apps/frappe/frappe/core/doctype/doctype/doctype.py +386,{{{0}}} is not a valid fieldname pattern. It should be {{field_name}}.,{{{0}}} 유효한 필드 이름 패턴이 아니다. 그것은해야한다 {{FIELD_NAME}}. +apps/frappe/frappe/core/doctype/doctype/doctype.py +386,{{{0}}} is not a valid fieldname pattern. It should be {{field_name}}.,{{{0}}} 유효한 필드명 유형이 아닙니다. {{field_name}} 이어야 합니다. DocType: DocType,Permission Rules,권한 규칙 apps/frappe/frappe/public/js/frappe/form/toolbar.js +119,Links,링크 apps/frappe/frappe/model/base_document.py +369,Value missing for,값을 누락 @@ -1724,7 +1724,7 @@ DocType: DocType,Naming,Naming DocType: Event,Every Year,매년 apps/frappe/frappe/public/js/frappe/list/list_item_main_head.html +23,Select All,모두 선택 apps/frappe/frappe/public/js/frappe/form/linked_with.js +86,Not Linked to any record.,모든 레코드에 연결되어 있지. -apps/frappe/frappe/public/js/frappe/form/workflow.js +32, by Role ,역할에 따라 +apps/frappe/frappe/public/js/frappe/form/workflow.js +32, by Role ,역할별 apps/frappe/frappe/core/doctype/user/user.py +406,Registered but disabled.,등록 만 사용할. apps/frappe/frappe/public/js/frappe/list/doclistview.js +538,Delete permanently?,영구적으로 삭제 하시겠습니까? apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +95,Search in a document type,문서 유형의 검색 @@ -1745,7 +1745,7 @@ apps/frappe/frappe/public/js/frappe/views/pageview.js +110,Sorry! You are not pe DocType: Workflow State,bell,벨 apps/frappe/frappe/public/js/frappe/form/set_sharing.html +39,Share this document with,이 문서를 공유하기 apps/frappe/frappe/desk/page/activity/activity.js +203,Jun,6월 -apps/frappe/frappe/utils/nestedset.py +235,{0} {1} cannot be a leaf node as it has children,이 아이를 가지고 {0} {1} 잎 노드가 될 수 없습니다 +apps/frappe/frappe/utils/nestedset.py +235,{0} {1} cannot be a leaf node as it has children,{0} {1} 은 가지 노드가 될 수 없습니다. 하위 항목을 가지고 있습니다. DocType: Communication,Info,정보 DocType: Communication,Email,이메일 apps/frappe/frappe/templates/includes/contact.js +30,Thank you for your message,메시지를 수신했습니다 diff --git a/frappe/translations/nl.csv b/frappe/translations/nl.csv index bafc498dcc..4eb2725750 100644 --- a/frappe/translations/nl.csv +++ b/frappe/translations/nl.csv @@ -44,7 +44,7 @@ DocType: Email Account,Enable Incoming,Inschakelen Binnenkomend DocType: Workflow State,Danger,Gevaar apps/frappe/frappe/templates/pages/login.html +35,Email Address,E-mailadres DocType: Workflow State,th-large,th-large -DocType: Communication,Unread Notification Sent,Ongelezen Notification Sent +DocType: Communication,Unread Notification Sent,Melding 'Ongelezen' verstuurd apps/frappe/frappe/public/js/frappe/misc/tools.js +8,Export not allowed. You need {0} role to export.,Exporteren niet toegestaan. Je hebt rol {0} nodig om te kunnen exporteren . apps/frappe/frappe/public/js/frappe/ui/filters/edit_filter.html +11,Not Like,Niet zoals apps/frappe/frappe/custom/doctype/customize_form/customize_form.js +154,Set the display label for the field,Stel het display label voor het veld @@ -59,8 +59,8 @@ apps/frappe/frappe/public/js/frappe/form/link_selector.js +21,Select {0},Selecte DocType: Print Settings,Classic,Klassiek apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +49,For ranges,Voor bereiken DocType: Workflow State,indent-right,inspringing-rechts -apps/frappe/frappe/public/js/frappe/ui/upload.html +12,Web Link,Web Link -apps/frappe/frappe/public/js/frappe/misc/pretty_date.js +41,1 minute ago,1 uur geleden +apps/frappe/frappe/public/js/frappe/ui/upload.html +12,Web Link,Link +apps/frappe/frappe/public/js/frappe/misc/pretty_date.js +41,1 minute ago,1 minuut geleden apps/frappe/frappe/core/page/data_import_tool/data_import_main.html +33,"Recommended bulk editing records via import, or understanding the import format.","Aanbevolen bulk bewerken verslagen via import, of het begrijpen van de import-formaat." apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +36,"Apart from System Manager, roles with Set User Permissions right can set permissions for other users for that Document Type.","Afgezien van de System Manager, rollen met Set User Permissions recht kunt toestemmingen voor andere gebruikers voor dat type document." DocType: Company History,Company History,Bedrijf Geschiedenis @@ -144,7 +144,7 @@ DocType: Dropbox Backup,Dropbox Access Key,Dropbox Access Key DocType: Workflow State,headphones,hoofdtelefoon DocType: Bulk Email,Bulk Email records.,Bulk Email records. DocType: Email Account,e.g. replies@yourcomany.com. All replies will come to this inbox.,bijv. antwoord@uwbedrijf.nl. Alle antwoorden zullen op deze inbox binnenkomen. -apps/frappe/frappe/templates/includes/login/login.js +33,Valid email and name required,Geldige e-mail en naam vereist +apps/frappe/frappe/templates/includes/login/login.js +33,Valid email and name required,Geldig e-mailadres en naam vereist DocType: DocType,Hide Heading,Verberg rubriek apps/frappe/frappe/config/core.py +17,Groups of DocTypes,Groepen DocTypes DocType: Workflow State,remove-circle,remove-cirkel @@ -158,7 +158,7 @@ DocType: DocType,Show this field as title,Toon dit gebied als titel apps/frappe/frappe/model/db_schema.py +539,Fieldname {0} cannot have special characters like {1},"Veldnaam {0} kan geen speciale tekens, zoals hebben {1}" apps/frappe/frappe/desk/page/setup_wizard/setup_wizard.js +245,Select Your Language,Selecteer uw taal apps/frappe/frappe/model/document.py +434,Error: Document has been modified after you have opened it,Fout: Document is gewijzigd nadat u het hebt geopend -apps/frappe/frappe/core/doctype/doctype/doctype.py +522,{0}: Cannot set Assign Submit if not Submittable,{0} : Kan geen toewijzen indienen indien niet Submittable +apps/frappe/frappe/core/doctype/doctype/doctype.py +522,{0}: Cannot set Assign Submit if not Submittable,"{0} : Kan niet op ""In te dienen"" gezet worden indien niet indienbaar" DocType: Social Login Keys,Facebook,Facebook apps/frappe/frappe/templates/pages/list.py +46,"Filtered by ""{0}""",Gefilterd op "{0}" DocType: DocType,Administrator,Beheerder @@ -226,7 +226,7 @@ DocType: Blogger,Will be used in url (usually first name).,Wordt gebruikt in url apps/frappe/frappe/client.py +63,Can not edit Read Only fields,Kan Alleen-lezen velden niet bewerken apps/frappe/frappe/print/page/print_format_builder/print_format_builder.js +463,Edit Heading,Bewerken Koptekst DocType: File,File URL,File-URL -apps/frappe/frappe/desk/doctype/event/event.py +68,Upcoming Events for Today,Gebeurtenissen voor vandaag +apps/frappe/frappe/desk/doctype/event/event.py +68,Upcoming Events for Today,Geplande evenementen voor vandaag DocType: Email Alert Recipient,Email By Document Field,E-mail Door Document Field apps/frappe/frappe/email/receive.py +61,Cannot connect: {0},Kan geen verbinding maken: {0} apps/frappe/frappe/utils/nestedset.py +218,Merging is only possible between Group-to-Group or Leaf Node-to-Leaf Node,Samenvoegen is alleen mogelijk tussen de Groepen of tussen Blad Nodes. @@ -268,7 +268,7 @@ DocType: DocField,Link,Link apps/frappe/frappe/utils/file_manager.py +93,No file attached,Geen bestand bijgevoegd DocType: Version,Version,Versie DocType: User,Fill Screen,Scherm vullen -apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +462,"Unable to display this tree report, due to missing data. Most likely, it is being filtered out due to permissions.","Niet in staat om deze boom rapport weer te geven, als gevolg van ontbrekende gegevens. Waarschijnlijk wordt ze uitgefilterd vanwege permissies." +apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +462,"Unable to display this tree report, due to missing data. Most likely, it is being filtered out due to permissions.",Niet in staat om dit boomrapport weer te geven omdat er gegevens ontbreken. Waarschijnlijk wordt ze uitgefilterd vanwege permissies. apps/frappe/frappe/core/doctype/role/role.js +9,Edit Permissions,Bewerken Machtigingen apps/frappe/frappe/public/js/frappe/form/grid.js +271,Edit via Upload,Bewerken via uploaden apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +94,"document type..., e.g. customer","documenttype ..., bijvoorbeeld klant" @@ -411,7 +411,7 @@ DocType: Workflow State,backward,achterwaarts apps/frappe/frappe/core/doctype/doctype/doctype.py +475,"{0}: Only one rule allowed with the same Role, Level and {1}","{0}: Slechts één regel toegestaan met dezelfde rol, niveau en {1}" DocType: Workflow State,share,aandeel apps/frappe/frappe/config/setup.py +102,Set numbering series for transactions.,Instellen nummerreeksen voor transacties. -apps/frappe/frappe/desk/like.py +38,You cannot like something that you created,Je kunt niet als iets dat je gemaakt +apps/frappe/frappe/desk/like.py +38,You cannot like something that you created,U kan niets 'liken' dat u zelf gemaakt hebt. DocType: User,Last IP,Laatste IP- DocType: DocPerm,Filter records based on User Permissions defined for a user,Records filteren op basis van Gebruikersmachtigingen gedefinieerd voor een gebruiker apps/frappe/frappe/public/js/frappe/ui/editor.html +46,Insert picture (or just drag & drop),Plaats foto (of sleep & gewoon drop) @@ -426,7 +426,7 @@ apps/frappe/frappe/public/js/frappe/form/form_sidebar.html +24,Attachments,Toebe apps/frappe/frappe/website/doctype/web_form/web_form.py +74,You don't have the permissions to access this document,U hebt niet de rechten om toegang te krijgen tot dit document DocType: Email Alert,Value Changed,Waarde Veranderd apps/frappe/frappe/model/base_document.py +287,Duplicate name {0} {1},Dubbele naam {0} {1} -DocType: Web Form Field,Web Form Field,Web Form Field +DocType: Web Form Field,Web Form Field,Webformulier invulveld apps/frappe/frappe/custom/doctype/customize_form/customize_form.js +197,Hide field in Report Builder,Veld verbergen in Report Builder apps/frappe/frappe/templates/generators/blog_post.html +25,This post is filed under {0},Dit bericht is gearchiveerd onder {0} apps/frappe/frappe/print/page/print_format_builder/print_format_builder_field.html +14,Edit HTML,Bewerken HTML @@ -466,7 +466,7 @@ apps/frappe/frappe/core/doctype/user/user.py +425,Registration Details Emailed., DocType: Workflow State,Stop,stoppen DocType: Top Bar Item,Link to the page you want to open. Leave blank if you want to make it a group parent.,Link naar de pagina die u wilt openen. Laat leeg als u wilt dat een groep ouders te maken. DocType: DocType,Is Single,Is Single -apps/frappe/frappe/email/bulk.py +231,{0} has left the conversation in {1} {2},{0} is het gesprek linker {1} {2} +apps/frappe/frappe/email/bulk.py +231,{0} has left the conversation in {1} {2},{0} heeft gesprek verlaten in {1} {2} DocType: Blogger,User ID of a Blogger,Gebruikers-ID van een Blogger apps/frappe/frappe/core/doctype/user/user.py +201,There should remain at least one System Manager,Er moet ten minste één System Manager blijven DocType: Workflow State,circle-arrow-right,cirkel-pijl-rechts @@ -587,12 +587,12 @@ apps/frappe/frappe/public/js/frappe/list/list_sidebar_stat.html +5,No records ta DocType: User,Send Password Update Notification,Stuur wachtwoord-update apps/frappe/frappe/public/js/legacy/form.js +62,"Allowing DocType, DocType. Be careful!","Het toestaan DocType , DocType . Wees voorzichtig !" apps/frappe/frappe/config/core.py +32,"Customized Formats for Printing, Email","Aangepaste Formaten voor afdrukken, e-mail" -apps/frappe/frappe/public/js/frappe/desk.js +308,Updated To New Version,Bijgewerkt Aan Nieuwe versie +apps/frappe/frappe/public/js/frappe/desk.js +308,Updated To New Version,Geupdate naar nieuwe versie DocType: DocField,Depends On,Hangt af van DocType: DocPerm,Additional Permissions,Additionele Machtigingen apps/frappe/frappe/core/page/data_import_tool/data_import_tool.py +13,Start entering data below this line,Beginnen met het invoeren onder deze lijn DocType: Workflow State,retweet,retweet -apps/frappe/frappe/core/page/data_import_tool/data_import_main.html +40,Update the template and save in CSV (Comma Separate Values) format before attaching.,Actualiseren van de template en opslaan in CSV (Comma Gescheiden Waarden) formaat voor het vastmaken. +apps/frappe/frappe/core/page/data_import_tool/data_import_main.html +40,Update the template and save in CSV (Comma Separate Values) format before attaching.,Werk de template bij en sla op CSV (Comma Gescheiden Waarden) formaat om als bijlage bij te voegen. apps/frappe/frappe/custom/doctype/customize_form/customize_form.js +163,Specify the value of the field,Geef de waarde van het veld DocType: Report,Disabled,Uitgezet apps/frappe/frappe/desk/page/activity/activity.js +203,May,Mei @@ -694,7 +694,7 @@ DocType: Website Settings,Hide Footer Signup,Verberg Footer Inschrijven apps/frappe/frappe/core/doctype/report/report.js +16,Write a Python file in the same folder where this is saved and return column and result.,Schrijf een Python bestand in dezelfde map waarin deze is opgeslagen en geef kolom en resultaat. DocType: DocType,Sort Field,Sorteren Veld apps/frappe/frappe/public/js/frappe/ui/filters/filters.js +355,Edit Filter,Filter bewerken -apps/frappe/frappe/templates/pages/404.html +12,"We are very sorry for this, but the page you are looking for is missing (this could be because of a typo in the address) or moved.","We zijn erg jammer voor dit, maar de pagina die u zoekt ontbreekt (dit kan worden als gevolg van een typefout in het adres) of verplaatst." +apps/frappe/frappe/templates/pages/404.html +12,"We are very sorry for this, but the page you are looking for is missing (this could be because of a typo in the address) or moved.","We zijn erg jammer voor dit, maar de pagina die u zoekt ontbreekt (misschien als gevolg van een typefout in het adres) of verplaatst." apps/frappe/frappe/core/doctype/doctype/doctype.py +265,Field {0} of type {1} cannot be mandatory,Veld {0} van type {1} kan niet verplicht zijn DocType: System Settings,"eg. If Apply User Permissions is checked for Report DocType but no User Permissions are defined for Report for a User, then all Reports are shown to that User","bijv. Als Breng Gebruikersmachtigingen wordt gecontroleerd rapport DocType maar geen gebruiker machtigingen worden gedefinieerd voor Rapport voor een gebruiker, dan worden alle rapporten worden aangetoond dat de Gebruiker" DocType: System Settings,Session Expiry Mobile,Session Vervaldatum Mobile @@ -753,13 +753,13 @@ DocType: Async Task,Async Task,Async Task DocType: Workflow State,picture,afbeelding apps/frappe/frappe/templates/pages/complete_signup.html +22,Complete,Compleet DocType: Print Format,Custom HTML Help,Aangepaste HTML Help -apps/frappe/frappe/core/page/user_permissions/user_permissions.js +306,Add A New Restriction,Voeg een nieuwe beperking +apps/frappe/frappe/core/page/user_permissions/user_permissions.js +306,Add A New Restriction,Voeg een nieuwe beperking toe DocType: Workflow Transition,Next State,Volgend Stadium apps/frappe/frappe/public/js/frappe/ui/editor.html +56,Align Left (Ctrl/Cmd+L),Links uitlijnen (Ctrl / Cmd + L) DocType: User,Block Modules,Block Modules apps/frappe/frappe/model/db_schema.py +137,Reverting length to {0} for '{1}' in '{2}'; Setting the length as {3} will cause truncation of data.,Terugdraaien lengte {0} voor '{1}' in '{2}'; Het instellen van de lengte als {3} zal afkappen van gegevens veroorzaken. DocType: Print Format,Custom CSS,Custom CSS -apps/frappe/frappe/public/js/frappe/form/footer/timeline.html +4,Add a comment,Voeg een reactie +apps/frappe/frappe/public/js/frappe/form/footer/timeline.html +4,Add a comment,Voeg een reactie toe apps/frappe/frappe/model/rename_doc.py +350,Ignored: {0} to {1},Genegeerd: {0} tot {1} apps/frappe/frappe/config/setup.py +79,Log of error on automated events (scheduler).,Log van fout op geautomatiseerde evenementen ( scheduler ) . apps/frappe/frappe/utils/csvutils.py +74,Not a valid Comma Separated Value (CSV File),Geen geldige waarde ( CSV-file ) @@ -767,7 +767,7 @@ DocType: Email Account,Default Incoming,Standaard Inkomende DocType: Workflow State,repeat,herhalen DocType: Website Settings,Banner,Banner apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +88,Help on Search,Hulp bij zoeken -DocType: User,Uncheck modules to hide from user's desktop,Haal het vinkje weg modules te verbergen van desktop gebruiker +DocType: User,Uncheck modules to hide from user's desktop,Vink modules af om ze te verbergen van het bureaublad DocType: DocType,Hide Copy,Verberg Copy apps/frappe/frappe/core/doctype/user/user.js +162,Clear all roles,Wis alle rollen apps/frappe/frappe/model/base_document.py +332,{0} must be unique,{0} moet uniek zijn @@ -816,7 +816,7 @@ apps/frappe/frappe/core/doctype/doctype/doctype.py +261,Fieldname {0} appears mu DocType: Bulk Email,Expired,Verlopen DocType: DocType,System,Systeem apps/frappe/frappe/templates/pages/login.html +63,Have an account? Login,Een account hebben? Aanmelden -apps/frappe/frappe/public/js/legacy/print_format.js +144,Unknown Print Format: {0},Onbekend Print Format: {0} +apps/frappe/frappe/public/js/legacy/print_format.js +144,Unknown Print Format: {0},Onbekend afdrukformaat: {0} DocType: Workflow State,arrow-down,arrow-down apps/frappe/frappe/public/js/frappe/ui/tree.js +122,Collapse,ineenstorting apps/frappe/frappe/model/delete_doc.py +133,User not allowed to delete {0}: {1},Gebruiker niet toegestaan om {0} te verwijderen: {1} @@ -995,7 +995,7 @@ DocType: Print Settings,With Letterhead,Met briefhoofd apps/frappe/frappe/email/smtp.py +177,Invalid Outgoing Mail Server or Port,Ongeldige uitgaande Server of Poort DocType: DocPerm,Write,Schrijven apps/frappe/frappe/core/doctype/report/report.py +29,Only Administrator allowed to create Query / Script Reports,Alleen Beheerder toegestaan om Query / Script Rapporten maken -apps/frappe/frappe/public/js/frappe/form/save.js +13,Updating,Updaten +apps/frappe/frappe/public/js/frappe/form/save.js +13,Updating,Bijwerken DocType: File,Preview,Voorbeeld DocType: Customize Form,Use this fieldname to generate title,Gebruik deze veldnaam om de titel te genereren apps/frappe/frappe/public/js/frappe/views/communication.js +80,Select Attachments,Selecteer Bijlagen @@ -1023,13 +1023,13 @@ DocType: Workflow Document State,Update Field,Veld bijwerken apps/frappe/frappe/desk/page/applications/applications.js +50,Regional Extensions,Regionale Extensions apps/frappe/frappe/email/doctype/email_account/email_account.py +348,Leave this conversation,Laat dit gesprek apps/frappe/frappe/model/base_document.py +406,Options not set for link field {0},Opties niet ingesteld voor link veld {0} -apps/frappe/frappe/custom/doctype/customize_form/customize_form.py +151,You cannot unset 'Read Only' for field {0},Je kan niet uitgeschakeld 'Read Only' voor in het veld {0} +apps/frappe/frappe/custom/doctype/customize_form/customize_form.py +151,You cannot unset 'Read Only' for field {0},Je kan 'Alleen lezen' niet uitschakelen voor het veld {0} apps/frappe/frappe/desk/page/setup_wizard/setup_wizard_page.html +18,Complete Setup,Voltooien Setup DocType: Workflow State,asterisk,sterretje apps/frappe/frappe/core/page/data_import_tool/exporter.py +61,Please do not change the template headings.,Gelieve niet de sjabloon rubrieken veranderen. DocType: Communication,Linked,Linked apps/frappe/frappe/public/js/frappe/form/save.js +84,Enter the name of the new {0},Geef de naam van de nieuwe {0} -apps/frappe/frappe/config/desk.py +39,Activity log of all users.,Activiteit logboek van alle gebruikers. +apps/frappe/frappe/config/desk.py +39,Activity log of all users.,Activiteitenlogboek van alle gebruikers. DocType: Workflow State,shopping-cart,shopping-cart DocType: Social Login Keys,Google,Google DocType: Workflow State,Inverse,Omgekeerde @@ -1171,7 +1171,7 @@ apps/frappe/frappe/desk/page/activity/activity.js +73,Build Report,Maak Rapport apps/frappe/frappe/model/rename_doc.py +91,"{0} {1} does not exist, select a new target to merge","{0} {1} bestaat niet, kies een nieuw doel om samen te voegen" apps/frappe/frappe/core/page/user_permissions/user_permissions.py +66,Cannot set permission for DocType: {0} and Name: {1},Kan geen toestemming voor DocType : {0} en Naam : {1} apps/frappe/frappe/public/js/frappe/form/footer/assign_to.js +158,Add to To Do,Toevoegen aan To Do -apps/frappe/frappe/public/js/frappe/list/list_sidebar.html +10,Assigned To Me,Assigned To Me +apps/frappe/frappe/public/js/frappe/list/list_sidebar.html +10,Assigned To Me,Aan mij toegewezen apps/frappe/frappe/public/js/frappe/ui/messages.js +178,Verify Password,Bevestig wachtwoord apps/frappe/frappe/core/page/modules_setup/modules_setup.js +55,There were errors,Er zijn fouten opgetreden. apps/frappe/frappe/core/doctype/communication/communication.js +19,Close,Sluiten @@ -1368,7 +1368,7 @@ DocType: Email Account,Signature,Handtekening apps/frappe/frappe/public/js/frappe/form/share.js +112,Share With,Delen met apps/frappe/frappe/core/doctype/user/user.js +130,Loading,Laden apps/frappe/frappe/config/setup.py +199,"Enter keys to enable login via Facebook, Google, GitHub.","Voer sleutels in om toegang in te schakelen via Facebook, Google, GitHub." -apps/frappe/frappe/public/js/frappe/ui/tags.js +21,Add a tag,Voeg een tag +apps/frappe/frappe/public/js/frappe/ui/tags.js +21,Add a tag,Voeg een tag toe apps/frappe/frappe/public/js/frappe/form/control.js +1000,Please attach a file first.,Eerst een bestand toevoegen. apps/frappe/frappe/model/naming.py +156,"There were some errors setting the name, please contact the administrator","Er zijn fouten opgetreden bij het instellen van de naam, neemt u aub contact op met de beheerder" DocType: Website Slideshow Item,Website Slideshow Item,Website Diashow Item @@ -1421,7 +1421,7 @@ DocType: Workflow,"Different ""States"" this document can exist in. Like ""Open" apps/frappe/frappe/utils/verified_command.py +40,This link is invalid or expired. Please make sure you have pasted correctly.,Deze koppeling is ongeldig of verlopen. Zorg ervoor dat u correct hebt geplakt. DocType: Web Page,Slideshow,Diashow DocType: Workflow State,Search,Zoek -DocType: Web Form,Web Form Fields,Web Form Fields +DocType: Web Form,Web Form Fields,Webformulier invulvelden DocType: Website Theme,Top Bar Text Color,Top Bar Tekst Kleur apps/frappe/frappe/core/doctype/file/file.py +327,File '{0}' not found,Bestand '{0}' niet gevonden apps/frappe/frappe/print/page/print_format_builder/print_format_builder.js +370,Remove Section,Verwijder Sectie @@ -1480,7 +1480,7 @@ DocType: User,Send Notifications for Transactions I Follow,Stuur Meldingen voor apps/frappe/frappe/core/doctype/doctype/doctype.py +497,"{0}: Cannot set Submit, Cancel, Amend without Write","{0} : Kan niet Indienen, Annuleren, Wijzigen zonder te Schrijven" apps/frappe/frappe/public/js/frappe/form/footer/attachments.js +83,Are you sure you want to delete the attachment?,Weet u zeker dat u de bijlage wilt verwijderen? apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +8,Setup > User,Instellingen > Gebruiker -apps/frappe/frappe/model/base_document.py +483,"{0}: '{1}' will get truncated, as max characters allowed is {2}","{0}: {1} 'zal afgekapt krijgen, als maximum toegestane tekens is {2}" +apps/frappe/frappe/model/base_document.py +483,"{0}: '{1}' will get truncated, as max characters allowed is {2}","{0}: {1} 'zal afgekort worden, het maximum toegestaan aantal tekens is {2}" apps/frappe/frappe/templates/emails/password_reset.html +6,Thank you,Dankjewel apps/frappe/frappe/public/js/frappe/form/save.js +11,Saving,Opslaan DocType: Print Settings,Print Style Preview,Print Stijl Voorbeeld @@ -1540,7 +1540,7 @@ DocType: DocType,Child Tables are shown as a Grid in other DocTypes.,Onderliggen DocType: Website Settings,"If checked, the Home page will be the default Item Group for the website.","Indien aangevinkt, zal de Home pagina zijn de standaard Item Groep voor de website." DocType: Blog Post,"Description for listing page, in plain text, only a couple of lines. (max 140 characters)","Beschrijving van lijst pagina, in platte tekst, slechts een paar regels. (Max 140 tekens)" apps/frappe/frappe/public/js/frappe/ui/toolbar/offcanvas_left_sidebar.html +29,Forums,Forums -apps/frappe/frappe/core/page/user_permissions/user_permissions.js +302,Add A User Restriction,Een gebruiker toevoegen Restriction +apps/frappe/frappe/core/page/user_permissions/user_permissions.js +302,Add A User Restriction,Een gebruikersrestrictie toevoegen DocType: DocType,Name Case,Naam Case apps/frappe/frappe/public/js/frappe/form/share.js +26,Shared with everyone,Gedeeld met iedereen apps/frappe/frappe/model/base_document.py +365,Data missing in table,Data ontbreekt in tabel @@ -1574,9 +1574,9 @@ DocType: DocField,Allow on Submit,Laat op Submit apps/frappe/frappe/core/page/desktop/desktop.js +60,All Applications,Alle Toepassingen DocType: Error Snapshot,Exception Type,Uitzondering Type apps/frappe/frappe/public/js/frappe/views/reports/reportview.js +425,Pick Columns,Kies Kolommen -DocType: Web Page,Add code as <script>,Voeg code toe als