From 7f339f356dcc2679ec296dd868a43b14ceb9e3a4 Mon Sep 17 00:00:00 2001 From: st1020 Date: Thu, 24 Aug 2023 17:55:06 +0800 Subject: [PATCH 1/3] feat: modify project summary api day_num field --- dongtai_web/views/utils/commonstats.py | 29 +++++++++++++++++--------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/dongtai_web/views/utils/commonstats.py b/dongtai_web/views/utils/commonstats.py index 1d629af9e..2d49b07c1 100644 --- a/dongtai_web/views/utils/commonstats.py +++ b/dongtai_web/views/utils/commonstats.py @@ -95,17 +95,18 @@ def get_summary_by_agent_ids(agent_ids: Iterable): else: day_num_dict[i["day_label"]] = [i] day_num_data = [] - for _, day_label in daylist: - obj = {"day_label": day_label, "day_num": 0} - for i in range(1, 5 + 1): - obj["day_num_level_" + str(i)] = 0 + for day_label_i in range(len(daylist)): + _, day_label = daylist[day_label_i] if day_label in day_num_dict: + obj = get_empty_day_num_num(day_label) count = 0 for i in day_num_dict[day_label]: obj["day_num_level_" + str(i["level_id"])] = i["count"] count += i["count"] obj["day_num"] = count - day_num_data.append(obj) + day_num_data.append(obj) + elif day_label_i + 1 < len(daylist) and daylist[day_label_i + 1][1] in day_num_dict: + day_num_data.append(get_empty_day_num_num(day_label)) data["day_num"] = day_num_data levelInfo = IastVulLevel.objects.all() levelIdArr = {} @@ -193,17 +194,18 @@ def get_summary_by_project(project_id: int, project_version_id: int): else: day_num_dict[i["day_label"]] = [i] day_num_data = [] - for _, day_label in daylist: - obj = {"day_label": day_label, "day_num": 0} - for i in range(1, 5 + 1): - obj["day_num_level_" + str(i)] = 0 + for day_label_i in range(len(daylist)): + _, day_label = daylist[day_label_i] if day_label in day_num_dict: + obj = get_empty_day_num_num(day_label) count = 0 for i in day_num_dict[day_label]: obj["day_num_level_" + str(i["level_id"])] = i["count"] count += i["count"] obj["day_num"] = count - day_num_data.append(obj) + day_num_data.append(obj) + elif day_label_i + 1 < len(daylist) and daylist[day_label_i + 1][1] in day_num_dict: + day_num_data.append(get_empty_day_num_num(day_label)) data["day_num"] = day_num_data levelInfo = IastVulLevel.objects.all() levelIdArr = {} @@ -222,6 +224,13 @@ def get_summary_by_project(project_id: int, project_version_id: int): return data +def get_empty_day_num_num(day_label: str): + obj = {"day_label": day_label, "day_num": 0} + for i in range(1, 5 + 1): + obj["day_num_level_" + str(i)] = 0 + return obj + + def geneatre_vul_timerange_count_queryset( vul_queryset: QuerySet, time_gt: int, From a8614c6bb2af852aaa6ab000c573a447d458ef89 Mon Sep 17 00:00:00 2001 From: st1020 Date: Mon, 28 Aug 2023 11:00:55 +0800 Subject: [PATCH 2/3] feat: modify project summary api day_num field --- dongtai_web/views/utils/commonstats.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dongtai_web/views/utils/commonstats.py b/dongtai_web/views/utils/commonstats.py index 2d49b07c1..cc83caad0 100644 --- a/dongtai_web/views/utils/commonstats.py +++ b/dongtai_web/views/utils/commonstats.py @@ -98,6 +98,7 @@ def get_summary_by_agent_ids(agent_ids: Iterable): for day_label_i in range(len(daylist)): _, day_label = daylist[day_label_i] if day_label in day_num_dict: + # show this day if this day has data obj = get_empty_day_num_num(day_label) count = 0 for i in day_num_dict[day_label]: @@ -106,6 +107,7 @@ def get_summary_by_agent_ids(agent_ids: Iterable): obj["day_num"] = count day_num_data.append(obj) elif day_label_i + 1 < len(daylist) and daylist[day_label_i + 1][1] in day_num_dict: + # show this day if this yesterday has data day_num_data.append(get_empty_day_num_num(day_label)) data["day_num"] = day_num_data levelInfo = IastVulLevel.objects.all() @@ -197,6 +199,7 @@ def get_summary_by_project(project_id: int, project_version_id: int): for day_label_i in range(len(daylist)): _, day_label = daylist[day_label_i] if day_label in day_num_dict: + # show this day if this day has data obj = get_empty_day_num_num(day_label) count = 0 for i in day_num_dict[day_label]: @@ -205,6 +208,7 @@ def get_summary_by_project(project_id: int, project_version_id: int): obj["day_num"] = count day_num_data.append(obj) elif day_label_i + 1 < len(daylist) and daylist[day_label_i + 1][1] in day_num_dict: + # show this day if this yesterday has data day_num_data.append(get_empty_day_num_num(day_label)) data["day_num"] = day_num_data levelInfo = IastVulLevel.objects.all() From 0cd968837855e320a2dcaf5bc7385acf599fcb72 Mon Sep 17 00:00:00 2001 From: st1020 Date: Mon, 28 Aug 2023 12:19:33 +0800 Subject: [PATCH 3/3] feat: modify project summary api day_num field --- dongtai_web/views/utils/commonstats.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/dongtai_web/views/utils/commonstats.py b/dongtai_web/views/utils/commonstats.py index cc83caad0..dd9511d2d 100644 --- a/dongtai_web/views/utils/commonstats.py +++ b/dongtai_web/views/utils/commonstats.py @@ -95,10 +95,12 @@ def get_summary_by_agent_ids(agent_ids: Iterable): else: day_num_dict[i["day_label"]] = [i] day_num_data = [] + last_timestamp: int = 0 for day_label_i in range(len(daylist)): - _, day_label = daylist[day_label_i] + timestamp, day_label = daylist[day_label_i] if day_label in day_num_dict: # show this day if this day has data + last_timestamp = timestamp obj = get_empty_day_num_num(day_label) count = 0 for i in day_num_dict[day_label]: @@ -108,7 +110,11 @@ def get_summary_by_agent_ids(agent_ids: Iterable): day_num_data.append(obj) elif day_label_i + 1 < len(daylist) and daylist[day_label_i + 1][1] in day_num_dict: # show this day if this yesterday has data + last_timestamp = timestamp day_num_data.append(get_empty_day_num_num(day_label)) + for i in range(1, 8 - len(day_num_data) + 1): + day = time.localtime(last_timestamp + 86400 * i) + day_num_data.append(get_empty_day_num_num(str(day.tm_mon) + "-" + str(day.tm_mday))) data["day_num"] = day_num_data levelInfo = IastVulLevel.objects.all() levelIdArr = {} @@ -196,10 +202,12 @@ def get_summary_by_project(project_id: int, project_version_id: int): else: day_num_dict[i["day_label"]] = [i] day_num_data = [] + last_timestamp: int = 0 for day_label_i in range(len(daylist)): - _, day_label = daylist[day_label_i] + timestamp, day_label = daylist[day_label_i] if day_label in day_num_dict: # show this day if this day has data + last_timestamp = timestamp obj = get_empty_day_num_num(day_label) count = 0 for i in day_num_dict[day_label]: @@ -209,7 +217,11 @@ def get_summary_by_project(project_id: int, project_version_id: int): day_num_data.append(obj) elif day_label_i + 1 < len(daylist) and daylist[day_label_i + 1][1] in day_num_dict: # show this day if this yesterday has data + last_timestamp = timestamp day_num_data.append(get_empty_day_num_num(day_label)) + for i in range(1, 8 - len(day_num_data) + 1): + day = time.localtime(last_timestamp + 86400 * i) + day_num_data.append(get_empty_day_num_num(str(day.tm_mon) + "-" + str(day.tm_mday))) data["day_num"] = day_num_data levelInfo = IastVulLevel.objects.all() levelIdArr = {}