Pārlūkot izejas kodu

[fix] [hot] moment-timezones and locale

version-14
Rushabh Mehta pirms 10 gadiem
vecāks
revīzija
cfd128361c
6 mainītis faili ar 26 papildinājumiem un 44 dzēšanām
  1. +3
    -7
      frappe/boot.py
  2. +2
    -11
      frappe/public/js/frappe/misc/pretty_date.js
  3. +7
    -0
      frappe/public/js/lib/moment/moment-timezone-with-data.min.js
  4. +1
    -3
      frappe/sessions.py
  5. +12
    -22
      frappe/utils/data.py
  6. +1
    -1
      frappe/utils/user.py

+ 3
- 7
frappe/boot.py Parādīt failu

@@ -142,14 +142,10 @@ def add_home_page(bootinfo, docs):
docs.append(page) docs.append(page)


def add_timezone_info(bootinfo): def add_timezone_info(bootinfo):
user = bootinfo.user.get("time_zone")
system = bootinfo.sysdefaults.get("time_zone") system = bootinfo.sysdefaults.get("time_zone")
if user and user != system:
import frappe.utils.momentjs
bootinfo.timezone_info = {"zones":{}, "rules":{}, "links":{}}

frappe.utils.momentjs.update(user, bootinfo.timezone_info)
frappe.utils.momentjs.update(system, bootinfo.timezone_info)
import frappe.utils.momentjs
bootinfo.timezone_info = {"zones":{}, "rules":{}, "links":{}}
frappe.utils.momentjs.update(system, bootinfo.timezone_info)


def load_print(bootinfo, doclist): def load_print(bootinfo, doclist):
print_settings = frappe.db.get_singles_dict("Print Settings") print_settings = frappe.db.get_singles_dict("Print Settings")


+ 2
- 11
frappe/public/js/frappe/misc/pretty_date.js Parādīt failu

@@ -1,17 +1,8 @@
function prettyDate(time, mini){ function prettyDate(time, mini){


if(moment) { if(moment) {
if(frappe.boot) {
var user_timezone = frappe.boot.user.time_zone;
var system_timezone = sys_defaults.time_zone;
var zones = (frappe.boot.timezone_info || {}).zones || {};
}
if (frappe.boot && user_timezone && (user_timezone != system_timezone)
&& zones[user_timezone] && zones[system_timezone]) {
var ret = moment.tz(time, sys_defaults.time_zone).tz(frappe.boot.user.time_zone).fromNow(mini);
} else {
var ret = moment(time).fromNow(mini);
}
console.log(time, sys_defaults.time_zone, moment.tz(time, sys_defaults.time_zone).fromNow(mini));
var ret = moment.tz(time, sys_defaults.time_zone).fromNow(mini);
if(mini) { if(mini) {
if(ret === "a few seconds") { if(ret === "a few seconds") {
ret = "now"; ret = "now";


+ 7
- 0
frappe/public/js/lib/moment/moment-timezone-with-data.min.js
Failā izmaiņas netiks attēlotas, jo tās ir par lielu
Parādīt failu


+ 1
- 3
frappe/sessions.py Parādīt failu

@@ -31,7 +31,7 @@ def clear_cache(user=None):
cache = frappe.cache() cache = frappe.cache()


groups = ("bootinfo", "user_recent", "user_roles", "user_doc", "lang", groups = ("bootinfo", "user_recent", "user_roles", "user_doc", "lang",
"time_zone", "defaults", "user_permissions", "roles")
"defaults", "user_permissions", "roles")


if user: if user:
for name in groups: for name in groups:
@@ -226,11 +226,9 @@ class Session:
session_data = data.get("data", {}) session_data = data.get("data", {})


# set user for correct timezone # set user for correct timezone
frappe.session.user = session_data.get("user")
self.time_diff = frappe.utils.time_diff_in_seconds(frappe.utils.now(), self.time_diff = frappe.utils.time_diff_in_seconds(frappe.utils.now(),
session_data.get("last_updated")) session_data.get("last_updated"))
expiry = self.get_expiry_in_seconds(session_data.get("session_expiry")) expiry = self.get_expiry_in_seconds(session_data.get("session_expiry"))
frappe.session.user = None


if self.time_diff > expiry: if self.time_diff > expiry:
self.delete_session() self.delete_session()


+ 12
- 22
frappe/utils/data.py Parādīt failu

@@ -37,7 +37,7 @@ def getdate(string_date=None):


def get_datetime(datetime_str=None): def get_datetime(datetime_str=None):
if not datetime_str: if not datetime_str:
return datetime.datetime.now()
return now_datetime()


if isinstance(datetime_str, (datetime.datetime, datetime.timedelta)): if isinstance(datetime_str, (datetime.datetime, datetime.timedelta)):
return datetime_str return datetime_str
@@ -104,36 +104,26 @@ def time_diff_in_seconds(string_ed_date, string_st_date):
def time_diff_in_hours(string_ed_date, string_st_date): def time_diff_in_hours(string_ed_date, string_st_date):
return round(float(time_diff(string_ed_date, string_st_date).total_seconds()) / 3600, 6) return round(float(time_diff(string_ed_date, string_st_date).total_seconds()) / 3600, 6)


def now_datetime(user=None):
return convert_utc_to_user_timezone(datetime.datetime.utcnow(), user=None)
def now_datetime():
return convert_utc_to_user_timezone(datetime.datetime.utcnow())


def _get_user_time_zone(user=None):
user_time_zone = None
if not user:
user = frappe.session and frappe.session.user
if user:
user_time_zone = frappe.db.get_value("User", user, "time_zone")
def _get_time_zone():
time_zone = (frappe.db.get_single_value("System Settings", "time_zone")
or "Asia/Kolkata")


if not user_time_zone:
user_time_zone = (frappe.db.get_single_value("System Settings", "time_zone")
or "Asia/Kolkata")

return user_time_zone

def get_user_time_zone(user=None):
if not user:
user = frappe.session and frappe.session.user
return time_zone


def get_time_zone():
if frappe.local.flags.in_test: if frappe.local.flags.in_test:
return _get_user_time_zone(user)
return _get_time_zone()


return frappe.cache().hget("time_zone", user, _get_user_time_zone)
return frappe.cache().get_value("time_zone", _get_time_zone)


def convert_utc_to_user_timezone(utc_timestamp, user=None):
def convert_utc_to_user_timezone(utc_timestamp):
from pytz import timezone, UnknownTimeZoneError from pytz import timezone, UnknownTimeZoneError
utcnow = timezone('UTC').localize(utc_timestamp) utcnow = timezone('UTC').localize(utc_timestamp)
try: try:
return utcnow.astimezone(timezone(get_user_time_zone(user)))
return utcnow.astimezone(timezone(get_time_zone()))
except UnknownTimeZoneError: except UnknownTimeZoneError:
return utcnow return utcnow




+ 1
- 1
frappe/utils/user.py Parādīt failu

@@ -185,7 +185,7 @@ class User:
return self.can_read return self.can_read


def load_user(self): def load_user(self):
d = frappe.db.sql("""select email, first_name, last_name, time_zone,
d = frappe.db.sql("""select email, first_name, last_name,
email_signature, user_type, language, background_image, background_style email_signature, user_type, language, background_image, background_style
from tabUser where name = %s""", (self.name,), as_dict=1)[0] from tabUser where name = %s""", (self.name,), as_dict=1)[0]




Notiek ielāde…
Atcelt
Saglabāt