From e5286ee085c9336f177bf3c1a5784a13adc9a4b2 Mon Sep 17 00:00:00 2001
From: Jordi Albert <63541019+jordialbert@users.noreply.github.com>
Date: Fri, 26 Aug 2022 13:23:47 +0200
Subject: [PATCH] Hotfix/ips are not shown in usage information when no it
object is assigned (#26)
* #25 | Fix ips not shown when no it object was assigned and improve table UI
* Remove where clause making query to not fetch all ip addresses and handle the where clause with code. Also make some other changes to UI
Co-authored-by: Jordi Albert <63541019+jarg1023@users.noreply.github.com>
---
msp/msp/doctype/ip_network/ip_network.js | 7 ++++---
msp/msp/doctype/ip_network/ip_network.py | 23 ++++++++++++++---------
2 files changed, 18 insertions(+), 12 deletions(-)
diff --git a/msp/msp/doctype/ip_network/ip_network.js b/msp/msp/doctype/ip_network/ip_network.js
index c203e09..fecdedf 100644
--- a/msp/msp/doctype/ip_network/ip_network.js
+++ b/msp/msp/doctype/ip_network/ip_network.js
@@ -23,6 +23,7 @@ function getUsedIpsInNetwork(frm) {
frm.call('get_used_ips', {})
.then((response) => {
+ console.log(response);
const container = document.getElementById("usage-overview-table");
let tableBody = ``;
@@ -37,13 +38,13 @@ function getUsedIpsInNetwork(frm) {
${(element?.ip_address === '') ? "-" : element?.ip_address}
- ${(element?.title === '') ? __("no object assigned") : element?.title}
+ ${(element?.title === '' || element?.title === null) ? __("no object assigned") : element?.title}
|
- ${(element?.type === '') ? __("no type assigned") : element?.type} |
+ ${(element?.type === ''|| element?.type === null) ? __("no type assigned") : element?.type} |
`;
});
diff --git a/msp/msp/doctype/ip_network/ip_network.py b/msp/msp/doctype/ip_network/ip_network.py
index 4da4577..9bff55c 100644
--- a/msp/msp/doctype/ip_network/ip_network.py
+++ b/msp/msp/doctype/ip_network/ip_network.py
@@ -10,35 +10,40 @@ from frappe.model.document import Document
class IPNetwork(Document):
@frappe.whitelist()
def get_used_ips(self):
- values = {'ip_network': self.name, 'status': 'Decommissioned'}
- result = []
- result = frappe.db.sql("""
+ values = {'ip_network': self.name}
+ used_ips = []
+ used_ips = frappe.db.sql("""
SELECT
ipa.name as ip_address_name,
ipa.ip_address,
ito.name as it_object_name,
ito.title,
- ito.type
+ ito.type,
+ ito.status
FROM `tabIP Address` ipa
LEFT JOIN `tabIT Object` ito
ON ipa.it_object = ito.name
WHERE ipa.ip_network = %(ip_network)s
- AND ito.status != %(status)s
""", values=values, as_dict=1)
-
+
+ unused_status = ['Decommissioned']
+ for index, used_ip in enumerate(used_ips):
+ if used_ip['status'] in unused_status:
+ del used_ips[index]
+
for ip_network_reserved_range in self.ip_network_reserved_ranges_table:
- result.append({
+ used_ips.append({
'ip_address': ip_network_reserved_range.start,
'title': ip_network_reserved_range.type,
'type': 'DHCP Range Start'
})
- result.append({
+ used_ips.append({
'ip_address': ip_network_reserved_range.end,
'title': ip_network_reserved_range.type,
'type': 'DHCP Range End'
})
- return result
+ return used_ips
@frappe.whitelist()
def calculate_network_data(doc):