Merge pull request #30 from itsdave-de/feature/29-link-back-ip-address-to-object

Improve link between IT Object and IP Address Doctypes
This commit is contained in:
itsdaveit 2022-09-06 17:15:45 +02:00 committed by GitHub
commit 8baacfe1be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 2 deletions

View File

@ -10,6 +10,7 @@
"title",
"ip_address",
"protocol",
"it_object_name",
"it_object",
"ip_network",
"it_landscape"
@ -37,7 +38,8 @@
"fieldname": "it_object",
"fieldtype": "Link",
"label": "IT Object",
"options": "IT Object"
"options": "IT Object",
"read_only": 1
},
{
"fieldname": "it_landscape",
@ -52,10 +54,16 @@
"label": "IP Network",
"options": "IP Network",
"reqd": 1
},
{
"fieldname": "it_object_name",
"fieldtype": "Data",
"label": "IT Object Name",
"read_only": 1
}
],
"links": [],
"modified": "2022-06-17 11:21:47.850521",
"modified": "2022-09-05 12:03:39.294521",
"modified_by": "Administrator",
"module": "MSP",
"name": "IP Address",

View File

@ -8,6 +8,26 @@ import requests
from frappe.model.document import Document
class ITObject(Document):
def save(self, *args, **kwargs):
super().save(*args, **kwargs)
self.set_it_object_data_in_ip_address_doctype()
def set_it_object_data_in_ip_address_doctype(self):
if not self.main_ip:
return
ip_address_name_with_it_object = frappe.db.get_value("IP Address", {'it_object': self.name}, ['name'])
if ip_address_name_with_it_object:
current_ip_address_with_it_object_doctype = frappe.get_doc("IP Address", ip_address_name_with_it_object)
current_ip_address_with_it_object_doctype.it_object = None
current_ip_address_with_it_object_doctype.it_object_name = None
current_ip_address_with_it_object_doctype.save()
ip_address_doctype = frappe.get_doc("IP Address", self.main_ip)
ip_address_doctype.it_object = self.name
ip_address_doctype.it_object_name = self.title
ip_address_doctype.save()
frappe.db.commit()
def get_host_status_from_hosts_data(self, hosts_data, msp_settings_doc):
@ -75,3 +95,9 @@ class ITObject(Document):
'status': 500,
'response': f'Data could not be fetched from {msp_settings_doc.oitc_url}. Error -> {str(exception)}'
}
def set_it_object_data_in_ip_address_doctype_for_existing_it_objects():
it_objects = frappe.db.get_all("IT Object", fields=['name'])
for it_object in it_objects:
it_object_doctype = frappe.get_doc("IT Object", it_object['name'])
it_object_doctype.set_it_object_data_in_ip_address_doctype()