示例#1
0
def set_user_and_static_default_values(doc):
    user_permissions = get_user_permissions()
    defaults = frappe.defaults.get_defaults()

    for df in doc.meta.get("fields"):
        if df.fieldtype in type_map:
            # user permissions for link options
            doctype_user_permissions = user_permissions.get(df.options, [])
            # Allowed records for the reference doctype (link field)
            allowed_records = get_allowed_docs_for_doctype(
                doctype_user_permissions, df.parent)

            user_default_value = get_user_default_value(
                df, defaults, doctype_user_permissions, allowed_records)
            if user_default_value != None:
                # do not set default if the field on which current field is dependent is not set
                if is_dependent_field_set(df.depends_on, doc):
                    doc.set(df.fieldname, user_default_value)
            else:
                if df.fieldname != doc.meta.title_field:
                    static_default_value = get_static_default_value(
                        df, doctype_user_permissions, allowed_records)
                    if static_default_value != None and is_dependent_field_set(
                            df.depends_on, doc):
                        doc.set(df.fieldname, static_default_value)
示例#2
0
def get_default_based_on_another_field(df, user_permissions, parent_doc):
	# default value based on another document
	from frappe.permissions import get_allowed_docs_for_doctype

	ref_doctype =  df.default[1:]
	ref_fieldname = ref_doctype.lower().replace(" ", "_")
	reference_name = parent_doc.get(ref_fieldname) if parent_doc else frappe.db.get_default(ref_fieldname)
	default_value = frappe.db.get_value(ref_doctype, reference_name, df.fieldname)
	is_allowed_default_value = (not user_permissions_exist(df, user_permissions.get(df.options)) or
		(default_value in get_allowed_docs_for_doctype(user_permissions[df.options], df.parent)))

	# is this allowed as per user permissions
	if is_allowed_default_value:
		return default_value
示例#3
0
def get_default_based_on_another_field(df, user_permissions, parent_doc):
	# default value based on another document
	from frappe.permissions import get_allowed_docs_for_doctype

	ref_doctype =  df.default[1:]
	ref_fieldname = ref_doctype.lower().replace(" ", "_")
	reference_name = parent_doc.get(ref_fieldname) if parent_doc else frappe.db.get_default(ref_fieldname)
	default_value = frappe.db.get_value(ref_doctype, reference_name, df.fieldname)
	is_allowed_default_value = (not user_permissions_exist(df, user_permissions.get(df.options)) or
		(default_value in get_allowed_docs_for_doctype(user_permissions[df.options], df.parent)))

	# is this allowed as per user permissions
	if is_allowed_default_value:
		return default_value
示例#4
0
def set_user_and_static_default_values(doc):
	user_permissions = get_user_permissions()
	defaults = frappe.defaults.get_defaults()

	for df in doc.meta.get("fields"):
		if df.fieldtype in type_map:
			# user permissions for link options
			doctype_user_permissions = user_permissions.get(df.options, [])
			# Allowed records for the reference doctype (link field)
			allowed_records = get_allowed_docs_for_doctype(doctype_user_permissions, df.parent)

			user_default_value = get_user_default_value(df, defaults, doctype_user_permissions, allowed_records)
			if user_default_value is not None:
				doc.set(df.fieldname, user_default_value)

			else:
				if df.fieldname != doc.meta.title_field:
					static_default_value = get_static_default_value(df, doctype_user_permissions, allowed_records)
					if static_default_value is not None:
						doc.set(df.fieldname, static_default_value)
示例#5
0
def set_user_and_static_default_values(doc):
    user_permissions = get_user_permissions()
    defaults = frappe.defaults.get_defaults()

    for df in doc.meta.get("fields"):
        if df.fieldtype in data_fieldtypes:
            # user permissions for link options
            doctype_user_permissions = user_permissions.get(df.options, [])
            # Allowed records for the reference doctype (link field)
            allowed_records = get_allowed_docs_for_doctype(
                doctype_user_permissions, df.parent)

            user_default_value = get_user_default_value(
                df, defaults, doctype_user_permissions, allowed_records)

            if user_default_value is not None:
                doc.set(df.fieldname, user_default_value)
            else:
                if df.fieldname != doc.meta.title_field:
                    static_default_value = get_static_default_value(
                        df, doctype_user_permissions, allowed_records)
                    if static_default_value is not None:
                        doc.set(df.fieldname, static_default_value)