Index: /branches/amp_3_7_2/scripts/buildenv.ks
===================================================================
--- /branches/amp_3_7_2/scripts/buildenv.ks	(revision 2906)
+++ /branches/amp_3_7_2/scripts/buildenv.ks	(working copy)
@@ -1,6 +1,6 @@
 lang en_US.UTF-8
 keyboard us
-timezone US/Eastern
+timezone GMT
 auth --useshadow --enablemd5
 
 repo --name=everything    --baseurl=http://10.3.0.58/everything/
Index: /branches/amp_3_7_2/src/webui/webui/htdocs/new/src/client/app/modules/configuration/tabs/device-detail.controller.js
===================================================================
--- /branches/amp_3_7_2/src/webui/webui/htdocs/new/src/client/app/modules/configuration/tabs/device-detail.controller.js	(revision 2906)
+++ /branches/amp_3_7_2/src/webui/webui/htdocs/new/src/client/app/modules/configuration/tabs/device-detail.controller.js	(working copy)
@@ -1,185 +1,185 @@
 angular.module('cm.config')
-.controller('configDeviceDetailCtrl', [
-    '$scope',
-    '$rootScope',
-    '$state',
-    '$stateParams',
-    '$location',
-    '$uibModal',
-    'configService',
-    function ($scope, $rootScope, $state, $stateParams, $location, $uibModal, configService) {
-        $rootScope.current_name = $stateParams.name;
-        $rootScope.title = $stateParams.name;
-        $scope.current_name = $stateParams.name;
+    .controller('configDeviceDetailCtrl', [
+        '$scope',
+        '$rootScope',
+        '$state',
+        '$stateParams',
+        '$location',
+        '$uibModal',
+        'configService',
+        function ($scope, $rootScope, $state, $stateParams, $location, $uibModal, configService) {
+            $rootScope.current_name = $stateParams.name;
+            $rootScope.title = $stateParams.name;
+            $scope.current_name = $stateParams.name;
 
-        $scope.currentPageIndex = 1;
-        $scope.pageSize = 20;
-        $scope.onPageChange = function (newPage) {
-            $scope.currentPageIndex = newPage;
-        };
+            $scope.currentPageIndex = 1;
+            $scope.pageSize = 20;
+            $scope.onPageChange = function (newPage) {
+                $scope.currentPageIndex = newPage;
+            };
 
-        var detailViewModal = this;
+            var detailViewModal = this;
 
-        getConfig();
+            getConfig();
 
-        function getConfig (name) {
-            configService.getConfigList().then(function (res) {
-                if (res && res.status === 200) {
-                    filterConfigList(res.data, 'backup', name);
-                    $rootScope.configList = res.data;
-                    setTimeout(function () {
-                        for (var i = detailViewModal.deviceConfigList.length - 1; i >= 0; i--) {
-                            detailViewModal.deviceConfigList[i]["tooltipIsOpen"] = false;
-                        }
-                    }, 3000);
-                }
-            });
-        }
+            function getConfig(name) {
+                configService.getConfigList().then(function (res) {
+                    if (res && res.status === 200) {
+                        filterConfigList(res.data, 'backup', name);
+                        $rootScope.configList = res.data;
+                        setTimeout(function () {
+                            for (var i = detailViewModal.deviceConfigList.length - 1; i >= 0; i--) {
+                                detailViewModal.deviceConfigList[i]["tooltipIsOpen"] = false;
+                            }
+                        }, 3000);
+                    }
+                });
+            }
 
-        function filterConfigList(arr, type, name) {
-            var configDeviceKey = window.localStorage.__configDeviceKey__;
-            configDeviceKey = JSON.parse(configDeviceKey);
-            var device = configDeviceKey.name;
+            function filterConfigList(arr, type, name) {
+                var configDeviceKey = window.localStorage.__configDeviceKey__;
+                configDeviceKey = JSON.parse(configDeviceKey);
+                var device = configDeviceKey.name;
 
-            detailViewModal.deviceConfigList = [];
-            arr.forEach(function (item, index) {
-                if (item.file_type === type && item.name.slice(0, item.name.lastIndexOf('-')) === device) {
-                    item.aliasName = item.name.slice(0, item.name.lastIndexOf('.'));
-                    if (item.name == name) {
-                        item["tooltipIsOpen"] = true;
-                    } else {
-                        item["tooltipIsOpen"] = false;
+                detailViewModal.deviceConfigList = [];
+                arr.forEach(function (item, index) {
+                    if (item.file_type === type && item.name.slice(0, item.name.lastIndexOf('-')) === device) {
+                        item.aliasName = item.name.slice(0, item.name.lastIndexOf('.'));
+                        if (item.name == name) {
+                            item["tooltipIsOpen"] = true;
+                        } else {
+                            item["tooltipIsOpen"] = false;
+                        }
+                        detailViewModal.deviceConfigList.push(item);
                     }
-                    detailViewModal.deviceConfigList.push(item);
-                }
-            }, this);
-        }
+                }, this);
+            }
 
-        detailViewModal.getConfig = function (config) {
-            configService.getConfigFile(config).then(function (res) {
-                if (res && res.status === 200) {
-                    if (res.data[0]) {
-                        console.log(window.__configDetail__);
-                        $rootScope.__configDetail__ = res.data[1];
-                        var modalInstance = $uibModal.open({
-                            templateUrl: 'app/modules/configuration/modal/config.detail.html',
-                            controller: 'detailCtrl',
-                            controllerAs: 'detail',
-                            backdrop: false,
-                            resolve: {
+            detailViewModal.getConfig = function (config) {
+                configService.getConfigFile(config).then(function (res) {
+                    if (res && res.status === 200) {
+                        if (res.data[0]) {
+                            console.log(window.__configDetail__);
+                            $rootScope.__configDetail__ = res.data[1];
+                            var modalInstance = $uibModal.open({
+                                templateUrl: 'app/modules/configuration/modal/config.detail.html',
+                                controller: 'detailCtrl',
+                                controllerAs: 'detail',
+                                backdrop: false,
+                                resolve: {
 
-                            }
-                        });
-                    } else {
-                        console.log('Get config file failed');
+                                }
+                            });
+                        } else {
+                            console.log('Get config file failed');
+                        }
                     }
-                }
-            })
-        }
+                })
+            }
 
 
-        detailViewModal.backup = function () {
-            var modalInstance = $uibModal.open({
-                templateUrl: 'app/modules/configuration/modal/config.backup.html',
-                controller: 'backupCtrl',
-                controllerAs: 'backup',
-                resolve: {
+            detailViewModal.backup = function () {
+                var modalInstance = $uibModal.open({
+                    templateUrl: 'app/modules/configuration/modal/config.backup.html',
+                    controller: 'configBackupCtrl',
+                    controllerAs: 'configBackup',
+                    resolve: {
 
-                }
-            });
-            modalInstance.result.then(function (selectedItem) {
-                if (selectedItem) {
-                    $rootScope.$broadcast("task_notification");
-                }
-            });
-        }
+                    }
+                });
+                modalInstance.result.then(function (selectedItem) {
+                    if (selectedItem) {
+                        $rootScope.$broadcast("task_notification");
+                    }
+                });
+            }
 
 
-        detailViewModal.clone = function (config) {
-            var data = {
-                name: config.name,
-                type: 'backup',
-                device_type: config.device_type
-            }
-            var modalInstance = $uibModal.open({
-                templateUrl: 'app/modules/configuration/modal/config.clone.html',
-                controller: 'cloneCtrl',
-                controllerAs: 'clone',
-                resolve: {
-                    modalData: true
+            detailViewModal.clone = function (config) {
+                var data = {
+                    name: config.name,
+                    type: 'backup',
+                    device_type: config.device_type
                 }
-            });
-            modalInstance.result.then(function (selectedItem) {
-                if (selectedItem) {
-                    getConfig(config.name);
-                    $rootScope.$broadcast("task_notification");
-                }
-            });
+                var modalInstance = $uibModal.open({
+                    templateUrl: 'app/modules/configuration/modal/config.clone.html',
+                    controller: 'cloneCtrl',
+                    controllerAs: 'clone',
+                    resolve: {
+                        modalData: true
+                    }
+                });
+                modalInstance.result.then(function (selectedItem) {
+                    if (selectedItem) {
+                        getConfig(config.name);
+                        $rootScope.$broadcast("task_notification");
+                    }
+                });
 
-            $rootScope.__cloneKey__ = data;
-        }
-
-        detailViewModal.delete = function (config) {
-            var data = {
-                name: config.name,
-                type: 'backup'
+                $rootScope.__cloneKey__ = data;
             }
 
-            var modalInstance = $uibModal.open({
-                templateUrl: 'app/modules/configuration/modal/config.delete.html',
-                controller: 'deleteCtrl',
-                controllerAs: 'delete',
-                resolve: {
-                    selectItem: config
+            detailViewModal.delete = function (config) {
+                var data = {
+                    name: config.name,
+                    type: 'backup'
                 }
-            });
 
-            modalInstance.result.then(function (selectedItem) {
-                if (selectedItem) {
-                    getConfig();
-                }
-            });
+                var modalInstance = $uibModal.open({
+                    templateUrl: 'app/modules/configuration/modal/config.delete.html',
+                    controller: 'deleteCtrl',
+                    controllerAs: 'delete',
+                    resolve: {
+                        selectItem: config
+                    }
+                });
 
-            $rootScope.__deleteKey__ = data;
-        }
+                modalInstance.result.then(function (selectedItem) {
+                    if (selectedItem) {
+                        getConfig();
+                    }
+                });
 
-        detailViewModal.recover = function (config) {
-            var data = {
-                name: config.name,
+                $rootScope.__deleteKey__ = data;
             }
 
-            var modalInstance = $uibModal.open({
-                templateUrl: 'app/modules/configuration/modal/config.recover.html',
-                controller: 'recoverCtrl',
-                controllerAs: 'recover',
-                resolve: {
-
+            detailViewModal.recover = function (config) {
+                var data = {
+                    name: config.name,
                 }
-            });
-            modalInstance.result.then(function (selectedItem) {
-                if (selectedItem) {
-                    getConfig(config.name);
-                    $rootScope.$broadcast("task_notification");
-                }
-            });
 
-            $rootScope.__recoverKey__ = data;
-        }
+                var modalInstance = $uibModal.open({
+                    templateUrl: 'app/modules/configuration/modal/config.recover.html',
+                    controller: 'recoverCtrl',
+                    controllerAs: 'recover',
+                    resolve: {
 
-        $scope.$on('syncConfigStatus', function (event, args) {
-            getConfig();
-        });
+                    }
+                });
+                modalInstance.result.then(function (selectedItem) {
+                    if (selectedItem) {
+                        getConfig(config.name);
+                        $rootScope.$broadcast("task_notification");
+                    }
+                });
 
-        detailViewModal.task = function (config) {
-            var modalInstance = $uibModal.open({
-                templateUrl: 'app/modules/configuration/modal/config_task.html',
-                controller: 'configTaskCtrl',
-                controllerAs: 'task',
-                resolve: {
-                    modalData: config
-                }
+                $rootScope.__recoverKey__ = data;
+            }
+
+            $scope.$on('syncConfigStatus', function (event, args) {
+                getConfig();
             });
-        };
 
-    }
-])
+            detailViewModal.task = function (config) {
+                var modalInstance = $uibModal.open({
+                    templateUrl: 'app/modules/configuration/modal/config_task.html',
+                    controller: 'configTaskCtrl',
+                    controllerAs: 'task',
+                    resolve: {
+                        modalData: config
+                    }
+                });
+            };
+
+        }
+    ])
Index: /branches/amp_3_7_2/src/webui/webui/htdocs/new/src/cm/router.py
===================================================================
--- /branches/amp_3_7_2/src/webui/webui/htdocs/new/src/cm/router.py	(revision 2906)
+++ /branches/amp_3_7_2/src/webui/webui/htdocs/new/src/cm/router.py	(working copy)
@@ -458,7 +458,12 @@
                         try:
                             result["install_ts"] = time.mktime(datetime.datetime.strptime(result["install_date"], '%a %d %b %Y %I:%M:%S %p %Z').timetuple())
                         except ValueError:
-                            result["install_ts"] = time.mktime(datetime.datetime.strptime(result["install_date"], '%a %b %d %I:%M:%S %Y').timetuple())
+                            try:
+                                # Try parsing without timezone if %Z fails (e.g. for IST)
+                                date_str_no_tz = result["install_date"].rsplit(' ', 1)[0]
+                                result["install_ts"] = time.mktime(datetime.datetime.strptime(date_str_no_tz, '%a %d %b %Y %I:%M:%S %p').timetuple())
+                            except ValueError:
+                                result["install_ts"] = time.mktime(datetime.datetime.strptime(result["install_date"], '%a %b %d %I:%M:%S %Y').timetuple())
                     if os.path.exists(frontend_extensions_path + item):
                         result["status"] = "enabled"
                     else:
Index: /branches/amp_3_7_2/src/webui/webui/htdocs/new/src/djproject/settings.py
===================================================================
--- /branches/amp_3_7_2/src/webui/webui/htdocs/new/src/djproject/settings.py	(revision 2906)
+++ /branches/amp_3_7_2/src/webui/webui/htdocs/new/src/djproject/settings.py	(working copy)
@@ -26,7 +26,7 @@
 # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
 # although not all choices may be available on all operating systems.
 # In a Windows environment this must be set to your system time zone.
-TIME_ZONE = None
+TIME_ZONE = 'UTC'
 
 # Language code for this installation. All choices can be found here:
 # http://www.i18nguy.com/unicode/language-identifiers.html
@@ -46,7 +46,7 @@
 USE_L10N = True
 
 # If you set this to False, Django will not use timezone-aware datetimes.
-USE_TZ = False
+USE_TZ = True
 
 # Absolute filesystem path to the directory that will hold user-uploaded files.
 # Example: "/home/media/media.lawrence.com/media/"
Index: /branches/amp_3_7_2/update/avxsystem.ks
===================================================================
--- /branches/amp_3_7_2/update/avxsystem.ks	(revision 2906)
+++ /branches/amp_3_7_2/update/avxsystem.ks	(working copy)
@@ -1,6 +1,6 @@
 lang en_US.UTF-8
 keyboard us
-timezone Asia/Shanghai
+timezone GMT
 auth --useshadow --enablemd5
 rootpw --plaintext click1
 
