44 lines
1.6 KiB
Python
44 lines
1.6 KiB
Python
# do not run this patch
|
|
from __future__ import unicode_literals
|
|
def execute():
|
|
import webnotes
|
|
import webnotes.modules
|
|
forbidden = ['%', "'", '"', '#', '*', '?', '`', '(', ')', '<', '>', '-',
|
|
'\\', '/', '.', '&', '!', '@', '$', '^', '+']
|
|
doctype_list = webnotes.conn.sql("SELECT name, module FROM `tabDocType`")
|
|
for doctype, module in doctype_list:
|
|
docfield_list = webnotes.conn.sql("""\
|
|
SELECT name, label, fieldtype FROM `tabDocField`
|
|
WHERE parent = %s AND IFNULL(fieldname, '') = ''""", doctype)
|
|
field_type_count = {}
|
|
count = 0
|
|
for name, label, fieldtype in docfield_list:
|
|
fieldname = None
|
|
if label:
|
|
temp_label = label
|
|
if len(temp_label)==1:
|
|
temp_label = fieldtype + temp_label
|
|
|
|
fieldname = temp_label.lower().replace(' ', '_')
|
|
if "<" in fieldname:
|
|
count = field_type_count.setdefault(fieldtype, 0)
|
|
fieldname = fieldtype.lower().replace(' ', '_') + str(count)
|
|
field_type_count[fieldtype] = count + 1
|
|
elif fieldtype:
|
|
count = field_type_count.setdefault(fieldtype, 0)
|
|
fieldname = fieldtype.lower().replace(' ', '_') + str(count)
|
|
field_type_count[fieldtype] = count + 1
|
|
|
|
if fieldname:
|
|
for f in forbidden: fieldname = fieldname.replace(f, '')
|
|
fieldname = fieldname.replace('__', '_')
|
|
if fieldname.endswith('_'):
|
|
fieldname = fieldname[:-1]
|
|
if fieldname.startswith('_'):
|
|
fieldname = fieldname[1:]
|
|
#print fieldname
|
|
webnotes.conn.sql("""\
|
|
UPDATE `tabDocField` SET fieldname = %s
|
|
WHERE name = %s""", (fieldname, name))
|
|
webnotes.modules.export_doc('DocType', doctype)
|