diff --git a/frappe/__version__.py b/frappe/__version__.py index 16e772f7b0..0524f28429 100644 --- a/frappe/__version__.py +++ b/frappe/__version__.py @@ -1,2 +1,2 @@ from __future__ import unicode_literals -__version__ = "6.7.8" +__version__ = "6.7.9" diff --git a/frappe/core/doctype/doctype/doctype.py b/frappe/core/doctype/doctype/doctype.py index 022d1e0251..3a17249ff8 100644 --- a/frappe/core/doctype/doctype/doctype.py +++ b/frappe/core/doctype/doctype/doctype.py @@ -136,8 +136,8 @@ class DocType(Document): def before_rename(self, old, new, merge=False): """Throw exception if merge. DocTypes cannot be merged.""" - if frappe.session.user != "Administrator": - self.throw(_("DocType can only be renamed by Administrator")) + if not self.custom and frappe.session.user != "Administrator": + frappe.throw(_("DocType can only be renamed by Administrator")) self.check_developer_mode() diff --git a/frappe/core/doctype/user/user.json b/frappe/core/doctype/user/user.json index 59ca2849a3..942778e453 100644 --- a/frappe/core/doctype/user/user.json +++ b/frappe/core/doctype/user/user.json @@ -902,9 +902,9 @@ "oldfieldname": "user_type", "oldfieldtype": "Select", "options": "System User\nWebsite User", - "permlevel": 0, + "permlevel": 1, "print_hide": 0, - "read_only": 1, + "read_only": 0, "report_hide": 0, "reqd": 1, "search_index": 0, @@ -924,9 +924,9 @@ "in_list_view": 0, "label": "Login After", "no_copy": 0, - "permlevel": 0, + "permlevel": 1, "print_hide": 0, - "read_only": 1, + "read_only": 0, "report_hide": 0, "reqd": 0, "search_index": 0, @@ -946,9 +946,9 @@ "in_list_view": 0, "label": "Login Before", "no_copy": 0, - "permlevel": 0, + "permlevel": 1, "print_hide": 0, - "read_only": 1, + "read_only": 0, "report_hide": 0, "reqd": 0, "search_index": 0, @@ -968,9 +968,9 @@ "in_list_view": 0, "label": "Restrict IP", "no_copy": 0, - "permlevel": 0, + "permlevel": 1, "print_hide": 0, - "read_only": 1, + "read_only": 0, "report_hide": 0, "reqd": 0, "search_index": 0, @@ -1250,7 +1250,7 @@ "issingle": 0, "istable": 0, "max_attachments": 5, - "modified": "2015-11-03 09:57:27.930248", + "modified": "2015-11-09 00:35:18.570974", "modified_by": "Administrator", "module": "Core", "name": "User", diff --git a/frappe/database.py b/frappe/database.py index c245f415bc..c2db226d5d 100644 --- a/frappe/database.py +++ b/frappe/database.py @@ -344,7 +344,7 @@ class Database: _rhs = " ({0})".format(", ".join(inner_list)) del values[key] - if _operator not in ["=", "!=", ">", ">=", "<", "<=", "like", "in", "not in"]: + if _operator not in ["=", "!=", ">", ">=", "<", "<=", "like", "in", "not in", "not like"]: _operator = "=" if "[" in key: diff --git a/frappe/hooks.py b/frappe/hooks.py index b80b051ca8..a52d2e1c47 100644 --- a/frappe/hooks.py +++ b/frappe/hooks.py @@ -27,7 +27,7 @@ to ERPNext. """ app_icon = "octicon octicon-circuit-board" -app_version = "6.7.8" +app_version = "6.7.9" app_color = "orange" source_link = "https://github.com/frappe/frappe" app_license = "MIT" diff --git a/frappe/model/db_query.py b/frappe/model/db_query.py index 6aceeac6d5..93f42fcb1d 100644 --- a/frappe/model/db_query.py +++ b/frappe/model/db_query.py @@ -248,7 +248,7 @@ class DatabaseQuery(object): value = get_time(f.value).strftime("%H:%M:%S.%f") fallback = "'00:00:00'" - elif f.operator == "like" or (isinstance(f.value, basestring) and + elif f.operator in ("like", "not like") or (isinstance(f.value, basestring) and (not df or df.fieldtype not in ["Float", "Int", "Currency", "Percent", "Check"])): value = "" if f.value==None else f.value fallback = '""' diff --git a/frappe/public/js/frappe/ui/filters/edit_filter.html b/frappe/public/js/frappe/ui/filters/edit_filter.html index 4991115c7f..842da09776 100644 --- a/frappe/public/js/frappe/ui/filters/edit_filter.html +++ b/frappe/public/js/frappe/ui/filters/edit_filter.html @@ -8,6 +8,7 @@ + diff --git a/frappe/public/js/frappe/ui/filters/filters.js b/frappe/public/js/frappe/ui/filters/filters.js index 9cf7a2fa30..eb52d86ec2 100644 --- a/frappe/public/js/frappe/ui/filters/filters.js +++ b/frappe/public/js/frappe/ui/filters/filters.js @@ -150,7 +150,7 @@ frappe.ui.Filter = Class.extend({ // add help for "in" codition me.$w.find('.condition').change(function() { var condition = $(this).val(); - if(in_list(["in", "like", "not in"], condition)) { + if(in_list(["in", "like", "not in", "not like"], condition)) { me.set_field(me.field.df.parent, me.field.df.fieldname, 'Data', condition); if(!me.field.desc_area) { me.field.desc_area = $('
').appendTo(me.field.wrapper); @@ -210,12 +210,12 @@ frappe.ui.Filter = Class.extend({ } var df = copy_dict(me.fieldselect.fields_by_name[doctype][fieldname]); - + // all fields shown in filters if(df.hidden) { df.hidden = 0; } - + this.set_fieldtype(df, fieldtype); // called when condition is changed, @@ -317,7 +317,7 @@ frappe.ui.Filter = Class.extend({ val = (val=='Yes' ? 1 :0); } - if(this.get_condition()==='like') { + if(this.get_condition().indexOf('like', 'not like')!==-1) { // automatically append wildcards if(val) { if(val.slice(0,1) !== "%") { diff --git a/setup.py b/setup.py index e6a66313fa..e90b607941 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ from setuptools import setup, find_packages -version = "6.7.8" +version = "6.7.9" with open("requirements.txt", "r") as f: install_requires = f.readlines()