浏览代码

defaults cleanup

version-14
Rushabh Mehta 12 年前
父节点
当前提交
9849cb31e7
共有 10 个文件被更改,包括 47 次插入52 次删除
  1. +24
    -0
      public/js/wn/defaults.js
  2. +1
    -25
      public/js/wn/misc/user.js
  3. +2
    -2
      public/js/wn/ui/toolbar/bookmarks.js
  4. +2
    -2
      public/js/wn/views/reportview.js
  5. +2
    -2
      webnotes/__init__.py
  6. +9
    -15
      webnotes/defaults.py
  7. +1
    -1
      webnotes/profile.py
  8. +4
    -3
      webnotes/tests/test_defaults.py
  9. +1
    -1
      webnotes/widgets/query_builder.py
  10. +1
    -1
      webnotes/widgets/reportview.py

+ 24
- 0
public/js/wn/defaults.js 查看文件

@@ -19,4 +19,28 @@ wn.defaults = {
if(!$.isArray(d)) d = [d]; if(!$.isArray(d)) d = [d];
return d; return d;
}, },
set_default: function(key, value, callback) {
if(typeof value=="string")
value = JSON.stringify(value);
wn.boot.profile.defaults[key] = value;
wn.call({
method: "webnotes.client.set_default",
args: {
key: key,
value: value
},
callback: callback || function(r) {}
});
},
get_default: function(key) {
var value = wn.boot.profile.defaults[key];
if(value) {
try {
return JSON.parse(value)
} catch(e) {
return value;
}
}
},
} }

+ 1
- 25
public/js/wn/misc/user.js 查看文件

