From 15ca471b836fe602128ae3f577e581edbd1e9f52 Mon Sep 17 00:00:00 2001
From: "13621160019@163.com" <13621160019@163.com>
Date: Wed, 22 Sep 2021 15:25:30 +0800
Subject: [PATCH] changed last seen datetime formater for gateway from
timestamp to strftime
---
admin/views/settings/gateway/gateway.html | 2 +-
myems-api/core/gateway.py | 46 +++++++++++++++++------
2 files changed, 36 insertions(+), 12 deletions(-)
diff --git a/admin/views/settings/gateway/gateway.html b/admin/views/settings/gateway/gateway.html
index 5ba5a4ed..8cec459b 100644
--- a/admin/views/settings/gateway/gateway.html
+++ b/admin/views/settings/gateway/gateway.html
@@ -23,7 +23,7 @@
{{ gateway.id }} |
{{ gateway.name }} |
{{ gateway.token}} |
- {{ gateway.last_seen_datetime | date:'yyyy-MM-dd HH:mm:ss'}} |
+ {{ gateway.last_seen_datetime }} |
{{'SETTING.EDIT' | translate}}
{{'SETTING.DELETE' | translate}}
diff --git a/myems-api/core/gateway.py b/myems-api/core/gateway.py
index b75fbf4e..8d380459 100644
--- a/myems-api/core/gateway.py
+++ b/myems-api/core/gateway.py
@@ -3,7 +3,7 @@ import simplejson as json
import mysql.connector
import config
import uuid
-from datetime import datetime, timezone
+from datetime import datetime, timezone, timedelta
from core.userlogger import user_logger
@@ -30,14 +30,22 @@ class GatewayCollection:
cursor.close()
cnx.disconnect()
+ 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 is not None and len(rows) > 0:
for row in rows:
+ if isinstance(row['last_seen_datetime_utc'], datetime):
+ last_seen_datetime_local = row['last_seen_datetime_utc'].replace(tzinfo=timezone.utc) + \
+ timedelta(minutes=timezone_offset)
+ last_seen_datetime = last_seen_datetime_local.strftime('%Y-%m-%dT%H:%M:%S')
+ else:
+ last_seen_datetime = None
meta_result = {"id": row['id'], "name": row['name'], "uuid": row['uuid'],
"token": row['token'],
- "last_seen_datetime":
- row['last_seen_datetime_utc'].replace(tzinfo=timezone.utc).timestamp() * 1000
- if isinstance(row['last_seen_datetime_utc'], datetime) else None,
+ "last_seen_datetime": last_seen_datetime
}
result.append(meta_result)
@@ -117,13 +125,22 @@ class GatewayItem:
raise falcon.HTTPError(falcon.HTTP_404, title='API.NOT_FOUND',
description='API.GATEWAY_NOT_FOUND')
+ timezone_offset = int(config.utc_offset[1:3]) * 60 + int(config.utc_offset[4:6])
+ if config.utc_offset[0] == '-':
+ timezone_offset = -timezone_offset
+
+ if isinstance(row['last_seen_datetime_utc'], datetime):
+ last_seen_datetime_local = row['last_seen_datetime_utc'].replace(tzinfo=timezone.utc) + \
+ timedelta(minutes=timezone_offset)
+ last_seen_datetime = last_seen_datetime_local.strftime('%Y-%m-%dT%H:%M:%S')
+ else:
+ last_seen_datetime = None
+
result = {"id": row['id'],
"name": row['name'],
"uuid": row['uuid'],
"token": row['token'],
- "last_seen_datetime":
- row['last_seen_datetime_utc'].replace(tzinfo=timezone.utc).timestamp()*1000
- if isinstance(row['last_seen_datetime_utc'], datetime) else None}
+ "last_seen_datetime": last_seen_datetime}
resp.body = json.dumps(result)
@@ -250,6 +267,10 @@ class GatewayDataSourceCollection:
raise falcon.HTTPError(falcon.HTTP_404, title='API.NOT_FOUND',
description='API.GATEWAY_NOT_FOUND')
+ 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()
query_data_source = (" SELECT id, name, uuid, "
" protocol, connection, last_seen_datetime_utc "
@@ -258,17 +279,20 @@ class GatewayDataSourceCollection:
" ORDER BY name ")
cursor.execute(query_data_source, (id_,))
rows_data_source = cursor.fetchall()
- now = datetime.utcnow().replace(second=0, microsecond=0, tzinfo=None)
if rows_data_source is not None and len(rows_data_source) > 0:
for row in rows_data_source:
+ if isinstance(row['last_seen_datetime_utc'], datetime):
+ last_seen_datetime_local = row['last_seen_datetime_utc'].replace(tzinfo=timezone.utc) + \
+ timedelta(minutes=timezone_offset)
+ last_seen_datetime = last_seen_datetime_local.strftime('%Y-%m-%dT%H:%M:%S')
+ else:
+ last_seen_datetime = None
meta_result = {"id": row['id'],
"name": row['name'],
"uuid": row['uuid'],
"protocol": row['protocol'],
"connection": row['connection'],
- "last_seen_datetime":
- row['last_seen_datetime_utc'].replace(tzinfo=timezone.utc).timestamp()*1000
- if isinstance(row['last_seen_datetime_utc'], datetime) else None,
+ "last_seen_datetime": last_seen_datetime,
}
result.append(meta_result)
|