Fixes related to department tree
diff --git a/erpnext/hr/doctype/department/department.py b/erpnext/hr/doctype/department/department.py
index 99a9b85..063ed05 100644
--- a/erpnext/hr/doctype/department/department.py
+++ b/erpnext/hr/doctype/department/department.py
@@ -4,7 +4,7 @@
from __future__ import unicode_literals
import frappe
from frappe import _
-from frappe.utils.nestedset import NestedSet
+from frappe.utils.nestedset import NestedSet, get_root_of
from erpnext.utilities.transaction_base import delete_events
from frappe.model.document import Document
@@ -12,16 +12,17 @@
nsm_parent_field = 'parent_department'
def autoname(self):
- if not self.department_name==_("All Departments"):
+ if self.department_name != get_root_of("Department"):
abbr = frappe.db.get_value('Company', self.company, 'abbr')
self.name = '{0} - {1}'.format(self.department_name, abbr)
else:
self.name = self.department_name
def validate(self):
- if not self.parent_department and self.department_name != _("All Departments") \
- and frappe.db.exists("Department", _("All Departments")):
- self.parent_department = _("All Departments")
+ if not self.parent_department:
+ root = get_root_of("Department")
+ if root:
+ self.parent_department = root
def update_nsm_model(self):
frappe.utils.nestedset.update_nsm(self)
@@ -40,7 +41,7 @@
def get_children(doctype, parent=None, company=None, is_root=False):
condition = ''
if company == parent:
- condition = 'name="All Departments"'
+ condition = "name='%s'".format(get_root_of("Department"))
elif company:
condition = "parent_department='{0}' and company='{1}'".format(parent, company)
else:
diff --git a/erpnext/patches/v11_0/create_department_records_for_each_company.py b/erpnext/patches/v11_0/create_department_records_for_each_company.py
index 4210c01..a5b76e9 100644
--- a/erpnext/patches/v11_0/create_department_records_for_each_company.py
+++ b/erpnext/patches/v11_0/create_department_records_for_each_company.py
@@ -1,4 +1,5 @@
import frappe
+from frappe import _
from frappe.utils.nestedset import rebuild_tree
def execute():
@@ -15,7 +16,7 @@
for department in departments:
# skip root node
- if department.name == "All Departments":
+ if department.name == _("All Departments"):
continue
# for each company, create a copy of the doc
diff --git a/erpnext/patches/v11_0/update_department_lft_rgt.py b/erpnext/patches/v11_0/update_department_lft_rgt.py
index 9bb1772..533055a 100644
--- a/erpnext/patches/v11_0/update_department_lft_rgt.py
+++ b/erpnext/patches/v11_0/update_department_lft_rgt.py
@@ -7,11 +7,13 @@
frappe.reload_doc("hr", "doctype", "department")
if not frappe.db.exists("Department", _('All Departments')):
- frappe.get_doc({
+ dept = frappe.get_doc({
'doctype': 'Department',
'department_name': _('All Departments'),
'is_group': 1
- }).insert(ignore_permissions=True)
+ })
+ dept.flags.ignore_validate=True
+ dept.insert(ignore_permissions=True)
frappe.db.sql("""update `tabDepartment` set parent_department = '{0}'
where is_group = 0""".format(_('All Departments')))