@@ -40,33 +40,9 @@ $.extend(wn.user, {
return true; return true;
} }
}, },
set_default: function(key, value, callback) {
if(typeof value=="string")
value = JSON.stringify(value);
wn.boot.profile.defaults[key] = value;
wn.call({
method: "webnotes.client.set_default",
args: {
key: key,
value: value
},
callback: callback || function(r) {}
});
},
get_default: function(key) {
var value = wn.boot.profile.defaults[key];
if(value) {
try {
return JSON.parse(value)
} catch(e) {
return value;
}
}
},
get_desktop_items: function() { get_desktop_items: function() {
// get user sequence preference // get user sequence preference
var user_list = wn.user.get_default("_desktop_items");
var user_list = wn.defaults.get_default("_desktop_items");
if(user_list && user_list.length) if(user_list && user_list.length)
var modules_list = user_list; var modules_list = user_list;




+ 2
- 2
public/js/wn/ui/toolbar/bookmarks.js 查看文件

@@ -20,7 +20,7 @@ wn.ui.toolbar.Bookmarks = Class.extend({
setup: function() { setup: function() {
var me = this; var me = this;


this.bookmarks = wn.user.get_default("_bookmarks") || [];
this.bookmarks = wn.defaults.get_default("_bookmarks") || [];
for(var i=this.bookmarks.length-1; i>=0; i--) { for(var i=this.bookmarks.length-1; i>=0; i--) {
var bookmark = this.bookmarks[i]; var bookmark = this.bookmarks[i];
this.add_item(bookmark.route, bookmark.title) this.add_item(bookmark.route, bookmark.title)
@@ -72,7 +72,7 @@ wn.ui.toolbar.Bookmarks = Class.extend({
return wn.utils.filter_dict(this.bookmarks, {"route": route}).length; return wn.utils.filter_dict(this.bookmarks, {"route": route}).length;
}, },
save: function() { save: function() {
wn.user.set_default("_bookmarks", this.bookmarks);
wn.defaults.set_default("_bookmarks", this.bookmarks);
}, },
remove: function(route) { remove: function(route) {
this.bookmarks = $.map(this.bookmarks, function(d) { this.bookmarks = $.map(this.bookmarks, function(d) {


+ 2
- 2
public/js/wn/views/reportview.js 查看文件

@@ -98,7 +98,7 @@ wn.views.ReportView = wn.ui.Listing.extend({


set_init_columns: function() { set_init_columns: function() {
// pre-select mandatory columns // pre-select mandatory columns
var columns = wn.user.get_default("_list_settings:" + this.doctype);
var columns = wn.defaults.get_default("_list_settings:" + this.doctype);
if(!columns) { if(!columns) {
var columns = [['name', this.doctype],]; var columns = [['name', this.doctype],];
$.each(wn.meta.docfield_list[this.doctype], function(i, df) { $.each(wn.meta.docfield_list[this.doctype], function(i, df) {
@@ -465,7 +465,7 @@ wn.ui.ColumnPicker = Class.extend({
columns.push([$selected.attr('fieldname'), columns.push([$selected.attr('fieldname'),
$selected.attr('table')]); $selected.attr('table')]);
}); });
wn.user.set_default("_list_settings:" + me.doctype, columns);
wn.defaults.set_default("_list_settings:" + me.doctype, columns);
me.list.columns = columns; me.list.columns = columns;
me.list.run(); me.list.run();
}); });


+ 2
- 2
webnotes/__init__.py 查看文件

@@ -258,7 +258,7 @@ def get_roles(user=None, with_standard=True):


def has_permission(doctype, ptype="read", doc=None): def has_permission(doctype, ptype="read", doc=None):
"""check if user has permission""" """check if user has permission"""
from webnotes.defaults import get_user_defaults
from webnotes.defaults import get_user_default_as_list
if session.user=="Administrator": if session.user=="Administrator":
return True return True
if conn.get_value("DocType", doctype, "istable"): if conn.get_value("DocType", doctype, "istable"):
@@ -280,7 +280,7 @@ def has_permission(doctype, ptype="read", doc=None):
keys = [p.match, p.match] keys = [p.match, p.match]
if doc.fields.get(keys[0],"[No Value]") \ if doc.fields.get(keys[0],"[No Value]") \
in get_user_defaults(keys[1], session.user):
in get_user_default_as_list(keys[1]):
return True return True
else: else:
match_failed[keys[0]] = doc.fields.get(keys[0],"[No Value]") match_failed[keys[0]] = doc.fields.get(keys[0],"[No Value]")


+ 9
- 15
webnotes/defaults.py 查看文件

@@ -12,21 +12,18 @@ def add_user_default(key, value, user=None):


def get_user_default(key, user=None): def get_user_default(key, user=None):
d = get_defaults(user or webnotes.session.user).get(key, None) d = get_defaults(user or webnotes.session.user).get(key, None)
if d is None:
d = get_global_default(key)
return isinstance(d, list) and d[0] or d return isinstance(d, list) and d[0] or d


def get_user_defaults(key, user=None):
def get_user_default_as_list(key, user=None):
d = get_defaults(user or webnotes.session.user).get(key, None) d = get_defaults(user or webnotes.session.user).get(key, None)
if d is None:
d = get_global_defaults(key)
return isinstance(d, basestring) and [d] or d return isinstance(d, basestring) and [d] or d
def get_all_user_defaults(user=None):
userd = get_defaults(user or webnotes.session.user)
globald = get_defaults()
def get_defaults(user=None):
userd = get_defaults_for(user or webnotes.session.user)
globald = get_defaults_for()
globald.update(userd) globald.update(userd)
return globald return globald


def clear_user_default(key, user=None): def clear_user_default(key, user=None):
@@ -44,10 +41,6 @@ def get_global_default(key):
d = get_defaults().get(key, None) d = get_defaults().get(key, None)
return isinstance(d, list) and d[0] or d return isinstance(d, list) and d[0] or d
def get_global_defaults(key):
d = get_defaults().get(key, None)
return isinstance(d, basestring) and [d] or d
# Common # Common


def set_default(key, value, parent): def set_default(key, value, parent):
@@ -98,7 +91,7 @@ def clear_default(key=None, value=None, parent=None, name=None):
webnotes.conn.sql("""delete from tabDefaultValue where %s""" % " and ".join(conditions), values) webnotes.conn.sql("""delete from tabDefaultValue where %s""" % " and ".join(conditions), values)
clear_cache() clear_cache()
def get_defaults(parent="Control Panel"):
def get_defaults_for(parent="Control Panel"):
"""get all defaults""" """get all defaults"""
defaults = webnotes.cache().get_value("__defaults:" + parent) defaults = webnotes.cache().get_value("__defaults:" + parent)
if not defaults: if not defaults:
@@ -109,9 +102,10 @@ def get_defaults(parent="Control Panel"):
for d in res: for d in res:
if d.defkey in defaults: if d.defkey in defaults:
# listify # listify
if isinstance(defaults[d.defkey], basestring):
if isinstance(defaults[d.defkey], basestring) and defaults[d.defkey] != d.defvalue:
defaults[d.defkey] = [defaults[d.defkey]] defaults[d.defkey] = [defaults[d.defkey]]
defaults[d.defkey].append(d.defvalue)
if d.defvalue not in defaults[d.defkey]:
defaults[d.defkey].append(d.defvalue)
else: else:
defaults[d.defkey] = d.defvalue defaults[d.defkey] = d.defvalue




+ 1
- 1
webnotes/profile.py 查看文件

@@ -133,7 +133,7 @@ class Profile:


def get_defaults(self): def get_defaults(self):
import webnotes.defaults import webnotes.defaults
self.defaults = webnotes.defaults.get_all_user_defaults(self.name)
self.defaults = webnotes.defaults.get_defaults(self.name)
return self.defaults return self.defaults
# update recent documents # update recent documents


+ 4
- 3
webnotes/tests/test_defaults.py 查看文件

@@ -12,18 +12,19 @@ class TestDefaults(unittest.TestCase):


add_global_default("key1", "value3") add_global_default("key1", "value3")
self.assertEquals(get_global_default("key1"), "value2") self.assertEquals(get_global_default("key1"), "value2")
self.assertEquals(get_global_defaults("key1"), ["value2", "value3"])
self.assertEquals(get_defaults()["key1"], ["value2", "value3"])
self.assertEquals(get_user_default_as_list("key1"), ["value2", "value3"])


def test_user(self): def test_user(self):
set_user_default("key1", "2value1") set_user_default("key1", "2value1")
self.assertEquals(get_user_defaults("key1"), ["2value1"])
self.assertEquals(get_user_default_as_list("key1"), ["2value1"])


set_user_default("key1", "2value2") set_user_default("key1", "2value2")
self.assertEquals(get_user_default("key1"), "2value2") self.assertEquals(get_user_default("key1"), "2value2")


add_user_default("key1", "3value3") add_user_default("key1", "3value3")
self.assertEquals(get_user_default("key1"), "2value2") self.assertEquals(get_user_default("key1"), "2value2")
self.assertEquals(get_user_defaults("key1"), ["2value2", "3value3"])
self.assertEquals(get_user_default_as_list("key1"), ["2value2", "3value3"])
def test_global_if_not_user(self): def test_global_if_not_user(self):
set_global_default("key4", "value4") set_global_default("key4", "value4")


+ 1
- 1
webnotes/widgets/query_builder.py 查看文件

@@ -103,7 +103,7 @@ def getmatchcondition(dt, ur):
for r in res: for r in res:
if r[0] in ur: # role applicable to user if r[0] in ur: # role applicable to user
if r[1]: if r[1]:
for d in webnotes.defaults.get_user_defaults(default_key) or ["** No Match **"]:
for d in webnotes.defaults.get_user_default_as_list(default_key) or ["** No Match **"]:
cond.append('`tab%s`.`%s`="%s"' % (dt, r[1], d)) cond.append('`tab%s`.`%s`="%s"' % (dt, r[1], d))
else: else:
return '' return ''


+ 1
- 1
webnotes/widgets/reportview.py 查看文件

@@ -220,7 +220,7 @@ def build_match_conditions(data):
else: else:
default_key = document_key = d.match default_key = document_key = d.match
for v in webnotes.defaults.get_user_defaults(default_key) or ["** No Match **"]:
for v in webnotes.defaults.get_user_default_as_list(default_key) or ["** No Match **"]:
match_conditions.append('`tab%s`.%s="%s"' % (data['doctype'], match_conditions.append('`tab%s`.%s="%s"' % (data['doctype'],
document_key, v)) document_key, v))


正在加载...
取消
保存