From 899fe860d13b783da18bb51b67f8bc32c84db30a Mon Sep 17 00:00:00 2001 From: Manas Solanki Date: Thu, 24 Aug 2017 15:21:15 +0530 Subject: [PATCH 1/2] sorted the select in permission manager as per translated string --- frappe/core/page/permission_manager/permission_manager.js | 4 ++-- frappe/core/page/permission_manager/permission_manager.py | 7 +++++-- frappe/public/js/frappe/dom.js | 2 +- frappe/public/js/frappe/ui/page.js | 2 +- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/frappe/core/page/permission_manager/permission_manager.js b/frappe/core/page/permission_manager/permission_manager.js index 020db1d16b..b0dc64de97 100644 --- a/frappe/core/page/permission_manager/permission_manager.js +++ b/frappe/core/page/permission_manager/permission_manager.js @@ -46,13 +46,13 @@ frappe.PermissionEngine = Class.extend({ var me = this; this.doctype_select = this.wrapper.page.add_select(__("Document Types"), - [{value: "", label: __("Select Document Type")+"..."}].concat(this.options.doctypes.sort())) + [{value: "", label: __("Select Document Type")+"..."}].concat(this.options.doctypes)) .change(function() { frappe.set_route("permission-manager", $(this).val()); }); this.role_select = this.wrapper.page.add_select(__("Roles"), - [__("Select Role")+"..."].concat(this.options.roles.sort())) + [__("Select Role")+"..."].concat(this.options.roles)) .change(function() { me.refresh(); }); diff --git a/frappe/core/page/permission_manager/permission_manager.py b/frappe/core/page/permission_manager/permission_manager.py index ae3a3971e6..996c7b23d2 100644 --- a/frappe/core/page/permission_manager/permission_manager.py +++ b/frappe/core/page/permission_manager/permission_manager.py @@ -35,9 +35,12 @@ def get_roles_and_doctypes(): "restrict_to_domain": ("in", active_domains) }, fields=["name"]) + doctypes_list = [ {"label":_(d.get("name")), "value":d.get("name")} for d in doctypes] + roles_list = [ {"label":_(d.get("name")), "value":d.get("name")} for d in roles] + return { - "doctypes": [d.get("name") for d in doctypes], - "roles": [d.get("name") for d in roles] + "doctypes": sorted(doctypes_list, key=lambda d: d['label']), + "roles": sorted(roles_list, key=lambda d: d['label']) } @frappe.whitelist() diff --git a/frappe/public/js/frappe/dom.js b/frappe/public/js/frappe/dom.js index 0a3890df29..b4ceac66bd 100644 --- a/frappe/public/js/frappe/dom.js +++ b/frappe/public/js/frappe/dom.js @@ -224,7 +224,7 @@ frappe.get_modal = function(title, content) { (function($) { $.fn.add_options = function(options_list) { // create options - for(var i=0; i Date: Mon, 28 Aug 2017 12:25:35 +0530 Subject: [PATCH 2/2] fix the test case --- frappe/tests/test_domainification.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/frappe/tests/test_domainification.py b/frappe/tests/test_domainification.py index 6586c4b3f4..881bb8bc9b 100644 --- a/frappe/tests/test_domainification.py +++ b/frappe/tests/test_domainification.py @@ -92,8 +92,8 @@ class TestDomainification(unittest.TestCase): # doctype should be hidden in desktop icon, role permissions results = get_roles_and_doctypes() - self.assertTrue("Test Domainification" in results.get("doctypes")) - self.assertTrue("_Test Role" in results.get("roles")) + self.assertTrue("Test Domainification" in [d.get("value") for d in results.get("doctypes")]) + self.assertTrue("_Test Role" in [d.get("value") for d in results.get("roles")]) self.add_active_domain("_Test Domain 2") test_doctype.restrict_to_domain = "_Test Domain 2" @@ -103,14 +103,14 @@ class TestDomainification(unittest.TestCase): test_role.save() results = get_roles_and_doctypes() - self.assertTrue("Test Domainification" in results.get("doctypes")) - self.assertTrue("_Test Role" in results.get("roles")) + self.assertTrue("Test Domainification" in [d.get("value") for d in results.get("doctypes")]) + self.assertTrue("_Test Role" in [d.get("value") for d in results.get("roles")]) self.remove_from_active_domains("_Test Domain 2") results = get_roles_and_doctypes() - self.assertTrue("Test Domainification" not in results.get("doctypes")) - self.assertTrue("_Test Role" not in results.get("roles")) + self.assertTrue("Test Domainification" not in [d.get("value") for d in results.get("doctypes")]) + self.assertTrue("_Test Role" not in [d.get("value") for d in results.get("roles")]) def test_desktop_icon_for_domainification(self): """ desktop icon should be hidden if doctype's restrict to domain is not in active domains """