Merge branch 'develop'

This commit is contained in:
Anand Doshi 2016-02-18 20:02:07 +05:30
commit 44e55463cd
8 changed files with 36 additions and 15 deletions

View file

@ -1,2 +1,2 @@
from __future__ import unicode_literals
__version__ = "6.23.1"
__version__ = "6.23.2"

View file

@ -35,9 +35,8 @@ class DocType(Document):
- Clear permission table for child tables
- Add `amended_from` and `ameneded_by` if Amendable"""
self.check_developer_mode()
for c in [".", "/", "#", "&", "=", ":", "'", '"']:
if c in self.name:
frappe.throw(_("{0} not allowed in name").format(c))
self.validate_name()
if self.issingle:
self.allow_import = 0
@ -154,6 +153,8 @@ class DocType(Document):
self.check_developer_mode()
self.validate_name(new)
if merge:
frappe.throw(_("DocType can not be merged"))
@ -230,6 +231,15 @@ class DocType(Document):
self.name)
return max_idx and max_idx[0][0] or 0
def validate_name(self, name=None):
if not name:
name = self.name
# a DocType's name should not start with a number or underscore
# and should only contain letters, numbers and underscore
if not re.match("^(?![\W])[^\d_][\w]+$", name, re.UNICODE):
frappe.throw(_("DocType's name should start with a letter and it can only consist of letters, numbers and underscores"))
def validate_fields_for_doctype(doctype):
validate_fields(frappe.get_meta(doctype, cached=False))

View file

@ -5,7 +5,7 @@ app_publisher = "Frappe Technologies Pvt. Ltd."
app_description = "Full stack web framework with Python, Javascript, MariaDB, Redis, Node"
app_icon = "octicon octicon-circuit-board"
app_version = "6.23.1"
app_version = "6.23.2"
app_color = "orange"
source_link = "https://github.com/frappe/frappe"
app_license = "MIT"

View file

@ -375,14 +375,21 @@ class Document(BaseDocument):
d.reset_values_if_no_permlevel_access(has_access_to, high_permlevel_fields)
def get_permlevel_access(self):
user_roles = frappe.get_roles()
has_access_to = []
for perm in self.meta.permissions:
if perm.role in user_roles and perm.permlevel > 0 and perm.write:
if perm.permlevel not in has_access_to:
has_access_to.append(perm.permlevel)
if not hasattr(self, "_has_access_to"):
user_roles = frappe.get_roles()
self._has_access_to = []
for perm in self.meta.permissions:
if perm.role in user_roles and perm.permlevel > 0 and perm.write:
if perm.permlevel not in self._has_access_to:
self._has_access_to.append(perm.permlevel)
return has_access_to
return self._has_access_to
def has_permlevel_access_to(self, fieldname, df=None):
if not df:
df = self.meta.get_field(fieldname)
return df.permlevel in self.get_permlevel_access()
def _set_defaults(self):
if frappe.flags.in_import:

View file

@ -65,7 +65,7 @@ frappe.ui.form.LinkedWith = Class.extend({
// add additional fields to __linked_doctypes
me.frm.__linked_doctypes[dt].add_fields = frappe.listview_settings[dt].add_fields;
}
});
}, /*async*/ false);
}));
},

View file

@ -81,7 +81,7 @@ $.extend(frappe.model, {
return docfield[0];
},
with_doctype: function(doctype, callback) {
with_doctype: function(doctype, callback, async) {
if(locals.DocType[doctype]) {
callback && callback();
} else {
@ -98,6 +98,7 @@ $.extend(frappe.model, {
with_parent: 1,
cached_timestamp: cached_timestamp
},
async: async,
freeze: true,
callback: function(r) {
if(r.exc) {

View file

@ -265,6 +265,9 @@ def is_visible(df, doc):
if df.fieldname in doc.hide_in_print_layout:
return False
if df.permlevel > 0 and not doc.has_permlevel_access_to(df.fieldname, df):
return False
return not doc.is_print_hide(df.fieldname, df)
def has_value(df, doc):

View file

@ -1,7 +1,7 @@
from setuptools import setup, find_packages
from pip.req import parse_requirements
version = "6.23.1"
version = "6.23.2"
requirements = parse_requirements("requirements.txt", session="")
setup(