From efda021649c9667822adf3e464e2cd379efd12ef Mon Sep 17 00:00:00 2001 From: "13621160019@163.com" <13621160019@163.com> Date: Wed, 22 Sep 2021 16:07:38 +0800 Subject: [PATCH] changed lease start&end datetime formater for tenant from timestamp to strftime --- .../settings/tenant/tenant.controller.js | 10 +++--- admin/views/settings/tenant/tenant.html | 4 +-- admin/views/settings/tenant/tenant.model.html | 4 +-- myems-api/MyEMS.postman_collection.json | 4 +-- myems-api/core/tenant.py | 34 +++++++++++++------ 5 files changed, 35 insertions(+), 21 deletions(-) diff --git a/admin/app/controllers/settings/tenant/tenant.controller.js b/admin/app/controllers/settings/tenant/tenant.controller.js index 131b7974..8427ddef 100644 --- a/admin/app/controllers/settings/tenant/tenant.controller.js +++ b/admin/app/controllers/settings/tenant/tenant.controller.js @@ -197,7 +197,7 @@ app.controller('ModalAddTenantCtrl', function ($scope, $uibModalInstance, params $scope.costcenters = params.costcenters; $scope.contacts = params.contacts; $scope.tenant = { - lease_start_datetime_utc: moment(), + lease_start_datetime: moment(), lease_end_datetime_utc: moment(), }; $scope.dtOptions = { @@ -212,8 +212,8 @@ app.controller('ModalAddTenantCtrl', function ($scope, $uibModalInstance, params singleDatePicker: true, }; $scope.ok = function () { - $scope.tenant.lease_start_datetime_utc = moment($scope.tenant.lease_start_datetime_utc).format().slice(0, 19); - $scope.tenant.lease_end_datetime_utc = moment($scope.tenant.lease_end_datetime_utc).format().slice(0, 19); + $scope.tenant.lease_start_datetime = moment($scope.tenant.lease_start_datetime).format().slice(0, 19); + $scope.tenant.lease_end_datetime = moment($scope.tenant.lease_end_datetime).format().slice(0, 19); $uibModalInstance.close($scope.tenant); }; @@ -240,8 +240,8 @@ app.controller('ModalEditTenantCtrl', function ($scope, $uibModalInstance, param singleDatePicker: true, }; $scope.ok = function () { - $scope.tenant.lease_start_datetime_utc = moment($scope.tenant.lease_start_datetime_utc).format().slice(0, 19); - $scope.tenant.lease_end_datetime_utc = moment($scope.tenant.lease_end_datetime_utc).format().slice(0, 19); + $scope.tenant.lease_start_datetime = moment($scope.tenant.lease_start_datetime).format().slice(0, 19); + $scope.tenant.lease_end_datetime = moment($scope.tenant.lease_end_datetime).format().slice(0, 19); $uibModalInstance.close($scope.tenant); }; diff --git a/admin/views/settings/tenant/tenant.html b/admin/views/settings/tenant/tenant.html index 712425a3..90d831b2 100644 --- a/admin/views/settings/tenant/tenant.html +++ b/admin/views/settings/tenant/tenant.html @@ -48,9 +48,9 @@ {{ tenant.lease_number }} - {{ tenant.lease_start_datetime_utc | date:'yyyy-MM-ddTHH:mm:ss' }} + {{ tenant.lease_start_datetime }} - {{ tenant.lease_end_datetime_utc | date:'yyyy-MM-ddTHH:mm:ss' }} + {{ tenant.lease_end_datetime }} {{ tenant.is_in_lease==false?'SETTING.NO':'SETTING.YES' | translate }} {{tenant.cost_center.name}} diff --git a/admin/views/settings/tenant/tenant.model.html b/admin/views/settings/tenant/tenant.model.html index 486047bd..cc69506b 100644 --- a/admin/views/settings/tenant/tenant.model.html +++ b/admin/views/settings/tenant/tenant.model.html @@ -96,13 +96,13 @@
-
-
diff --git a/myems-api/MyEMS.postman_collection.json b/myems-api/MyEMS.postman_collection.json index d150668b..10a7d96c 100644 --- a/myems-api/MyEMS.postman_collection.json +++ b/myems-api/MyEMS.postman_collection.json @@ -5959,7 +5959,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\"data\":{\"name\":\"Starbucks\", \"buildings\":\"Building #1\", \"floors\":\"L1 L2 L3\", \"rooms\":\"1201b+2247+3F\", \"area\":418.8, \"tenant_type_id\":9, \"is_input_counted\":true, \"is_key_tenant\":true,\n\"lease_number\":\"6b0da806\", \"lease_start_datetime_utc\":\"2019-12-31T16:00:00\", \"lease_end_datetime_utc\":\"2022-12-31T16:00:00\", \"is_in_lease\":true, \"contact_id\":1, \"cost_center_id\":1, \"description\":\"my description\"}}" + "raw": "{\"data\":{\"name\":\"Starbucks\", \"buildings\":\"Building #1\", \"floors\":\"L1 L2 L3\", \"rooms\":\"1201b+2247+3F\", \"area\":418.8, \"tenant_type_id\":9, \"is_input_counted\":true, \"is_key_tenant\":true,\n\"lease_number\":\"6b0da806\", \"lease_start_datetime\":\"2021-01-01T00:00:00\", \"lease_end_datetime\":\"2022-01-01T00:00:00\", \"is_in_lease\":true, \"contact_id\":1, \"cost_center_id\":1, \"description\":\"my description\"}}" }, "url": { "raw": "{{base_url}}/tenants", @@ -5980,7 +5980,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\"data\":{\"name\":\"Hermes 爱马仕\", \"buildings\":\"Building #1\", \"floors\":\"L1 L2 L3 L4 L5\", \"rooms\":\"1201b+2247+3F\", \"area\":818.8, \"tenant_type_id\":9, \"is_input_counted\":true, \"is_key_tenant\":true,\n\"lease_number\":\"6b0da806\", \"lease_start_datetime_utc\":\"2019-12-31T16:00:00\", \"lease_end_datetime_utc\":\"2022-12-31T16:00:00\", \"is_in_lease\":true, \"contact_id\":1, \"cost_center_id\":1, \"description\":\"my description\"}}" + "raw": "{\"data\":{\"name\":\"Hermes 爱马仕\", \"buildings\":\"Building #1\", \"floors\":\"L1 L2 L3 L4 L5\", \"rooms\":\"1201b+2247+3F\", \"area\":818.8, \"tenant_type_id\":9, \"is_input_counted\":true, \"is_key_tenant\":true,\n\"lease_number\":\"6b0da806\", \"lease_start_datetime_utc\":\"2021-01-01T00:00:00\", \"lease_end_datetime_utc\":\"2022-01-01T00:00:00\", \"is_in_lease\":true, \"contact_id\":1, \"cost_center_id\":1, \"description\":\"my description\"}}" }, "url": { "raw": "{{base_url}}/tenants/2", diff --git a/myems-api/core/tenant.py b/myems-api/core/tenant.py index 385aa1b0..4b102085 100644 --- a/myems-api/core/tenant.py +++ b/myems-api/core/tenant.py @@ -68,6 +68,10 @@ class TenantCollection: cursor.execute(query) rows_spaces = cursor.fetchall() + timezone_offset = int(config.utc_offset[1:3]) * 60 + int(config.utc_offset[4:6]) + if config.utc_offset[0] == '-': + timezone_offset = -timezone_offset + result = list() if rows_spaces is not None and len(rows_spaces) > 0: for row in rows_spaces: @@ -75,8 +79,10 @@ class TenantCollection: contact = contact_dict.get(row['contact_id'], None) cost_center = cost_center_dict.get(row['cost_center_id'], None) - lease_start_datetime_utc = row['lease_start_datetime_utc'].replace(tzinfo=timezone.utc) - lease_end_datetime_utc = row['lease_end_datetime_utc'].replace(tzinfo=timezone.utc) + lease_start_datetime_local = row['lease_start_datetime_utc'].replace(tzinfo=timezone.utc) + \ + timedelta(minutes=timezone_offset) + lease_end_datetime_local = row['lease_end_datetime_utc'].replace(tzinfo=timezone.utc) + \ + timedelta(minutes=timezone_offset) meta_result = {"id": row['id'], "name": row['name'], @@ -89,8 +95,8 @@ class TenantCollection: "is_input_counted": bool(row['is_input_counted']), "is_key_tenant": bool(row['is_key_tenant']), "lease_number": row['lease_number'], - "lease_start_datetime_utc": lease_start_datetime_utc.timestamp() * 1000, - "lease_end_datetime_utc": lease_end_datetime_utc.timestamp() * 1000, + "lease_start_datetime": lease_start_datetime_local.strftime('%Y-%m-%dT%H:%M:%S'), + "lease_end_datetime": lease_end_datetime_local.strftime('%Y-%m-%dT%H:%M:%S'), "is_in_lease": bool(row['is_in_lease']), "contact": contact, "cost_center": cost_center, @@ -184,12 +190,12 @@ class TenantCollection: timezone_offset = -timezone_offset # todo: validate datetime values - lease_start_datetime_utc = datetime.strptime(new_values['data']['lease_start_datetime_utc'], + lease_start_datetime_utc = datetime.strptime(new_values['data']['lease_start_datetime'], '%Y-%m-%dT%H:%M:%S') lease_start_datetime_utc = lease_start_datetime_utc.replace(tzinfo=timezone.utc) lease_start_datetime_utc -= timedelta(minutes=timezone_offset) - lease_end_datetime_utc = datetime.strptime(new_values['data']['lease_end_datetime_utc'], + lease_end_datetime_utc = datetime.strptime(new_values['data']['lease_end_datetime'], '%Y-%m-%dT%H:%M:%S') lease_end_datetime_utc = lease_end_datetime_utc.replace(tzinfo=timezone.utc) lease_end_datetime_utc -= timedelta(minutes=timezone_offset) @@ -364,6 +370,14 @@ class TenantItem: tenant_type = tenant_type_dict.get(row['tenant_type_id'], None) contact = contact_dict.get(row['contact_id'], None) cost_center = cost_center_dict.get(row['cost_center_id'], None) + timezone_offset = int(config.utc_offset[1:3]) * 60 + int(config.utc_offset[4:6]) + if config.utc_offset[0] == '-': + timezone_offset = -timezone_offset + lease_start_datetime_local = row['lease_start_datetime_utc'].replace(tzinfo=timezone.utc) + \ + timedelta(minutes=timezone_offset) + lease_end_datetime_local = row['lease_end_datetime_utc'].replace(tzinfo=timezone.utc) + \ + timedelta(minutes=timezone_offset) + meta_result = {"id": row['id'], "name": row['name'], "uuid": row['uuid'], @@ -375,8 +389,8 @@ class TenantItem: "is_input_counted": bool(row['is_input_counted']), "is_key_tenant": bool(row['is_key_tenant']), "lease_number": row['lease_number'], - "lease_start_datetime_utc": row['lease_start_datetime_utc'].timestamp() * 1000, - "lease_end_datetime_utc": row['lease_end_datetime_utc'].timestamp() * 1000, + "lease_start_datetime": lease_start_datetime_local.strftime('%Y-%m-%dT%H:%M:%S'), + "lease_end_datetime": lease_end_datetime_local.strftime('%Y-%m-%dT%H:%M:%S'), "is_in_lease": bool(row['is_in_lease']), "contact": contact, "cost_center": cost_center, @@ -575,12 +589,12 @@ class TenantItem: timezone_offset = -timezone_offset # todo: validate datetime values - lease_start_datetime_utc = datetime.strptime(new_values['data']['lease_start_datetime_utc'], + lease_start_datetime_utc = datetime.strptime(new_values['data']['lease_start_datetime'], '%Y-%m-%dT%H:%M:%S') lease_start_datetime_utc = lease_start_datetime_utc.replace(tzinfo=timezone.utc) lease_start_datetime_utc -= timedelta(minutes=timezone_offset) - lease_end_datetime_utc = datetime.strptime(new_values['data']['lease_end_datetime_utc'], + lease_end_datetime_utc = datetime.strptime(new_values['data']['lease_end_datetime'], '%Y-%m-%dT%H:%M:%S') lease_end_datetime_utc = lease_end_datetime_utc.replace(tzinfo=timezone.utc) lease_end_datetime_utc -= timedelta(minutes=timezone_offset)