From 87cf164cac34532131449f637b9d176ef04bb433 Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Thu, 20 Apr 2023 17:31:28 +0530 Subject: [PATCH] feat: get anonymous response from webform --- frappe/website/doctype/web_form/web_form.js | 6 ++++++ frappe/website/doctype/web_form/web_form.json | 20 +++++++++++++++++-- frappe/website/doctype/web_form/web_form.py | 7 +++++++ 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/frappe/website/doctype/web_form/web_form.js b/frappe/website/doctype/web_form/web_form.js index 28d33a5266..277330e674 100644 --- a/frappe/website/doctype/web_form/web_form.js +++ b/frappe/website/doctype/web_form/web_form.js @@ -42,6 +42,12 @@ frappe.ui.form.on("Web Form", { render_list_settings_message(frm); }, + anonymous: function (frm) { + if (frm.doc.anonymous) { + frm.set_value("login_required", 0); + } + }, + validate: function (frm) { if (!frm.doc.login_required) { frm.set_value("allow_multiple", 0); diff --git a/frappe/website/doctype/web_form/web_form.json b/frappe/website/doctype/web_form/web_form.json index 21e501481b..96749e460d 100644 --- a/frappe/website/doctype/web_form/web_form.json +++ b/frappe/website/doctype/web_form/web_form.json @@ -9,7 +9,7 @@ "title", "route", "published", - "column_break_1", + "column_break_vdhm", "doc_type", "module", "is_standard", @@ -21,6 +21,7 @@ "allow_multiple", "allow_edit", "allow_delete", + "anonymous", "column_break_2", "apply_document_permissions", "allow_print", @@ -96,10 +97,12 @@ "default": "0", "fieldname": "published", "fieldtype": "Check", + "hidden": 1, "label": "Published" }, { "default": "0", + "depends_on": "eval:!doc.anonymous", "fieldname": "login_required", "fieldtype": "Check", "label": "Login Required" @@ -301,6 +304,7 @@ { "collapsible": 1, "collapsible_depends_on": "show_list", + "depends_on": "eval:!doc.anonymous", "fieldname": "section_break_3", "fieldtype": "Section Break", "label": "List Settings" @@ -308,6 +312,7 @@ { "collapsible": 1, "collapsible_depends_on": "show_sidebar", + "depends_on": "eval:!doc.anonymous", "fieldname": "section_break_4", "fieldtype": "Section Break", "label": "Sidebar Settings" @@ -358,13 +363,24 @@ "fieldname": "meta_image", "fieldtype": "Attach Image", "label": "Meta Image" + }, + { + "fieldname": "column_break_vdhm", + "fieldtype": "Column Break" + }, + { + "default": "0", + "description": "Receive anonymous response", + "fieldname": "anonymous", + "fieldtype": "Check", + "label": "Anonymous" } ], "has_web_view": 1, "icon": "icon-edit", "is_published_field": "published", "links": [], - "modified": "2023-01-02 10:19:15.680960", + "modified": "2023-04-20 17:24:42.657731", "modified_by": "Administrator", "module": "Website", "name": "Web Form", diff --git a/frappe/website/doctype/web_form/web_form.py b/frappe/website/doctype/web_form/web_form.py index ac6276c00b..3e2705bdbe 100644 --- a/frappe/website/doctype/web_form/web_form.py +++ b/frappe/website/doctype/web_form/web_form.py @@ -387,6 +387,10 @@ def accept(web_form, data): web_form = frappe.get_doc("Web Form", web_form) doctype = web_form.doc_type + user = frappe.session.user + + if web_form.anonymous and frappe.session.user != "Guest": + frappe.session.user = "Guest" if data.name and not web_form.allow_edit: frappe.throw(_("You are not allowed to update this Web Form Document")) @@ -468,6 +472,9 @@ def accept(web_form, data): if f: remove_file_by_url(f, doctype=doctype, name=doc.name) + if web_form.anonymous and frappe.session.user == "Guest" and user: + frappe.session.user = user + frappe.flags.web_form_doc = doc return doc