Merge pull request #16050 from surajshetty3416/fix-document-links
This commit is contained in:
commit
bf742e106d
2 changed files with 15 additions and 7 deletions
|
|
@ -786,9 +786,10 @@ def validate_links_table_fieldnames(meta):
|
|||
|
||||
fieldnames = tuple(field.fieldname for field in meta.fields)
|
||||
for index, link in enumerate(meta.links, 1):
|
||||
link_meta = frappe.get_meta(link.link_doctype)
|
||||
if not link_meta.get_field(link.link_fieldname):
|
||||
message = _("Document Links Row #{0}: Could not find field {1} in {2} DocType").format(index, frappe.bold(link.link_fieldname), frappe.bold(link.link_doctype))
|
||||
if not frappe.get_meta(link.link_doctype).has_field(link.link_fieldname):
|
||||
message = _("Document Links Row #{0}: Could not find field {1} in {2} DocType").format(
|
||||
index, frappe.bold(link.link_fieldname), frappe.bold(link.link_doctype)
|
||||
)
|
||||
frappe.throw(message, InvalidFieldNameError, _("Invalid Fieldname"))
|
||||
|
||||
if not link.is_child_table:
|
||||
|
|
@ -802,8 +803,15 @@ def validate_links_table_fieldnames(meta):
|
|||
message = _("Document Links Row #{0}: Table Fieldname is mandatory for internal links").format(index)
|
||||
frappe.throw(message, frappe.ValidationError, _("Table Fieldname Missing"))
|
||||
|
||||
if link.table_fieldname not in fieldnames:
|
||||
message = _("Document Links Row #{0}: Could not find field {1} in {2} DocType").format(index, frappe.bold(link.table_fieldname), frappe.bold(meta.name))
|
||||
if meta.name == link.parent_doctype:
|
||||
field_exists = link.table_fieldname in fieldnames
|
||||
else:
|
||||
field_exists = frappe.get_meta(link.parent_doctype).has_field(link.table_fieldname)
|
||||
|
||||
if not field_exists:
|
||||
message = _("Document Links Row #{0}: Could not find field {1} in {2} DocType").format(
|
||||
index, frappe.bold(link.table_fieldname), frappe.bold(meta.name)
|
||||
)
|
||||
frappe.throw(message, frappe.ValidationError, _("Invalid Table Fieldname"))
|
||||
|
||||
def validate_fields_for_doctype(doctype):
|
||||
|
|
|
|||
|
|
@ -257,7 +257,7 @@ class TestCustomizeForm(unittest.TestCase):
|
|||
frappe.clear_cache()
|
||||
d = self.get_customize_form("User Group")
|
||||
|
||||
d.append('links', dict(link_doctype='User Group Member', parent_doctype='User',
|
||||
d.append('links', dict(link_doctype='User Group Member', parent_doctype='User Group',
|
||||
link_fieldname='user', table_fieldname='user_group_members', group='Tests', custom=1))
|
||||
|
||||
d.run_method("save_customization")
|
||||
|
|
@ -267,7 +267,7 @@ class TestCustomizeForm(unittest.TestCase):
|
|||
|
||||
# check links exist
|
||||
self.assertTrue([d.name for d in user_group.links if d.link_doctype == 'User Group Member'])
|
||||
self.assertTrue([d.name for d in user_group.links if d.parent_doctype == 'User'])
|
||||
self.assertTrue([d.name for d in user_group.links if d.parent_doctype == 'User Group'])
|
||||
|
||||
# remove the link
|
||||
d = self.get_customize_form("User Group")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue