Merge pull request #34 from itsdave-de/33-improve-location-doctype

Location Doctype: Add link to IT Objects List with filter
This commit is contained in:
itsdaveit 2022-09-20 14:51:18 +02:00 committed by GitHub
commit 693cf9db47
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 33 additions and 0 deletions

View File

@ -39,6 +39,8 @@ jenv = {
# doctype_tree_js = {"doctype" : "public/js/doctype_tree.js"}
# doctype_calendar_js = {"doctype" : "public/js/doctype_calendar.js"}
doctype_js = {"Location" : "public/js/location.js"}
# Home Pages
# ----------
@ -133,3 +135,6 @@ doc_events = {
# "Task": "msp.task.get_dashboard_data"
# }
override_doctype_class = {
"Location": "msp.overrides.location.CustomLocation.CustomLocation"
}

View 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

View File

10
msp/public/js/location.js Normal file
View File

@ -0,0 +1,10 @@
frappe.ui.form.on('Location', {
refresh(frm) {
frm.add_custom_button('Show IT Objects in Location', () => {
frm.call('get_all_child_locations_from_location',{})
.then((response) => {
frappe.set_route('List', 'IT Object', { location: ['in', `${response.message.toString()}`] })
})
})
}
});