From e737e2ea52308a5c3a6120966880c5378b9ca24a Mon Sep 17 00:00:00 2001 From: Himanshu Date: Fri, 7 May 2021 12:03:58 +0530 Subject: [PATCH 1/3] fix: parse Today default value for date docfield Co-authored-by: Sahil Khan --- frappe/public/js/frappe/form/controls/date.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/frappe/public/js/frappe/form/controls/date.js b/frappe/public/js/frappe/form/controls/date.js index ca214ca0fa..0b3f7b6479 100644 --- a/frappe/public/js/frappe/form/controls/date.js +++ b/frappe/public/js/frappe/form/controls/date.js @@ -13,9 +13,11 @@ frappe.ui.form.ControlDate = frappe.ui.form.ControlData.extend({ this._super(value); if (this.timepicker_only) return; if (!this.datepicker) return; - if(!value) { + if (!value) { this.datepicker.clear(); return; + } else if (value === "Today") { + value = this.get_now_date(); } let should_refresh = this.last_value && this.last_value !== value; From 17928f2d280ae09f8cec197647e606eb583e253e Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Tue, 11 May 2021 15:30:55 +0530 Subject: [PATCH 2/3] fix: Clear web page cache after web template is updated --- .../website/doctype/web_template/web_template.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/frappe/website/doctype/web_template/web_template.py b/frappe/website/doctype/web_template/web_template.py index 3c61807099..2fd5bfa179 100644 --- a/frappe/website/doctype/web_template/web_template.py +++ b/frappe/website/doctype/web_template/web_template.py @@ -9,6 +9,7 @@ from shutil import rmtree import frappe from frappe.model.document import Document +from frappe.website.render import clear_cache from frappe import _ from frappe.modules.export_file import ( write_document_file, @@ -37,6 +38,19 @@ class WebTemplate(Document): if was_standard and not self.standard: self.import_from_files() + def on_update(self): + """Clear cache for all Web Pages in which this template is used""" + routes = frappe.db.get_all( + "Web Page", + filters=[ + ["Web Page Block", "web_template", "=", self.name], + ["Web Page", "published", "=", 1], + ], + pluck="route", + ) + for route in routes: + clear_cache(route) + def on_trash(self): if frappe.conf.developer_mode and self.standard: # delete template html and json files From 095994a86c0fcebc0d72ff2a18460efac7e9a0ff Mon Sep 17 00:00:00 2001 From: casesolved-co-uk Date: Tue, 11 May 2021 10:14:56 +0000 Subject: [PATCH 3/3] fix: connected app auto_refresh credentials and mandatory fields --- .../doctype/connected_app/connected_app.json | 11 +++++++---- .../doctype/connected_app/connected_app.py | 7 +++++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/frappe/integrations/doctype/connected_app/connected_app.json b/frappe/integrations/doctype/connected_app/connected_app.json index e5dbb0472a..b5330f4d4f 100644 --- a/frappe/integrations/doctype/connected_app/connected_app.json +++ b/frappe/integrations/doctype/connected_app/connected_app.json @@ -54,7 +54,8 @@ "fieldname": "client_id", "fieldtype": "Data", "in_list_view": 1, - "label": "Client Id" + "label": "Client Id", + "mandatory_depends_on": "eval:doc.redirect_uri" }, { "fieldname": "redirect_uri", @@ -96,12 +97,14 @@ { "fieldname": "authorization_uri", "fieldtype": "Data", - "label": "Authorization URI" + "label": "Authorization URI", + "mandatory_depends_on": "eval:doc.redirect_uri" }, { "fieldname": "token_uri", "fieldtype": "Data", - "label": "Token URI" + "label": "Token URI", + "mandatory_depends_on": "eval:doc.redirect_uri" }, { "fieldname": "revocation_uri", @@ -136,7 +139,7 @@ "link_fieldname": "connected_app" } ], - "modified": "2020-11-16 16:29:50.277405", + "modified": "2021-05-10 05:03:06.296863", "modified_by": "Administrator", "module": "Integrations", "name": "Connected App", diff --git a/frappe/integrations/doctype/connected_app/connected_app.py b/frappe/integrations/doctype/connected_app/connected_app.py index 95077ece77..449e30f6d0 100644 --- a/frappe/integrations/doctype/connected_app/connected_app.py +++ b/frappe/integrations/doctype/connected_app/connected_app.py @@ -26,20 +26,27 @@ class ConnectedApp(Document): self.redirect_uri = urljoin(base_url, callback_path) def get_oauth2_session(self, user=None, init=False): + """Return an auto-refreshing OAuth2 session which is an extension of a requests.Session()""" token = None token_updater = None + auto_refresh_kwargs = None if not init: user = user or frappe.session.user token_cache = self.get_user_token(user) token = token_cache.get_json() token_updater = token_cache.update_data + auto_refresh_kwargs = {'client_id': self.client_id} + client_secret = self.get_password('client_secret') + if client_secret: + auto_refresh_kwargs['client_secret'] = client_secret return OAuth2Session( client_id=self.client_id, token=token, token_updater=token_updater, auto_refresh_url=self.token_uri, + auto_refresh_kwargs=auto_refresh_kwargs, redirect_uri=self.redirect_uri, scope=self.get_scopes() )