Skip to content

Commit 7066a6c

Browse files
committed
Merge branch 'develop'
2 parents 94061cd + e4e8765 commit 7066a6c

File tree

7 files changed

+43
-21
lines changed

7 files changed

+43
-21
lines changed

frappe/__version__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
from __future__ import unicode_literals
2-
__version__ = "6.16.1"
2+
__version__ = "6.16.2"

frappe/defaults.py

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,30 @@ def add_user_default(key, value, user=None, parenttype=None):
1919
def get_user_default(key, user=None):
2020
user_defaults = get_defaults(user or frappe.session.user)
2121
d = user_defaults.get(key, None)
22-
if(not d and key != frappe.scrub(key)):
23-
d = user_defaults.get(frappe.scrub(key), None)
24-
return isinstance(d, list) and d[0] or d
22+
23+
if key != frappe.scrub(key):
24+
if d and isinstance(d, (list, tuple)) and len(d)==1:
25+
# Use User Permission value when only when it has a single value
26+
d = d[0]
27+
28+
else:
29+
d = user_defaults.get(frappe.scrub(key), None)
30+
31+
return isinstance(d, (list, tuple)) and d[0] or d
2532

2633
def get_user_default_as_list(key, user=None):
2734
user_defaults = get_defaults(user or frappe.session.user)
2835
d = user_defaults.get(key, None)
29-
if(not d and key != frappe.scrub(key)):
30-
d = user_defaults.get(frappe.scrub(key), None)
31-
return (not isinstance(d, list)) and [d] or d
36+
37+
if key != frappe.scrub(key):
38+
if d and isinstance(d, (list, tuple)) and len(d)==1:
39+
# Use User Permission value when only when it has a single value
40+
d = [d[0]]
41+
42+
else:
43+
d = user_defaults.get(frappe.scrub(key), None)
44+
45+
return (not isinstance(d, (list, tuple))) and [d] or d
3246

3347
def get_user_permissions(user=None):
3448
if not user:

frappe/hooks.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
app_description = "Full stack web framework with Python, Javascript, MariaDB, Redis, Node"
66

77
app_icon = "octicon octicon-circuit-board"
8-
app_version = "6.16.1"
8+
app_version = "6.16.2"
99
app_color = "orange"
1010
source_link = "https://github.com/frappe/frappe"
1111
app_license = "MIT"

frappe/model/create_new.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,7 @@ def get_user_default_value(df, defaults, user_permissions):
7373
return user_permissions[df.options][0]
7474

7575
# 2 - Look in user defaults
76-
user_default = defaults.get(df.options)
77-
if not user_default:
78-
user_default = defaults.get(df.fieldname)
76+
user_default = defaults.get(df.fieldname)
7977
is_allowed_user_default = user_default and (not user_permissions_exist(df, user_permissions)
8078
or (user_default in user_permissions.get(df.options, [])))
8179

@@ -111,7 +109,7 @@ def set_dynamic_default_values(doc, parent_doc, parentfield):
111109
if df.get("default"):
112110
if df.default.startswith(":"):
113111
default_value = get_default_based_on_another_field(df, user_permissions, parent_doc)
114-
if default_value is not None:
112+
if default_value is not None and not doc.get(df.fieldname):
115113
doc[df.fieldname] = default_value
116114

117115
elif df.fieldtype == "Datetime" and df.default.lower() == "now":

frappe/public/js/frappe/defaults.js

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,15 @@ frappe.defaults = {
1313
get_user_defaults: function(key) {
1414
var defaults = frappe.boot.user.defaults;
1515
var d = defaults[key];
16-
if(!d && (key !== frappe.model.scrub(key)))
17-
d = defaults[frappe.model.scrub(key)];
16+
17+
if (key !== frappe.model.scrub(key)) {
18+
if (d && $.isArray(d) && d.length===1) {
19+
// Use User Permission value when only when it has a single value
20+
d = d[0];
21+
} else {
22+
d = defaults[frappe.model.scrub(key)];
23+
}
24+
}
1825
if(!$.isArray(d)) d = [d];
1926
return d;
2027
},
@@ -45,8 +52,14 @@ frappe.defaults = {
4552
get_default: function(key) {
4653
var defaults = frappe.boot.user.defaults;
4754
var value = defaults[key];
48-
if(!value && (key !== frappe.model.scrub(key)))
49-
value = defaults[frappe.model.scrub(key)];
55+
if (key !== frappe.model.scrub(key)) {
56+
if (value && $.isArray(value) && value.length===1) {
57+
value = value[0];
58+
} else {
59+
value = defaults[frappe.model.scrub(key)];
60+
}
61+
}
62+
5063
if(value) {
5164
try {
5265
return JSON.parse(value)

frappe/public/js/frappe/model/create_new.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,7 @@ $.extend(frappe.model, {
9595
}
9696

9797
// 2 - look in user defaults
98-
var user_default = frappe.defaults.get_user_default(df.options);
99-
if (!user_default)
100-
user_default = frappe.defaults.get_user_default(df.fieldname);
101-
98+
var user_default = frappe.defaults.get_user_default(df.fieldname);
10299
var is_allowed_user_default = user_default &&
103100
(!has_user_permissions || user_permissions[df.options].indexOf(user_default)!==-1);
104101

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from setuptools import setup, find_packages
22
from pip.req import parse_requirements
33

4-
version = "6.16.1"
4+
version = "6.16.2"
55
requirements = parse_requirements("requirements.txt", session="")
66

77
setup(

0 commit comments

Comments
 (0)