Merge pull request #2115 from anandpdoshi/user-permission-doctypes
HR permissions, translations
This commit is contained in:
commit
c90773cc85
@ -11,8 +11,12 @@ erpnext.hr.EmployeeController = frappe.ui.form.Controller.extend({
|
|||||||
},
|
},
|
||||||
|
|
||||||
onload: function() {
|
onload: function() {
|
||||||
this.setup_leave_approver_select();
|
|
||||||
if(this.frm.doc.__islocal) this.frm.set_value("employee_name", "");
|
if(this.frm.doc.__islocal) this.frm.set_value("employee_name", "");
|
||||||
|
this.frm.set_query("leave_approver", "employee_leave_approvers", function() {
|
||||||
|
return {
|
||||||
|
filters: [["UserRole", "role", "=", "Leave Approver"]]
|
||||||
|
}
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
refresh: function() {
|
refresh: function() {
|
||||||
@ -25,21 +29,6 @@ erpnext.hr.EmployeeController = frappe.ui.form.Controller.extend({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
setup_leave_approver_select: function() {
|
|
||||||
var me = this;
|
|
||||||
return this.frm.call({
|
|
||||||
method: "erpnext.hr.utils.get_leave_approver_list",
|
|
||||||
callback: function(r) {
|
|
||||||
var df = frappe.meta.get_docfield("Employee Leave Approver", "leave_approver",
|
|
||||||
me.frm.doc.name);
|
|
||||||
df.options = $.map(r.message, function(user) {
|
|
||||||
return {value: user, label: frappe.user_info(user).fullname};
|
|
||||||
});
|
|
||||||
me.frm.fields_dict.employee_leave_approvers.refresh();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
date_of_birth: function() {
|
date_of_birth: function() {
|
||||||
return cur_frm.call({
|
return cur_frm.call({
|
||||||
method: "get_retirement_date",
|
method: "get_retirement_date",
|
||||||
|
@ -172,6 +172,7 @@
|
|||||||
{
|
{
|
||||||
"fieldname": "employment_type",
|
"fieldname": "employment_type",
|
||||||
"fieldtype": "Link",
|
"fieldtype": "Link",
|
||||||
|
"ignore_user_permissions": 1,
|
||||||
"in_filter": 1,
|
"in_filter": 1,
|
||||||
"in_list_view": 1,
|
"in_list_view": 1,
|
||||||
"label": "Employment Type",
|
"label": "Employment Type",
|
||||||
@ -185,6 +186,7 @@
|
|||||||
"description": "Applicable Holiday List",
|
"description": "Applicable Holiday List",
|
||||||
"fieldname": "holiday_list",
|
"fieldname": "holiday_list",
|
||||||
"fieldtype": "Link",
|
"fieldtype": "Link",
|
||||||
|
"ignore_user_permissions": 1,
|
||||||
"label": "Holiday List",
|
"label": "Holiday List",
|
||||||
"oldfieldname": "holiday_list",
|
"oldfieldname": "holiday_list",
|
||||||
"oldfieldtype": "Link",
|
"oldfieldtype": "Link",
|
||||||
@ -672,7 +674,7 @@
|
|||||||
],
|
],
|
||||||
"icon": "icon-user",
|
"icon": "icon-user",
|
||||||
"idx": 1,
|
"idx": 1,
|
||||||
"modified": "2014-05-27 07:34:49.337586",
|
"modified": "2014-08-27 05:55:00.514660",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "HR",
|
"module": "HR",
|
||||||
"name": "Employee",
|
"name": "Employee",
|
||||||
@ -704,6 +706,7 @@
|
|||||||
"report": 1,
|
"report": 1,
|
||||||
"role": "HR User",
|
"role": "HR User",
|
||||||
"submit": 0,
|
"submit": 0,
|
||||||
|
"user_permission_doctypes": "[\"Branch\",\"Company\",\"Department\",\"Designation\"]",
|
||||||
"write": 1
|
"write": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -719,12 +722,6 @@
|
|||||||
"set_user_permissions": 1,
|
"set_user_permissions": 1,
|
||||||
"submit": 0,
|
"submit": 0,
|
||||||
"write": 1
|
"write": 1
|
||||||
},
|
|
||||||
{
|
|
||||||
"apply_user_permissions": 1,
|
|
||||||
"permlevel": 0,
|
|
||||||
"read": 1,
|
|
||||||
"role": "Leave Approver"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"search_fields": "employee_name",
|
"search_fields": "employee_name",
|
||||||
|
@ -50,21 +50,11 @@ class Employee(Document):
|
|||||||
self.update_user_permissions()
|
self.update_user_permissions()
|
||||||
|
|
||||||
self.update_dob_event()
|
self.update_dob_event()
|
||||||
self.update_leave_approver_user_permissions()
|
|
||||||
|
|
||||||
def update_user_permissions(self):
|
def update_user_permissions(self):
|
||||||
frappe.permissions.add_user_permission("Employee", self.name, self.user_id)
|
frappe.permissions.add_user_permission("Employee", self.name, self.user_id)
|
||||||
frappe.permissions.set_user_permission_if_allowed("Company", self.company, self.user_id)
|
frappe.permissions.set_user_permission_if_allowed("Company", self.company, self.user_id)
|
||||||
|
|
||||||
def update_leave_approver_user_permissions(self):
|
|
||||||
"""add employee user permission for leave approver"""
|
|
||||||
employee_leave_approvers = [d.leave_approver for d in self.get("employee_leave_approvers")]
|
|
||||||
if self.reports_to and self.reports_to not in employee_leave_approvers:
|
|
||||||
employee_leave_approvers.append(frappe.db.get_value("Employee", self.reports_to, "user_id"))
|
|
||||||
|
|
||||||
for user in employee_leave_approvers:
|
|
||||||
frappe.permissions.add_user_permission("Employee", self.name, user)
|
|
||||||
|
|
||||||
def update_user(self):
|
def update_user(self):
|
||||||
# add employee role if missing
|
# add employee role if missing
|
||||||
user = frappe.get_doc("User", self.user_id)
|
user = frappe.get_doc("User", self.user_id)
|
||||||
|
@ -8,10 +8,11 @@
|
|||||||
"fields": [
|
"fields": [
|
||||||
{
|
{
|
||||||
"fieldname": "leave_approver",
|
"fieldname": "leave_approver",
|
||||||
"fieldtype": "Select",
|
"fieldtype": "Link",
|
||||||
|
"ignore_user_permissions": 1,
|
||||||
"in_list_view": 1,
|
"in_list_view": 1,
|
||||||
"label": "Leave Approver",
|
"label": "Leave Approver",
|
||||||
"options": "[Select]",
|
"options": "User",
|
||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
"print_hide": 1,
|
"print_hide": 1,
|
||||||
"reqd": 1,
|
"reqd": 1,
|
||||||
@ -20,7 +21,7 @@
|
|||||||
],
|
],
|
||||||
"idx": 1,
|
"idx": 1,
|
||||||
"istable": 1,
|
"istable": 1,
|
||||||
"modified": "2014-05-15 19:32:14.134420",
|
"modified": "2014-08-27 06:21:36.887205",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "HR",
|
"module": "HR",
|
||||||
"name": "Employee Leave Approver",
|
"name": "Employee Leave Approver",
|
||||||
|
@ -57,14 +57,12 @@ cur_frm.cscript.onload = function(doc,cdt,cdn) {
|
|||||||
return{
|
return{
|
||||||
query: "erpnext.controllers.queries.employee_query"
|
query: "erpnext.controllers.queries.employee_query"
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
var exp_approver = doc.exp_approver;
|
|
||||||
return cur_frm.call({
|
cur_frm.set_query("exp_approver", function() {
|
||||||
method: "erpnext.hr.utils.get_expense_approver_list",
|
return {
|
||||||
callback: function(r) {
|
filters: [["UserRole", "role", "=", "Expense Approver"]]
|
||||||
cur_frm.set_df_property("exp_approver", "options", r.message);
|
};
|
||||||
if(exp_approver) cur_frm.set_value("exp_approver", exp_approver);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,11 +20,13 @@
|
|||||||
"search_index": 1
|
"search_index": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"description": "A user with \"Expense Approver\" role",
|
||||||
"fieldname": "exp_approver",
|
"fieldname": "exp_approver",
|
||||||
"fieldtype": "Select",
|
"fieldtype": "Link",
|
||||||
"label": "Approver",
|
"label": "Approver",
|
||||||
"oldfieldname": "exp_approver",
|
"oldfieldname": "exp_approver",
|
||||||
"oldfieldtype": "Select",
|
"oldfieldtype": "Select",
|
||||||
|
"options": "User",
|
||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
"width": "160px"
|
"width": "160px"
|
||||||
},
|
},
|
||||||
@ -188,7 +190,7 @@
|
|||||||
"icon": "icon-money",
|
"icon": "icon-money",
|
||||||
"idx": 1,
|
"idx": 1,
|
||||||
"is_submittable": 1,
|
"is_submittable": 1,
|
||||||
"modified": "2014-06-23 07:55:48.580747",
|
"modified": "2014-08-27 07:08:48.454580",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "HR",
|
"module": "HR",
|
||||||
"name": "Expense Claim",
|
"name": "Expense Claim",
|
||||||
@ -204,6 +206,7 @@
|
|||||||
"read": 1,
|
"read": 1,
|
||||||
"report": 1,
|
"report": 1,
|
||||||
"role": "Employee",
|
"role": "Employee",
|
||||||
|
"user_permission_doctypes": "[\"Company\",\"Employee\",\"Expense Claim\",\"Fiscal Year\"]",
|
||||||
"write": 1
|
"write": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -219,6 +222,7 @@
|
|||||||
"report": 1,
|
"report": 1,
|
||||||
"role": "Expense Approver",
|
"role": "Expense Approver",
|
||||||
"submit": 1,
|
"submit": 1,
|
||||||
|
"user_permission_doctypes": "[\"Expense Claim\",\"User\"]",
|
||||||
"write": 1
|
"write": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -234,6 +238,7 @@
|
|||||||
"report": 1,
|
"report": 1,
|
||||||
"role": "HR User",
|
"role": "HR User",
|
||||||
"submit": 1,
|
"submit": 1,
|
||||||
|
"user_permission_doctypes": "[\"Company\",\"Expense Claim\",\"Fiscal Year\"]",
|
||||||
"write": 1
|
"write": 1
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
10
erpnext/hr/doctype/expense_claim/test_expense_claim.py
Normal file
10
erpnext/hr/doctype/expense_claim/test_expense_claim.py
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors and Contributors
|
||||||
|
# See license.txt
|
||||||
|
|
||||||
|
import frappe
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
test_records = frappe.get_test_records('Expense Claim')
|
||||||
|
|
||||||
|
class TestExpenseClaim(unittest.TestCase):
|
||||||
|
pass
|
1
erpnext/hr/doctype/expense_claim/test_records.json
Normal file
1
erpnext/hr/doctype/expense_claim/test_records.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
[]
|
@ -11,20 +11,13 @@ cur_frm.cscript.onload = function(doc, dt, dn) {
|
|||||||
cur_frm.cscript.calculate_total_days(doc, dt, dn);
|
cur_frm.cscript.calculate_total_days(doc, dt, dn);
|
||||||
}
|
}
|
||||||
|
|
||||||
var leave_approver = doc.leave_approver;
|
cur_frm.set_query("leave_approver", function() {
|
||||||
return cur_frm.call({
|
return {
|
||||||
method: "erpnext.hr.utils.get_leave_approver_list",
|
filters: [["UserRole", "role", "=", "Leave Approver"]]
|
||||||
callback: function(r) {
|
};
|
||||||
cur_frm.set_df_property("leave_approver", "options", $.map(r.message,
|
});
|
||||||
function(user) {
|
|
||||||
return {value: user, label: frappe.user_info(user).fullname};
|
|
||||||
}));
|
|
||||||
|
|
||||||
if(leave_approver) cur_frm.set_value("leave_approver", leave_approver);
|
|
||||||
|
|
||||||
cur_frm.cscript.get_leave_balance(cur_frm.doc);
|
cur_frm.cscript.get_leave_balance(cur_frm.doc);
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.cscript.refresh = function(doc, dt, dn) {
|
cur_frm.cscript.refresh = function(doc, dt, dn) {
|
||||||
|
@ -19,14 +19,15 @@
|
|||||||
{
|
{
|
||||||
"description": "Leave can be approved by users with Role, \"Leave Approver\"",
|
"description": "Leave can be approved by users with Role, \"Leave Approver\"",
|
||||||
"fieldname": "leave_approver",
|
"fieldname": "leave_approver",
|
||||||
"fieldtype": "Select",
|
"fieldtype": "Link",
|
||||||
"label": "Leave Approver",
|
"label": "Leave Approver",
|
||||||
"options": "[Select]",
|
"options": "User",
|
||||||
"permlevel": 0
|
"permlevel": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fieldname": "leave_type",
|
"fieldname": "leave_type",
|
||||||
"fieldtype": "Link",
|
"fieldtype": "Link",
|
||||||
|
"ignore_user_permissions": 1,
|
||||||
"in_filter": 1,
|
"in_filter": 1,
|
||||||
"in_list_view": 1,
|
"in_list_view": 1,
|
||||||
"label": "Leave Type",
|
"label": "Leave Type",
|
||||||
@ -159,6 +160,7 @@
|
|||||||
{
|
{
|
||||||
"fieldname": "letter_head",
|
"fieldname": "letter_head",
|
||||||
"fieldtype": "Link",
|
"fieldtype": "Link",
|
||||||
|
"ignore_user_permissions": 1,
|
||||||
"label": "Letter Head",
|
"label": "Letter Head",
|
||||||
"options": "Letter Head",
|
"options": "Letter Head",
|
||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
@ -181,7 +183,7 @@
|
|||||||
"idx": 1,
|
"idx": 1,
|
||||||
"is_submittable": 1,
|
"is_submittable": 1,
|
||||||
"max_attachments": 3,
|
"max_attachments": 3,
|
||||||
"modified": "2014-06-06 05:06:44.594229",
|
"modified": "2014-08-28 03:32:38.865202",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "HR",
|
"module": "HR",
|
||||||
"name": "Leave Application",
|
"name": "Leave Application",
|
||||||
@ -197,13 +199,17 @@
|
|||||||
"read": 1,
|
"read": 1,
|
||||||
"report": 1,
|
"report": 1,
|
||||||
"role": "Employee",
|
"role": "Employee",
|
||||||
|
"user_permission_doctypes": "[\"Company\",\"Employee\",\"Fiscal Year\",\"Leave Application\"]",
|
||||||
"write": 1
|
"write": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"amend": 1,
|
"amend": 1,
|
||||||
"cancel": 1,
|
"cancel": 1,
|
||||||
"create": 1,
|
"create": 1,
|
||||||
|
"delete": 1,
|
||||||
"email": 1,
|
"email": 1,
|
||||||
|
"export": 1,
|
||||||
|
"import": 0,
|
||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
"print": 1,
|
"print": 1,
|
||||||
"read": 1,
|
"read": 1,
|
||||||
@ -230,6 +236,7 @@
|
|||||||
"create": 1,
|
"create": 1,
|
||||||
"delete": 1,
|
"delete": 1,
|
||||||
"email": 1,
|
"email": 1,
|
||||||
|
"export": 0,
|
||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
"print": 1,
|
"print": 1,
|
||||||
"read": 1,
|
"read": 1,
|
||||||
@ -237,6 +244,7 @@
|
|||||||
"role": "HR User",
|
"role": "HR User",
|
||||||
"set_user_permissions": 1,
|
"set_user_permissions": 1,
|
||||||
"submit": 1,
|
"submit": 1,
|
||||||
|
"user_permission_doctypes": "[\"Company\"]",
|
||||||
"write": 1
|
"write": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -252,6 +260,7 @@
|
|||||||
"report": 1,
|
"report": 1,
|
||||||
"role": "Leave Approver",
|
"role": "Leave Approver",
|
||||||
"submit": 1,
|
"submit": 1,
|
||||||
|
"user_permission_doctypes": "[\"Company\",\"User\"]",
|
||||||
"write": 1
|
"write": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -155,8 +155,7 @@ class LeaveApplication(Document):
|
|||||||
|
|
||||||
def validate_leave_approver(self):
|
def validate_leave_approver(self):
|
||||||
employee = frappe.get_doc("Employee", self.employee)
|
employee = frappe.get_doc("Employee", self.employee)
|
||||||
leave_approvers = [l.leave_approver for l in
|
leave_approvers = [l.leave_approver for l in employee.get("employee_leave_approvers")]
|
||||||
employee.get("employee_leave_approvers")]
|
|
||||||
|
|
||||||
if len(leave_approvers) and self.leave_approver not in leave_approvers:
|
if len(leave_approvers) and self.leave_approver not in leave_approvers:
|
||||||
frappe.throw(_("Leave approver must be one of {0}").format(comma_or(leave_approvers)), InvalidLeaveApproverError)
|
frappe.throw(_("Leave approver must be one of {0}").format(comma_or(leave_approvers)), InvalidLeaveApproverError)
|
||||||
|
@ -91,6 +91,7 @@ class TestLeaveApplication(unittest.TestCase):
|
|||||||
|
|
||||||
from frappe.utils.user import add_role
|
from frappe.utils.user import add_role
|
||||||
add_role("test1@example.com", "HR User")
|
add_role("test1@example.com", "HR User")
|
||||||
|
add_role("test1@example.com", "Leave Approver")
|
||||||
clear_user_permissions_for_doctype("Employee")
|
clear_user_permissions_for_doctype("Employee")
|
||||||
|
|
||||||
frappe.db.set_value("Department", "_Test Department",
|
frappe.db.set_value("Department", "_Test Department",
|
||||||
@ -157,6 +158,7 @@ class TestLeaveApplication(unittest.TestCase):
|
|||||||
|
|
||||||
from frappe.utils.user import add_role
|
from frappe.utils.user import add_role
|
||||||
add_role("test@example.com", "Employee")
|
add_role("test@example.com", "Employee")
|
||||||
|
add_role("test1@example.com", "HR User")
|
||||||
add_role("test1@example.com", "Leave Approver")
|
add_role("test1@example.com", "Leave Approver")
|
||||||
add_role("test2@example.com", "Leave Approver")
|
add_role("test2@example.com", "Leave Approver")
|
||||||
|
|
||||||
|
1
erpnext/hr/doctype/leave_application/test_records.json
Normal file
1
erpnext/hr/doctype/leave_application/test_records.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
[]
|
@ -74,6 +74,7 @@
|
|||||||
{
|
{
|
||||||
"fieldname": "letter_head",
|
"fieldname": "letter_head",
|
||||||
"fieldtype": "Link",
|
"fieldtype": "Link",
|
||||||
|
"ignore_user_permissions": 1,
|
||||||
"label": "Letter Head",
|
"label": "Letter Head",
|
||||||
"options": "Letter Head",
|
"options": "Letter Head",
|
||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
@ -335,7 +336,7 @@
|
|||||||
"icon": "icon-file-text",
|
"icon": "icon-file-text",
|
||||||
"idx": 1,
|
"idx": 1,
|
||||||
"is_submittable": 1,
|
"is_submittable": 1,
|
||||||
"modified": "2014-07-21 07:58:08.033784",
|
"modified": "2014-08-27 06:38:10.006224",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "HR",
|
"module": "HR",
|
||||||
"name": "Salary Slip",
|
"name": "Salary Slip",
|
||||||
@ -353,6 +354,7 @@
|
|||||||
"report": 1,
|
"report": 1,
|
||||||
"role": "HR User",
|
"role": "HR User",
|
||||||
"submit": 1,
|
"submit": 1,
|
||||||
|
"user_permission_doctypes": "[\"Branch\",\"Company\",\"Department\",\"Designation\",\"Fiscal Year\",\"Salary Slip\"]",
|
||||||
"write": 1
|
"write": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -5,24 +5,6 @@ from __future__ import unicode_literals
|
|||||||
import frappe
|
import frappe
|
||||||
from frappe import _
|
from frappe import _
|
||||||
|
|
||||||
@frappe.whitelist()
|
|
||||||
def get_leave_approver_list():
|
|
||||||
roles = [r[0] for r in frappe.db.sql("""select distinct parent from `tabUserRole`
|
|
||||||
where role='Leave Approver'""")]
|
|
||||||
if not roles:
|
|
||||||
frappe.msgprint(_("No Leave Approvers. Please assign 'Leave Approver' Role to atleast one user"))
|
|
||||||
|
|
||||||
return roles
|
|
||||||
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
|
||||||
def get_expense_approver_list():
|
|
||||||
roles = [r[0] for r in frappe.db.sql("""select distinct parent from `tabUserRole`
|
|
||||||
where role='Expense Approver'""")]
|
|
||||||
if not roles:
|
|
||||||
frappe.msgprint(_("No Expense Approvers. Please assign 'Expense Approver' Role to atleast one user"))
|
|
||||||
return roles
|
|
||||||
|
|
||||||
def set_employee_name(doc):
|
def set_employee_name(doc):
|
||||||
if doc.employee and not doc.employee_name:
|
if doc.employee and not doc.employee_name:
|
||||||
doc.employee_name = frappe.db.get_value("Employee", doc.employee, "employee_name")
|
doc.employee_name = frappe.db.get_value("Employee", doc.employee, "employee_name")
|
||||||
|
@ -7,7 +7,7 @@ import frappe, json
|
|||||||
from frappe.utils import cstr, flt, getdate
|
from frappe.utils import cstr, flt, getdate
|
||||||
from frappe import _
|
from frappe import _
|
||||||
from frappe.utils.file_manager import save_file
|
from frappe.utils.file_manager import save_file
|
||||||
from frappe.translate import set_default_language, get_dict, get_lang_dict
|
from frappe.translate import set_default_language, get_dict, get_lang_dict, send_translations
|
||||||
from frappe.country_info import get_country_info
|
from frappe.country_info import get_country_info
|
||||||
from frappe.utils.nestedset import get_root_of
|
from frappe.utils.nestedset import get_root_of
|
||||||
from default_website import website_maker
|
from default_website import website_maker
|
||||||
@ -423,7 +423,7 @@ def load_messages(language):
|
|||||||
frappe.local.lang = lang
|
frappe.local.lang = lang
|
||||||
m = get_dict("page", "setup-wizard")
|
m = get_dict("page", "setup-wizard")
|
||||||
m.update(get_dict("boot"))
|
m.update(get_dict("boot"))
|
||||||
frappe.local.response["__messages"] = m
|
send_translations(m)
|
||||||
return lang
|
return lang
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user