mirror of
https://github.com/itsdave-de/msp.git
synced 2025-06-28 08:54:04 +02:00
#33 | Get all child locations for a particular location set the filter
This commit is contained in:
parent
3f10e77d93
commit
234061f8d1
@ -135,3 +135,6 @@ doc_events = {
|
|||||||
# "Task": "msp.task.get_dashboard_data"
|
# "Task": "msp.task.get_dashboard_data"
|
||||||
# }
|
# }
|
||||||
|
|
||||||
|
override_doctype_class = {
|
||||||
|
"Location": "msp.overrides.location.CustomLocation.CustomLocation"
|
||||||
|
}
|
||||||
|
18
msp/overrides/location/CustomLocation.py
Normal file
18
msp/overrides/location/CustomLocation.py
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
import frappe
|
||||||
|
from erpnext.assets.doctype.location.location import Location
|
||||||
|
|
||||||
|
class CustomLocation(Location):
|
||||||
|
@frappe.whitelist()
|
||||||
|
def get_all_child_locations_from_location(self):
|
||||||
|
parent_location_name = self.name
|
||||||
|
locations_to_filter = []
|
||||||
|
return self.search_child_locations(locations_to_filter, parent_location_name)
|
||||||
|
|
||||||
|
def search_child_locations(self, locations_to_filter, parent_location_name):
|
||||||
|
locations_to_filter.append(parent_location_name)
|
||||||
|
child_locations = frappe.db.get_list('Location', {'parent_location': parent_location_name}, ['name'])
|
||||||
|
if child_locations:
|
||||||
|
for child_location in child_locations:
|
||||||
|
self.search_child_locations(locations_to_filter, child_location['name'])
|
||||||
|
|
||||||
|
return locations_to_filter
|
0
msp/overrides/location/__init__.py
Normal file
0
msp/overrides/location/__init__.py
Normal file
@ -1,7 +1,10 @@
|
|||||||
frappe.ui.form.on('Location', {
|
frappe.ui.form.on('Location', {
|
||||||
refresh(frm) {
|
refresh(frm) {
|
||||||
frm.add_custom_button('Show IT Objects in Location', () => {
|
frm.add_custom_button('Show IT Objects in Location', () => {
|
||||||
frappe.set_route('List', 'IT Object', { location_full_path: ['like', `%${frm.doc.location_name}%`] })
|
frm.call('get_all_child_locations_from_location',{})
|
||||||
|
.then((response) => {
|
||||||
|
frappe.set_route('List', 'IT Object', { location: ['in', `${response.message.toString()}`] })
|
||||||
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user