set fieldname for Section Break and Column Break, only if fieldname is not set, else it breaks existing custom fields. Also Use label for creating fieldname if user has entered label

This commit is contained in:
Sunny 2018-03-14 08:52:20 +05:30
parent 5916f45b66
commit fa46d65754

View file

@ -14,14 +14,17 @@ class CustomField(Document):
self.name = self.dt + "-" + self.fieldname
def set_fieldname(self):
if self.fieldtype in ["Section Break", "Column Break"]:
self.fieldname = self.fieldtype.lower().replace(" ","_") + "_" + str(self.idx)
if not self.fieldname:
if not self.label:
frappe.throw(_("Label is mandatory"))
label = self.label
if not label:
if self.fieldtype in ["Section Break", "Column Break"]:
label = self.fieldtype + "_" + str(self.idx)
else:
frappe.throw(_("Label is mandatory"))
# remove special characters from fieldname
self.fieldname = "".join(filter(lambda x: x.isdigit() or x.isalpha() or '_',
cstr(self.label).lower().replace(' ','_')))
cstr(label).replace(' ','_')))
# fieldnames should be lowercase
self.fieldname = self.fieldname.lower()
@ -130,4 +133,4 @@ def create_custom_fields(custom_fields):
@frappe.whitelist()
def add_custom_field(doctype, df):
df = json.loads(df)
return create_custom_field(doctype, df)
return create_custom_field(doctype, df)