diff --git a/frappe/desk/calendar.py b/frappe/desk/calendar.py index f00f729415..273b2654bf 100644 --- a/frappe/desk/calendar.py +++ b/frappe/desk/calendar.py @@ -25,7 +25,6 @@ def get_event_conditions(doctype, filters=None): @frappe.whitelist() def get_events(doctype, start, end, field_map, filters=None, fields=None): - field_map = frappe._dict(json.loads(field_map)) fields = frappe.parse_json(fields) @@ -36,8 +35,7 @@ def get_events(doctype, start, end, field_map, filters=None, fields=None): "color": d.fieldname }) - if filters: - filters = json.loads(filters or '') + filters = json.loads(filters) if filters else [] if not fields: fields = [field_map.start, field_map.end, field_map.title, 'name'] @@ -52,5 +50,5 @@ def get_events(doctype, start, end, field_map, filters=None, fields=None): [doctype, start_date, '<=', end], [doctype, end_date, '>=', start], ] - + fields = list({field for field in fields if field}) return frappe.get_list(doctype, fields=fields, filters=filters) diff --git a/frappe/public/js/frappe/form/form.js b/frappe/public/js/frappe/form/form.js index 6ddbd089fa..8064f90a98 100644 --- a/frappe/public/js/frappe/form/form.js +++ b/frappe/public/js/frappe/form/form.js @@ -992,7 +992,7 @@ frappe.ui.form.Form = class FrappeForm { } frappe.re_route[frappe.router.get_sub_path()] = `${encodeURIComponent(frappe.router.slug(this.doctype))}/${encodeURIComponent(name)}`; - frappe.set_route('Form', this.doctype, name); + !frappe._from_link && frappe.set_route('Form', this.doctype, name); } // ACTIONS diff --git a/frappe/public/js/frappe/form/layout.js b/frappe/public/js/frappe/form/layout.js index 282655b589..045e5dc1b3 100644 --- a/frappe/public/js/frappe/form/layout.js +++ b/frappe/public/js/frappe/form/layout.js @@ -543,7 +543,7 @@ frappe.ui.form.Layout = class Layout { } else if (expression.substr(0, 5)=='eval:') { try { - out = frappe.utils.eval(expression.substr(5), { doc }); + out = frappe.utils.eval(expression.substr(5), { doc, parent }); if (parent && parent.istable && expression.includes('is_submittable')) { out = true; } diff --git a/frappe/public/js/frappe/views/calendar/calendar.js b/frappe/public/js/frappe/views/calendar/calendar.js index 87f692d125..0ab5e2e7dc 100644 --- a/frappe/public/js/frappe/views/calendar/calendar.js +++ b/frappe/public/js/frappe/views/calendar/calendar.js @@ -109,7 +109,7 @@ frappe.views.CalendarView = class CalendarView extends frappe.views.ListView { frappe.views.Calendar = class Calendar { constructor(options) { $.extend(this, options); - this.field_map = { + this.field_map = this.field_map || { "id": "name", "start": "start", "end": "end", diff --git a/frappe/public/js/frappe/views/communication.js b/frappe/public/js/frappe/views/communication.js index e2aaec553d..26fd8d667d 100755 --- a/frappe/public/js/frappe/views/communication.js +++ b/frappe/public/js/frappe/views/communication.js @@ -145,7 +145,7 @@ frappe.views.CommunicationComposer = class { ); }); - if (email_accounts.length > 1) { + if (email_accounts.length) { fields.unshift({ label: __("From"), fieldtype: "Select", diff --git a/frappe/public/scss/common/css_variables.scss b/frappe/public/scss/common/css_variables.scss index b54607e8b6..48a8a48f5f 100644 --- a/frappe/public/scss/common/css_variables.scss +++ b/frappe/public/scss/common/css_variables.scss @@ -24,7 +24,7 @@ --blue-100: #D3E9FC; --blue-50 : #F0F8FE; - --cyan-900: #006464; + --cyan-900: #006464; --cyan-800: #007272; --cyan-700: #008b8b; --cyan-600: #02c5c5; @@ -179,6 +179,10 @@ --text-on-pink: var(--pink-500); --text-on-cyan: var(--cyan-600); + --disabled-control-bg: var(--gray-50); + --control-bg: var(--gray-100); + --control-bg-on-gray: var(--gray-200); + --awesomplete-hover-bg: var(--control-bg); // Other Colors @@ -208,5 +212,4 @@ --checkbox-right-margin: var(--margin-xs); --checkbox-size: 14px; --checkbox-focus-shadow: 0 0 0 2px var(--gray-300); - } diff --git a/frappe/public/scss/common/datepicker.scss b/frappe/public/scss/common/datepicker.scss index 93bdfcc03d..b21eb58caf 100644 --- a/frappe/public/scss/common/datepicker.scss +++ b/frappe/public/scss/common/datepicker.scss @@ -15,6 +15,10 @@ &--time-current-hours, &--time-current-minutes, &--time-current-seconds { font-family: inherit; + &:after { + color: var(--text-color); + background-color: var(--fg-hover-color); + } } &--day-name { @@ -47,10 +51,13 @@ background: fade(#0089FF, 10%); } + &.-focus- { + background-color: var(--fg-hover-color); + } + &.-selected-.-focus- { background: fade(#0089FF, 90%); } - } &--time, &--buttons { @@ -67,8 +74,20 @@ &--time-row:first-child { margin: 0; } + + &--pointer { + background: var(--fg-color); + border-top-right-radius: 2px; + border: 1px var(--border-color); + border-style: solid solid hidden hidden; + } + + &--button { + color: var(--brand-color); + &:hover { + color: var(--text-color); + background-color: var(--fg-hover-color); + } + } } -.datepicker--button { - color: var(--brand-color); -} diff --git a/frappe/public/scss/common/quill.scss b/frappe/public/scss/common/quill.scss index 12706d6b7f..a7a690543b 100644 --- a/frappe/public/scss/common/quill.scss +++ b/frappe/public/scss/common/quill.scss @@ -35,13 +35,14 @@ .ql-container.ql-snow { border-bottom-left-radius: var(--border-radius); border-bottom-right-radius: var(--border-radius); - overflow: hidden; } .ql-snow { .ql-editor { min-height: 400px; max-height: 600px; + border-bottom-left-radius: var(--border-radius); + border-bottom-right-radius: var(--border-radius); } .ql-stroke { stroke: var(--icon-stroke); diff --git a/frappe/website/path_resolver.py b/frappe/website/path_resolver.py index 5e1a99be91..0ed097416e 100644 --- a/frappe/website/path_resolver.py +++ b/frappe/website/path_resolver.py @@ -37,7 +37,7 @@ class PathResolver(): endpoint = resolve_path(self.path) custom_renderers = self.get_custom_page_renderers() - renderers = custom_renderers + [StaticPage, WebFormPage, ListPage, DocumentPage, TemplatePage, PrintPage, NotFoundPage] + renderers = custom_renderers + [StaticPage, WebFormPage, DocumentPage, TemplatePage, ListPage, PrintPage, NotFoundPage] for renderer in renderers: renderer_instance = renderer(endpoint, 200)