fix: check if frappe.sys_defaults.time_zone exists
This commit is contained in:
parent
1952920add
commit
02640b791f
7 changed files with 24 additions and 17 deletions
|
|
@ -32,5 +32,11 @@ frappe.ui.form.on("System Settings", {
|
|||
frm.set_value('prepared_report_expiry_period', 7);
|
||||
}
|
||||
}
|
||||
},
|
||||
after_save: function(frm) {
|
||||
if (frappe.boot.time_zone && frappe.boot.time_zone.system_time_zone !== frm.doc.time_zone) {
|
||||
// Clear cache after saving to refresh the values of time_zone
|
||||
frappe.ui.toolbar.clear_cache();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -271,6 +271,12 @@ frappe.ui.form.on('User', {
|
|||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
after_save: function(frm) {
|
||||
if (frappe.boot.time_zone && frappe.boot.time_zone.user_time_zone !== frm.doc.time_zone) {
|
||||
// Clear cache after saving to refresh the values of time_zone
|
||||
frappe.ui.toolbar.clear_cache();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -599,7 +599,6 @@ class User(Document):
|
|||
from frappe.utils import get_time_zone
|
||||
|
||||
if not self.time_zone:
|
||||
frappe.msgprint(_("User Time Zone was not set, defaulting to System Time Zone."), title=_("User Time Zone"))
|
||||
self.time_zone = get_time_zone()
|
||||
|
||||
@frappe.whitelist()
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ frappe.ui.form.ControlDatetime = class ControlDatetime extends frappe.ui.form.Co
|
|||
if (value) {
|
||||
value = frappe.datetime.user_to_str(value, false);
|
||||
|
||||
if (!frappe.datetime.is_timezone_same()) {
|
||||
if (!frappe.datetime.is_system_time_zone()) {
|
||||
value = frappe.datetime.convert_to_system_tz(value, true);
|
||||
}
|
||||
|
||||
|
|
@ -40,9 +40,7 @@ frappe.ui.form.ControlDatetime = class ControlDatetime extends frappe.ui.form.Co
|
|||
format_for_input(value) {
|
||||
if (!value) return "";
|
||||
|
||||
let m = frappe.datetime.is_timezone_same();
|
||||
if (!frappe.datetime.is_timezone_same()) {
|
||||
m = frappe.datetime.convert_to_user_tz(value, true)
|
||||
if (!frappe.datetime.is_system_time_zone()) {
|
||||
value = frappe.datetime.convert_to_user_tz(value, true);
|
||||
}
|
||||
|
||||
|
|
@ -50,7 +48,7 @@ frappe.ui.form.ControlDatetime = class ControlDatetime extends frappe.ui.form.Co
|
|||
}
|
||||
set_description() {
|
||||
const description = this.df.description;
|
||||
const time_zone = frappe.boot.time_zone ? frappe.boot.time_zone.user_time_zone : frappe.sys_defaults.time_zone;
|
||||
const time_zone = this.get_user_time_zone();
|
||||
|
||||
if (!this.df.hide_timezone) {
|
||||
// Always show the timezone when rendering the Datetime field since the datetime value will
|
||||
|
|
@ -64,6 +62,9 @@ frappe.ui.form.ControlDatetime = class ControlDatetime extends frappe.ui.form.Co
|
|||
}
|
||||
super.set_description();
|
||||
}
|
||||
get_user_time_zone() {
|
||||
return frappe.boot.time_zone ? frappe.boot.time_zone.user_time_zone : frappe.sys_defaults.time_zone;
|
||||
}
|
||||
set_datepicker() {
|
||||
super.set_datepicker();
|
||||
if (this.datepicker.opts.timeFormat.indexOf('s') == -1) {
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ frappe.ui.form.ControlTime = class ControlTime extends frappe.ui.form.ControlDat
|
|||
set_description() {
|
||||
const { description } = this.df;
|
||||
const { time_zone } = frappe.sys_defaults;
|
||||
if (!frappe.datetime.is_timezone_same()) {
|
||||
if (!frappe.datetime.is_system_time_zone()) {
|
||||
if (!description) {
|
||||
this.df.description = time_zone;
|
||||
} else if (!description.includes(time_zone)) {
|
||||
|
|
|
|||
|
|
@ -167,12 +167,8 @@ frappe.form.formatters = {
|
|||
},
|
||||
Datetime: function(value) {
|
||||
if(value) {
|
||||
var m = moment(frappe.datetime.convert_to_user_tz(value));
|
||||
if(frappe.boot.sysdefaults.time_zone) {
|
||||
m = m.tz(frappe.boot.sysdefaults.time_zone);
|
||||
}
|
||||
return m.format(frappe.boot.sysdefaults.date_format.toUpperCase()
|
||||
+ ' ' + frappe.boot.sysdefaults.time_format);
|
||||
return moment(frappe.datetime.convert_to_user_tz(value))
|
||||
.format(frappe.boot.sysdefaults.date_format.toUpperCase() + ' ' + frappe.boot.sysdefaults.time_format);
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ $.extend(frappe.datetime, {
|
|||
return format===false ? date_obj : date_obj.format(frappe.defaultDatetimeFormat);
|
||||
},
|
||||
|
||||
is_timezone_same: function() {
|
||||
is_system_time_zone: function() {
|
||||
if (frappe.boot.time_zone && frappe.boot.time_zone.system_time_zone && frappe.boot.time_zone.user_time_zone) {
|
||||
return moment().tz(frappe.boot.time_zone.system_time_zone).utcOffset() === moment().tz(frappe.boot.time_zone.user_time_zone).utcOffset();
|
||||
}
|
||||
|
|
@ -204,10 +204,9 @@ $.extend(frappe.datetime, {
|
|||
* This will make sure that at any point we know which timezone the user if following and not have random timezone
|
||||
* when the timezone of the local machine changes.
|
||||
*/
|
||||
let time_zone = frappe.boot.time_zone.user_time_zone || frappe.boot.time_zone.system_time_zone;
|
||||
if (!time_zone) time_zone = frappe.sys_defaults.time_zone;
|
||||
|
||||
let time_zone = frappe.boot.time_zone ? frappe.boot.time_zone.user_time_zone || frappe.boot.time_zone.system_time_zone : frappe.sys_defaults.time_zone;
|
||||
let date = moment.tz(time_zone);
|
||||
|
||||
return as_obj ? frappe.datetime.moment_to_date_obj(date) : date.format(format);
|
||||
},
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue