The license.txt file has been replaced with LICENSE for quite a while now. INAL but it didn't seem accurate to say "hey, checkout license.txt although there's no such file". Apart from this, there were inconsistencies in the headers altogether...this change brings consistency.
53 lines
No EOL
1.5 KiB
Python
53 lines
No EOL
1.5 KiB
Python
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
|
# License: MIT. See LICENSE
|
|
|
|
"""docfield utililtes"""
|
|
|
|
import frappe
|
|
|
|
def rename(doctype, fieldname, newname):
|
|
"""rename docfield"""
|
|
df = frappe.db.sql("""select * from tabDocField where parent=%s and fieldname=%s""",
|
|
(doctype, fieldname), as_dict=1)
|
|
if not df:
|
|
return
|
|
|
|
df = df[0]
|
|
|
|
if frappe.db.get_value('DocType', doctype, 'issingle'):
|
|
update_single(df, newname)
|
|
else:
|
|
update_table(df, newname)
|
|
update_parent_field(df, newname)
|
|
|
|
def update_single(f, new):
|
|
"""update in tabSingles"""
|
|
frappe.db.begin()
|
|
frappe.db.sql("""update tabSingles set field=%s where doctype=%s and field=%s""",
|
|
(new, f['parent'], f['fieldname']))
|
|
frappe.db.commit()
|
|
|
|
def update_table(f, new):
|
|
"""update table"""
|
|
query = get_change_column_query(f, new)
|
|
if query:
|
|
frappe.db.sql(query)
|
|
|
|
def update_parent_field(f, new):
|
|
"""update 'parentfield' in tables"""
|
|
if f['fieldtype'] in frappe.model.table_fields:
|
|
frappe.db.begin()
|
|
frappe.db.sql("""update `tab%s` set parentfield=%s where parentfield=%s""" \
|
|
% (f['options'], '%s', '%s'), (new, f['fieldname']))
|
|
frappe.db.commit()
|
|
|
|
def get_change_column_query(f, new):
|
|
"""generate change fieldname query"""
|
|
desc = frappe.db.sql("desc `tab%s`" % f['parent'])
|
|
for d in desc:
|
|
if d[0]== f['fieldname']:
|
|
return 'alter table `tab%s` change `%s` `%s` %s' % \
|
|
(f['parent'], f['fieldname'], new, d[1])
|
|
|
|
def supports_translation(fieldtype):
|
|
return fieldtype in ["Data", "Select", "Text", "Small Text", "Text Editor"] |