Ejemplo n.º 1
0
def update_user_settings(old, new, link_fields):
    '''
		Update the user settings of all the linked doctypes while renaming.
	'''

    # store the user settings data from the redis to db
    sync_user_settings()

    if not link_fields: return

    # find the user settings for the linked doctypes
    linked_doctypes = set([d.parent for d in link_fields if not d.issingle])
    user_settings_details = frappe.db.sql('''SELECT `user`, `doctype`, `data`
			FROM `__UserSettings`
			WHERE `data` like %s
			AND `doctype` IN ('{doctypes}')'''.format(
        doctypes="', '".join(linked_doctypes)), (old),
                                          as_dict=1)

    # create the dict using the doctype name as key and values as list of the user settings
    from collections import defaultdict
    user_settings_dict = defaultdict(list)
    for user_setting in user_settings_details:
        user_settings_dict[user_setting.doctype].append(user_setting)

    # update the name in linked doctype whose user settings exists
    for fields in link_fields:
        user_settings = user_settings_dict.get(fields.parent)
        if user_settings:
            for user_setting in user_settings:
                update_user_settings_data(user_setting, "value", old, new,
                                          "docfield", fields.fieldname)
        else:
            continue
Ejemplo n.º 2
0
def update_user_settings(old, new, link_fields):
    '''
		Update the user settings of all the linked doctypes while renaming.
	'''

    # store the user settings data from the redis to db
    sync_user_settings()

    if not link_fields: return

    # find the user settings for the linked doctypes
    linked_doctypes = set([d.parent for d in link_fields if not d.issingle])
    user_settings_details = frappe.db.sql(
        '''select user, doctype, data from `__UserSettings` where
			data like "%%%s%%" and doctype in ({0})'''.format(", ".join(
            ["%s"] * len(linked_doctypes))),
        tuple([old] + list(linked_doctypes)),
        as_dict=1)

    # create the dict using the doctype name as key and values as list of the user settings
    from collections import defaultdict
    user_settings_dict = defaultdict(list)
    for user_setting in user_settings_details:
        user_settings_dict[user_setting.doctype].append(user_setting)

    # update the name in linked doctype whose user settings exists
    for fields in link_fields:
        user_settings = user_settings_dict.get(fields.parent)
        if user_settings:
            for user_setting in user_settings:
                update_user_settings_data(user_setting, "value", old, new,
                                          "docfield", fields.fieldname)
        else:
            continue
Ejemplo n.º 3
0
def update_user_settings(old, new, link_fields):
	'''
		Update the user settings of all the linked doctypes while renaming.
	'''

	# store the user settings data from the redis to db
	sync_user_settings()

	if not link_fields: return

	# find the user settings for the linked doctypes
	linked_doctypes = set([d.parent for d in link_fields if not d.issingle])
	user_settings_details = frappe.db.sql('''select user, doctype, data from `__UserSettings` where
			data like "%%%s%%" and doctype in ({0})'''.format(", ".join(["%s"]*len(linked_doctypes))),
		tuple([old] + list(linked_doctypes)), as_dict=1)

	# create the dict using the doctype name as key and values as list of the user settings
	from collections import defaultdict
	user_settings_dict = defaultdict(list)
	for user_setting in user_settings_details:
		user_settings_dict[user_setting.doctype].append(user_setting)

	# update the name in linked doctype whose user settings exists
	for fields in link_fields:
		user_settings = user_settings_dict.get(fields.parent)
		if user_settings:
			for user_setting in user_settings:
				update_user_settings_data(user_setting, "value", old, new, "docfield", fields.fieldname)
		else:
			continue
Ejemplo n.º 4
0
def update_user_settings(doctype, old_fieldname, new_fieldname):
	# store the user settings data from the redis to db
	sync_user_settings()

	user_settings = frappe.db.sql(''' select user, doctype, data from `__UserSettings`
		where doctype=%s and data like "%%%s%%"''', (doctype, old_fieldname), as_dict=1)

	for user_setting in user_settings:
		update_user_settings_data(user_setting, "docfield", old_fieldname, new_fieldname)
Ejemplo n.º 5
0
def update_user_settings(doctype, old_fieldname, new_fieldname):
	# store the user settings data from the redis to db
	sync_user_settings()

	user_settings = frappe.db.sql(''' select user, doctype, data from `__UserSettings`
		where doctype=%s and data like "%%%s%%"''', (doctype, old_fieldname), as_dict=1)

	for user_setting in user_settings:
		update_user_settings_data(user_setting, "docfield", old_fieldname, new_fieldname)