Merge branch 'develop'
This commit is contained in:
commit
44e55463cd
8 changed files with 36 additions and 15 deletions
|
|
@ -1,2 +1,2 @@
|
|||
from __future__ import unicode_literals
|
||||
__version__ = "6.23.1"
|
||||
__version__ = "6.23.2"
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}));
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
|
|
|
|||
2
setup.py
2
setup.py
|
|
@ -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(
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue