Merge pull request #12270 from deepeshgarg007/rebuild_tree
feat: Provision to rebuild NSM from treeview
This commit is contained in:
commit
340446c313
2 changed files with 35 additions and 1 deletions
|
|
@ -172,6 +172,23 @@ frappe.views.TreeView = Class.extend({
|
|||
this.post_render();
|
||||
},
|
||||
|
||||
rebuild_tree: function() {
|
||||
let me = this;
|
||||
|
||||
frappe.call({
|
||||
"method": "frappe.utils.nestedset.rebuild_tree",
|
||||
"args": {
|
||||
'doctype': me.doctype,
|
||||
'parent_field': "parent_"+me.doctype.toLowerCase().replace(/ /g, '_'),
|
||||
},
|
||||
"callback": function(r) {
|
||||
if (!r.exc) {
|
||||
me.make_tree();
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
post_render: function() {
|
||||
var me = this;
|
||||
me.opts.post_render && me.opts.post_render(me);
|
||||
|
|
@ -368,7 +385,7 @@ frappe.views.TreeView = Class.extend({
|
|||
}, "add");
|
||||
}
|
||||
},
|
||||
set_menu_item: function(){
|
||||
set_menu_item: function() {
|
||||
var me = this;
|
||||
|
||||
this.menu_items = [
|
||||
|
|
@ -393,6 +410,17 @@ frappe.views.TreeView = Class.extend({
|
|||
},
|
||||
];
|
||||
|
||||
if (frappe.user.has_role('System Manager')) {
|
||||
this.menu_items.push(
|
||||
{
|
||||
label: __('Rebuild Tree'),
|
||||
action: function() {
|
||||
me.rebuild_tree();
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
if (me.opts.menu_items) {
|
||||
me.menu_items.push.apply(me.menu_items, me.opts.menu_items)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -137,10 +137,16 @@ def update_move_node(doc, parent_field):
|
|||
frappe.db.sql("""update `tab{0}` set lft = -lft + %s, rgt = -rgt + %s, modified=%s
|
||||
where lft < 0""".format(doc.doctype), (new_diff, new_diff, n))
|
||||
|
||||
@frappe.whitelist()
|
||||
def rebuild_tree(doctype, parent_field):
|
||||
"""
|
||||
call rebuild_node for all root nodes
|
||||
"""
|
||||
|
||||
# Check for perm if called from client-side
|
||||
if frappe.request and frappe.local.form_dict.cmd == 'rebuild_tree':
|
||||
frappe.only_for('System Manager')
|
||||
|
||||
# get all roots
|
||||
frappe.db.auto_commit_on_many_writes = 1
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue