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