From 5f4baafb5c4c640b7950950cbfcca6a312c1de7b Mon Sep 17 00:00:00 2001 From: Mike Hiretsky Date: Tue, 4 Dec 2012 17:10:06 +0400 Subject: [PATCH] Fix sort timezones --- install/variables/locale.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/install/variables/locale.py b/install/variables/locale.py index 209727f..11924a1 100644 --- a/install/variables/locale.py +++ b/install/variables/locale.py @@ -228,14 +228,17 @@ class VariableOsInstallClockTimezone(LocaleVariable): "Asia/Vladivostok", "Pacific/Guam", "Australia/Melbourne", "Australia/Hobart", "Asia/Magadan", "Asia/Kamchatka", "Pacific/Auckland", "Etc/GMT-13"] + def sortkey(s): + tz = timezone(s) + strinfo = tz.localize(datetime.now()).strftime('%z') + return (int(strinfo[:3]),int("%s%s"%(strinfo[0],strinfo[-2:]))) try: lang = self.Get('os_install_locale_lang').split('_')[1] nativeTZ = map(lambda x:x.encode('utf-8'), country_timezones[lang]) source = nativeTZ + ["---"] + \ sorted(filter(lambda x:not x in nativeTZ,source), - key=lambda x:timezone(x)._utcoffset.total_seconds(), - reverse=True) + key=sortkey) except (KeyError,IndexError) as e: pass return list(self.generateComments(source))