[minor] added menu to hide section
This commit is contained in:
parent
b6262c1639
commit
9053cbd777
5 changed files with 51 additions and 22 deletions
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
from frappe.desk.doctype.desktop_icon.desktop_icon import set_hidden, get_desktop_icons
|
||||
from frappe.desk.doctype.desktop_icon.desktop_icon import set_hidden_list, get_desktop_icons
|
||||
from frappe.utils.user import UserPermissions
|
||||
|
||||
@frappe.whitelist()
|
||||
|
|
@ -12,7 +12,7 @@ def update(hidden_list, user=None):
|
|||
if not user:
|
||||
frappe.only_for('System Manager')
|
||||
|
||||
set_hidden(hidden_list, user)
|
||||
set_hidden_list(hidden_list, user)
|
||||
frappe.msgprint(frappe._('Updated'))
|
||||
|
||||
def get_context(context):
|
||||
|
|
|
|||
|
|
@ -133,38 +133,40 @@ def set_order(new_order):
|
|||
|
||||
clear_desktop_icons_cache()
|
||||
|
||||
def set_hidden(hidden_list, user=None):
|
||||
def set_hidden_list(hidden_list, user=None):
|
||||
'''Sets property `hidden`=1 in **Desktop Icon** for given user.
|
||||
If user is None then it will set global values.
|
||||
It will also set the rest of the icons as shown (`hidden` = 0)'''
|
||||
if isinstance(hidden_list, basestring):
|
||||
hidden_list = json.loads(hidden_list)
|
||||
|
||||
def set_hidden_value(module_name, hidden):
|
||||
if user:
|
||||
icon = get_user_copy(module_name, user)
|
||||
else:
|
||||
icon = frappe.get_doc('Desktop Icon', {'standard': 1, 'module_name': module_name})
|
||||
|
||||
if hidden and icon.custom:
|
||||
frappe.delete_doc(icon.doctype, icon.name, ignore_permissions=True)
|
||||
return
|
||||
|
||||
icon.db_set('hidden', hidden)
|
||||
|
||||
# set as hidden
|
||||
for module_name in hidden_list:
|
||||
set_hidden_value(module_name, 1)
|
||||
set_hidden(module_name, user, 1)
|
||||
|
||||
# set as seen
|
||||
for module_name in list(set(get_all_icons()) - set(hidden_list)):
|
||||
set_hidden_value(module_name, 0)
|
||||
set_hidden(module_name, user, 0)
|
||||
|
||||
if user:
|
||||
clear_desktop_icons_cache()
|
||||
else:
|
||||
frappe.clear_cache()
|
||||
|
||||
def set_hidden(module_name, user, hidden=1):
|
||||
'''Set module hidden property for given user. If user is not specified,
|
||||
hide/unhide it globally'''
|
||||
if user:
|
||||
icon = get_user_copy(module_name, user)
|
||||
else:
|
||||
icon = frappe.get_doc('Desktop Icon', {'standard': 1, 'module_name': module_name})
|
||||
|
||||
if hidden and icon.custom:
|
||||
frappe.delete_doc(icon.doctype, icon.name, ignore_permissions=True)
|
||||
return
|
||||
|
||||
icon.db_set('hidden', hidden)
|
||||
|
||||
def get_all_icons():
|
||||
return [d.module_name for d in frappe.get_all('Desktop Icon',
|
||||
filters={'standard': 1}, fields=['module_name'])]
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import frappe
|
|||
import unittest
|
||||
|
||||
from frappe.desk.doctype.desktop_icon.desktop_icon import (get_desktop_icons, add_user_icon,
|
||||
set_hidden, set_order, clear_desktop_icons_cache)
|
||||
set_hidden_list, set_order, clear_desktop_icons_cache)
|
||||
|
||||
# test_records = frappe.get_test_records('Desktop Icon')
|
||||
|
||||
|
|
@ -40,7 +40,7 @@ class TestDesktopIcon(unittest.TestCase):
|
|||
self.assertEquals(icon.standard, 0)
|
||||
|
||||
def test_hide_desktop_icon(self):
|
||||
set_hidden(["Desk"], 'test@example.com')
|
||||
set_hidden_list(["Desk"], 'test@example.com')
|
||||
|
||||
icon = self.get_icon('Desk')
|
||||
self.assertEquals(icon.hidden, 1)
|
||||
|
|
@ -48,21 +48,21 @@ class TestDesktopIcon(unittest.TestCase):
|
|||
|
||||
def test_remove_custom_desktop_icon_on_hidden(self):
|
||||
self.test_add_desktop_icon()
|
||||
set_hidden(['User'], 'test@example.com')
|
||||
set_hidden_list(['User'], 'test@example.com')
|
||||
|
||||
icon = self.get_icon('User')
|
||||
self.assertEquals(icon, None)
|
||||
|
||||
def test_show_desktop_icon(self):
|
||||
self.test_hide_desktop_icon()
|
||||
set_hidden([], 'test@example.com')
|
||||
set_hidden_list([], 'test@example.com')
|
||||
|
||||
icon = self.get_icon('Desk')
|
||||
self.assertEquals(icon.hidden, 0)
|
||||
self.assertEquals(icon.standard, 0)
|
||||
|
||||
def test_globally_hidden_desktop_icon(self):
|
||||
set_hidden(["Desk"])
|
||||
set_hidden_list(["Desk"])
|
||||
|
||||
icon = self.get_icon('Desk')
|
||||
self.assertEquals(icon.hidden, 1)
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ from __future__ import unicode_literals
|
|||
import frappe
|
||||
from frappe import _
|
||||
from frappe.boot import get_allowed_pages
|
||||
from frappe.desk.doctype.desktop_icon.desktop_icon import set_hidden, clear_desktop_icons_cache
|
||||
|
||||
@frappe.whitelist()
|
||||
def get(module):
|
||||
|
|
@ -18,6 +19,11 @@ def get(module):
|
|||
|
||||
return out
|
||||
|
||||
@frappe.whitelist()
|
||||
def hide_module(module):
|
||||
set_hidden(module, frappe.session.user, 1)
|
||||
clear_desktop_icons_cache()
|
||||
|
||||
def get_data(module):
|
||||
"""Get module data for the module view `desk/#Module/[name]`"""
|
||||
doctype_info = get_doctype_info(module)
|
||||
|
|
|
|||
|
|
@ -20,6 +20,27 @@ frappe.pages['modules'].on_page_load = function(wrapper) {
|
|||
show_section($(link).attr('data-name'));
|
||||
}
|
||||
|
||||
page.add_menu_item(__("Hide this section"), function() {
|
||||
frappe.call({
|
||||
method: "frappe.desk.moduleview.hide_module",
|
||||
args: {
|
||||
module: frappe.get_route()[1]
|
||||
},
|
||||
callback: function() {
|
||||
frappe.set_route('modules', page.wrapper.find('.module-link:first').attr('data-name'));
|
||||
window.location.reload();
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
page.add_menu_item(__("Settings"), function() {
|
||||
frappe.route_options = {
|
||||
"user": user
|
||||
};
|
||||
frappe.set_route("modules_setup");
|
||||
});
|
||||
|
||||
|
||||
var show_section = function(module_name) {
|
||||
if(module_name in page.section_data) {
|
||||
render_section(page.section_data[module_name]);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue