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)