Treeview for Location

This commit is contained in:
Rohit Waghchaure 2018-05-07 19:22:15 +05:30
parent af05995418
commit 255cd44aba
3 changed files with 163 additions and 5 deletions

View File

@ -83,7 +83,7 @@
"columns": 0,
"fieldname": "parent_location",
"fieldtype": "Link",
"hidden": 0,
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
@ -98,7 +98,7 @@
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"read_only": 1,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
@ -106,6 +106,99 @@
"set_only_once": 0,
"translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "lft",
"fieldtype": "Int",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "lft",
"length": 0,
"no_copy": 1,
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "rgt",
"fieldtype": "Int",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "rgt",
"length": 0,
"no_copy": 1,
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "old_parent",
"fieldtype": "Data",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Old Parent",
"length": 0,
"no_copy": 1,
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
}
],
"has_web_view": 0,
@ -118,7 +211,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2018-05-07 12:54:49.527782",
"modified": "2018-05-07 19:21:06.051414",
"modified_by": "Administrator",
"module": "Assets",
"name": "Location",

View File

@ -5,6 +5,43 @@
from __future__ import unicode_literals
import frappe
from frappe.model.document import Document
from frappe.utils.nestedset import NestedSet
class Location(Document):
pass
class Location(NestedSet):
def on_update(self):
self.update_nsm_model()
def on_trash(self):
self.update_nsm_model()
def update_nsm_model(self):
frappe.utils.nestedset.update_nsm(self)
@frappe.whitelist()
def get_children(doctype, parent=None, location=None, is_root=False):
if parent == None or parent == "All Locations":
parent = ""
return frappe.db.sql("""
select
name as value,
is_group as expandable
from
`tab{doctype}` comp
where
ifnull(parent_location, "")="{parent}"
""".format(
doctype = frappe.db.escape(doctype),
parent=frappe.db.escape(parent)
), as_dict=1)
@frappe.whitelist()
def add_node():
from frappe.desk.treeview import make_tree_args
args = frappe.form_dict
args = make_tree_args(**args)
if args.parent_location == 'All Locations':
args.parent_location = None
frappe.get_doc(args).insert()

View File

@ -0,0 +1,28 @@
frappe.treeview_settings["Location"] = {
ignore_fields:["parent_location"],
get_tree_nodes: 'erpnext.assets.doctype.location.location.get_children',
add_tree_node: 'erpnext.assets.doctype.location.location.add_node',
filters: [
{
fieldname: "location",
fieldtype:"Link",
options: "Location",
label: __("Location")
},
],
breadcrumb: "Assets",
root_label: "All Locations",
get_tree_root: false,
menu_items: [
{
label: __("New Location"),
action: function() {
frappe.new_doc("Location", true);
},
condition: 'frappe.boot.user.can_create.indexOf("Location") !== -1'
}
],
onload: function(treeview) {
treeview.make_tree();
}
};