Procházet zdrojové kódy

[minor] added menu to hide section

version-14
Rushabh Mehta před 9 roky
rodič
revize
9053cbd777
5 změnil soubory, kde provedl 51 přidání a 22 odebrání
  1. +2
    -2
      frappe/core/page/modules_setup/modules_setup.py
  2. +17
    -15
      frappe/desk/doctype/desktop_icon/desktop_icon.py
  3. +5
    -5
      frappe/desk/doctype/desktop_icon/test_desktop_icon.py
  4. +6
    -0
      frappe/desk/moduleview.py
  5. +21
    -0
      frappe/desk/page/modules/modules.js

+ 2
- 2
frappe/core/page/modules_setup/modules_setup.py Zobrazit soubor

@@ -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):


+ 17
- 15
frappe/desk/doctype/desktop_icon/desktop_icon.py Zobrazit soubor

@@ -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'])]


+ 5
- 5
frappe/desk/doctype/desktop_icon/test_desktop_icon.py Zobrazit soubor

@@ -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)


+ 6
- 0
frappe/desk/moduleview.py Zobrazit soubor

@@ -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)


+ 21
- 0
frappe/desk/page/modules/modules.js Zobrazit soubor

@@ -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]);


Načítá se…
Zrušit
Uložit