From 650f568c1843d19e156f5a2669911086d03d3dab Mon Sep 17 00:00:00 2001 From: Jordi Albert <63541019+jarg1023@users.noreply.github.com> Date: Fri, 26 Aug 2022 13:20:25 +0200 Subject: [PATCH] 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 --- 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):