diff --git a/device/templates/details.html b/device/templates/details.html
index 37f7487..51e97f1 100644
--- a/device/templates/details.html
+++ b/device/templates/details.html
@@ -12,25 +12,25 @@
@@ -214,3 +214,25 @@
{% endblock %}
+
+{% block extrascript %}
+
+{% endblock %}
+
diff --git a/dhub/settings.py b/dhub/settings.py
index 891b714..5e0131e 100644
--- a/dhub/settings.py
+++ b/dhub/settings.py
@@ -158,11 +158,14 @@ AUTH_PASSWORD_VALIDATORS = [
LANGUAGE_CODE = "en-us"
-TIME_ZONE = "UTC"
+TIME_ZONE = config("TIME_ZONE", default="UTC")
USE_I18N = True
-USE_TZ = True
+USE_TZ = False
+
+if TIME_ZONE == "UTC":
+ USE_TZ = True
USE_L10N = True
LANGUAGES = [
diff --git a/evidence/models.py b/evidence/models.py
index eadb7a7..35f97aa 100644
--- a/evidence/models.py
+++ b/evidence/models.py
@@ -127,7 +127,7 @@ class Evidence:
owner=user.institution,
type=Annotation.Type.SYSTEM,
key="hidalgo1",
- ).order_by("-created").values_list("uuid", flat=True).distinct()
+ ).order_by("-created").values_list("uuid", "created").distinct()
def set_components(self):
snapshot = ParseSnapshot(self.doc).snapshot_json
diff --git a/evidence/parse.py b/evidence/parse.py
index 4f42934..14f3c1c 100644
--- a/evidence/parse.py
+++ b/evidence/parse.py
@@ -5,6 +5,8 @@ import hashlib
from datetime import datetime
from dmidecode import DMIParse
+from json_repair import repair_json
+
from evidence.models import Annotation
from evidence.xapian import index
from utils.constants import ALGOS, CHASSIS_DH
@@ -20,7 +22,12 @@ def get_network_cards(child, nets):
def get_mac(lshw):
nets = []
try:
- get_network_cards(json.loads(lshw), nets)
+ hw = json.loads(lshw)
+ except json.decoder.JSONDecodeError:
+ hw = json.loads(repair_json(lshw))
+
+ try:
+ get_network_cards(hw, nets)
except Exception as ss:
print("WARNING!! {}".format(ss))
return
diff --git a/evidence/parse_details.py b/evidence/parse_details.py
index 8465403..57ce4f9 100644
--- a/evidence/parse_details.py
+++ b/evidence/parse_details.py
@@ -3,6 +3,8 @@ import numpy as np
from datetime import datetime
from dmidecode import DMIParse
+from json_repair import repair_json
+
from utils.constants import CHASSIS_DH, DATASTORAGEINTERFACE
@@ -160,6 +162,7 @@ class ParseSnapshot:
continue
model = sm.get('model_name')
manufacturer = None
+ hours = sm.get("power_on_time", {}).get("hours", 0)
if model and len(model.split(" ")) > 1:
mm = model.split(" ")
model = mm[-1]
@@ -175,6 +178,7 @@ class ParseSnapshot:
"size": self.get_data_storage_size(sm),
"variant": sm.get("firmware_version"),
"interface": self.get_data_storage_interface(sm),
+ "hours": hours,
}
)
@@ -478,7 +482,11 @@ class ParseSnapshot:
def loads(self, x):
if isinstance(x, str):
try:
- return json.loads(x)
+ try:
+ hw = json.loads(lshw)
+ except json.decoder.JSONDecodeError:
+ hw = json.loads(repair_json(lshw))
+ return hw
except Exception as ss:
print("WARNING!! {}".format(ss))
return {}
diff --git a/evidence/templates/evidences.html b/evidence/templates/evidences.html
index c67e9d9..b221d9b 100644
--- a/evidence/templates/evidences.html
+++ b/evidence/templates/evidences.html
@@ -14,10 +14,13 @@
{% for ev in evidences %}
- {{ ev }}
+ {{ ev.0 }}
|
-
+ {{ ev.1 }}
+ |
+
+
|
{% endfor %}
diff --git a/requirements.txt b/requirements.txt
index 1576d4f..32b8e86 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -10,4 +10,4 @@ pandas==2.2.2
xlrd==2.0.1
odfpy==1.4.1
pytz==2024.2
-
+json-repair==0.30.0