[fixes] tests and enhancement to frappe.make_property_setter
This commit is contained in:
parent
a612e6e0b5
commit
298f013c66
3 changed files with 42 additions and 22 deletions
|
|
@ -854,21 +854,40 @@ def call(fn, *args, **kwargs):
|
|||
return fn(*args, **newargs)
|
||||
|
||||
def make_property_setter(args, ignore_validate=False, validate_fields_for_doctype=True):
|
||||
"""Create a new **Property Setter** (for overriding DocType and DocField properties)."""
|
||||
"""Create a new **Property Setter** (for overriding DocType and DocField properties).
|
||||
|
||||
If doctype is not specified, it will create a property setter for all fields with the
|
||||
given fieldname"""
|
||||
args = _dict(args)
|
||||
ps = get_doc({
|
||||
'doctype': "Property Setter",
|
||||
'doctype_or_field': args.doctype_or_field or "DocField",
|
||||
'doc_type': args.doctype,
|
||||
'field_name': args.fieldname,
|
||||
'property': args.property,
|
||||
'value': args.value,
|
||||
'property_type': args.property_type or "Data",
|
||||
'__islocal': 1
|
||||
})
|
||||
ps.flags.ignore_validate = ignore_validate
|
||||
ps.flags.validate_fields_for_doctype = validate_fields_for_doctype
|
||||
ps.insert()
|
||||
if not args.doctype_or_field:
|
||||
args.doctype_or_field = 'DocField'
|
||||
if not args.property_type:
|
||||
args.property_type = db.get_value('DocField',
|
||||
{'parent': 'DocField', 'fieldname': args.property}, 'fieldtype') or 'Data'
|
||||
|
||||
if not args.doctype:
|
||||
doctype_list = db.sql_list('select distinct parent from tabDocField where fieldname=%s', args.fieldname)
|
||||
else:
|
||||
doctype_list = [args.doctype]
|
||||
|
||||
for doctype in doctype_list:
|
||||
if not args.property_type:
|
||||
args.property_type = db.get_value('DocField',
|
||||
{'parent': doctype, 'fieldname': args.fieldname}, 'fieldtype') or 'Data'
|
||||
|
||||
ps = get_doc({
|
||||
'doctype': "Property Setter",
|
||||
'doctype_or_field': args.doctype_or_field,
|
||||
'doc_type': doctype,
|
||||
'field_name': args.fieldname,
|
||||
'property': args.property,
|
||||
'value': args.value,
|
||||
'property_type': args.property_type or "Data",
|
||||
'__islocal': 1
|
||||
})
|
||||
ps.flags.ignore_validate = ignore_validate
|
||||
ps.flags.validate_fields_for_doctype = validate_fields_for_doctype
|
||||
ps.insert()
|
||||
|
||||
def import_doc(path, ignore_links=False, ignore_insert=False, insert=False):
|
||||
"""Import a file using Data Import Tool."""
|
||||
|
|
|
|||
|
|
@ -80,15 +80,16 @@ def create_custom_field_if_values_exist(doctype, df):
|
|||
|
||||
|
||||
def create_custom_field(doctype, df):
|
||||
df = frappe._dict(df)
|
||||
if not frappe.db.get_value("Custom Field", {"dt": doctype, "fieldname": df.fieldname}):
|
||||
frappe.get_doc({
|
||||
"doctype":"Custom Field",
|
||||
"dt": doctype,
|
||||
"permlevel": df.get("permlevel") or 0,
|
||||
"label": df.get("label"),
|
||||
"fieldname": df.get("fieldname"),
|
||||
"fieldtype": df.get("fieldtype"),
|
||||
"options": df.get("options"),
|
||||
"insert_after": df.get("insert_after"),
|
||||
"print_hide": df.get("print_hide")
|
||||
"permlevel": df.permlevel or 0,
|
||||
"label": df.label,
|
||||
"fieldname": df.fieldname or df.label.lower().replace(' ', '_'),
|
||||
"fieldtype": df.fieldtype,
|
||||
"options": df.options,
|
||||
"insert_after": df.insert_after,
|
||||
"print_hide": df.print_hide
|
||||
}).insert()
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ class TestDesktopIcon(unittest.TestCase):
|
|||
|
||||
def test_add_desktop_icon(self):
|
||||
self.assertEquals(self.get_icon('User'), None)
|
||||
add_user_icon('User', '#List/User', 'link', 'User')
|
||||
add_user_icon('User')
|
||||
|
||||
icon = self.get_icon('User')
|
||||
self.assertEquals(icon.custom, 1)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue