[minor] dont show disabled roles in permission manager (#2180)
This commit is contained in:
parent
a0d514a2e6
commit
89a77016a5
4 changed files with 35 additions and 10 deletions
|
|
@ -564,7 +564,7 @@ def new_doc(doctype, parent_doc=None, parentfield=None, as_dict=False):
|
|||
from frappe.model.create_new import get_new_doc
|
||||
return get_new_doc(doctype, parent_doc, parentfield, as_dict=as_dict)
|
||||
|
||||
def set_value(doctype, docname, fieldname, value):
|
||||
def set_value(doctype, docname, fieldname, value=None):
|
||||
"""Set document value. Calls `frappe.client.set_value`"""
|
||||
import frappe.client
|
||||
return frappe.client.set_value(doctype, docname, fieldname, value)
|
||||
|
|
|
|||
|
|
@ -47,22 +47,32 @@ def get_value(doctype, fieldname, filters=None, as_dict=True, debug=False):
|
|||
return frappe.db.get_value(doctype, filters, fieldname, as_dict=as_dict, debug=debug)
|
||||
|
||||
@frappe.whitelist()
|
||||
def set_value(doctype, name, fieldname, value):
|
||||
def set_value(doctype, name, fieldname, value=None):
|
||||
'''Set a value using get_doc, group of values
|
||||
|
||||
:param doctype: DocType of the document
|
||||
:param name: name of the document
|
||||
:param fieldname: fieldname string or JSON / dict with key value pair
|
||||
:param value: value if fieldname is JSON / dict'''
|
||||
|
||||
if fieldname!="idx" and fieldname in frappe.model.default_fields:
|
||||
frappe.throw(_("Cannot edit standard fields"))
|
||||
|
||||
if not value:
|
||||
values = fieldname
|
||||
if isinstance(fieldname, basestring):
|
||||
values = json.loads(fieldname)
|
||||
else:
|
||||
values = {fieldname: value}
|
||||
|
||||
doc = frappe.db.get_value(doctype, name, ["parenttype", "parent"], as_dict=True)
|
||||
if doc and doc.parent and doc.parenttype:
|
||||
doc = frappe.get_doc(doc.parenttype, doc.parent)
|
||||
child = doc.getone({"doctype": doctype, "name": name})
|
||||
child.set(fieldname, value)
|
||||
child.update(values)
|
||||
else:
|
||||
doc = frappe.get_doc(doctype, name)
|
||||
df = doc.meta.get_field(fieldname)
|
||||
if df.fieldtype == "Read Only" or df.read_only:
|
||||
frappe.throw(_("Can not edit Read Only fields"))
|
||||
else:
|
||||
doc.set(fieldname, value)
|
||||
doc.update(values)
|
||||
|
||||
doc.save()
|
||||
|
||||
|
|
|
|||
|
|
@ -18,8 +18,8 @@ def get_roles_and_doctypes():
|
|||
istable=0 and
|
||||
name not in ('DocType') and
|
||||
exists(select * from `tabDocField` where parent=dt.name)""")],
|
||||
"roles": [d[0] for d in frappe.db.sql("""select name from tabRole where name not in
|
||||
('Administrator')""")]
|
||||
"roles": [d[0] for d in frappe.db.sql("""select name from tabRole where
|
||||
name != 'Administrator' and disabled=0""")]
|
||||
}
|
||||
|
||||
@frappe.whitelist()
|
||||
|
|
|
|||
15
frappe/tests/test_client.py
Normal file
15
frappe/tests/test_client.py
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import unittest, frappe
|
||||
|
||||
class TestClient(unittest.TestCase):
|
||||
def test_set_value(self):
|
||||
todo = frappe.get_doc(dict(doctype='ToDo', description='test')).insert()
|
||||
frappe.set_value('ToDo', todo.name, 'description', 'test 1')
|
||||
self.assertEquals(frappe.get_value('ToDo', todo.name, 'description'), 'test 1')
|
||||
|
||||
frappe.set_value('ToDo', todo.name, {'description': 'test 2'})
|
||||
self.assertEquals(frappe.get_value('ToDo', todo.name, 'description'), 'test 2')
|
||||
|
||||
Loading…
Add table
Reference in a new issue