feat: Add doc rename hook in server script (#25085)

* feat: Add doc rename hook in server script

* feat: Add test case for doc event in server script
This commit is contained in:
Niraj Gautam 2024-02-27 22:07:22 +05:30 committed by GitHub
parent 01d29283f1
commit 911846368f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 37 additions and 5 deletions

View file

@ -49,14 +49,15 @@
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Reference Document Type",
"options": "DocType"
"options": "DocType",
"search_index": 1
},
{
"depends_on": "eval:doc.script_type==='DocType Event'",
"fieldname": "doctype_event",
"fieldtype": "Select",
"label": "DocType Event",
"options": "Before Insert\nBefore Validate\nBefore Save\nAfter Insert\nAfter Save\nBefore Submit\nAfter Submit\nBefore Cancel\nAfter Cancel\nBefore Delete\nAfter Delete\nBefore Save (Submitted Document)\nAfter Save (Submitted Document)\nOn Payment Authorization\nOn Payment Paid\nOn Payment Failed"
"options": "Before Insert\nBefore Validate\nBefore Save\nAfter Insert\nAfter Save\nBefore Rename\nAfter Rename\nBefore Submit\nAfter Submit\nBefore Cancel\nAfter Cancel\nBefore Delete\nAfter Delete\nBefore Save (Submitted Document)\nAfter Save (Submitted Document)\nOn Payment Authorization\nOn Payment Paid\nOn Payment Failed"
},
{
"depends_on": "eval:doc.script_type==='API'",
@ -106,7 +107,8 @@
"fieldname": "module",
"fieldtype": "Link",
"label": "Module (for export)",
"options": "Module Def"
"options": "Module Def",
"search_index": 1
},
{
"depends_on": "eval:doc.script_type==='API'",
@ -149,7 +151,7 @@
"link_fieldname": "server_script"
}
],
"modified": "2024-02-06 07:09:45.478533",
"modified": "2024-02-27 11:44:46.397495",
"modified_by": "Administrator",
"module": "Core",
"name": "Server Script",
@ -173,4 +175,4 @@
"sort_order": "DESC",
"states": [],
"track_changes": 1
}
}

View file

@ -36,6 +36,8 @@ class ServerScript(Document):
"Before Save",
"After Insert",
"After Save",
"Before Rename",
"After Rename",
"Before Submit",
"After Submit",
"Before Cancel",

View file

@ -9,6 +9,8 @@ EVENT_MAP = {
"before_validate": "Before Validate",
"validate": "Before Save",
"on_update": "After Save",
"before_rename": "Before Rename",
"after_rename": "After Rename",
"before_submit": "Before Submit",
"on_submit": "After Submit",
"before_cancel": "Before Cancel",

View file

@ -82,6 +82,26 @@ frappe.db.commit()
disabled=1,
script="""
frappe.db.add_index("Todo", ["color", "date"])
""",
),
dict(
name="test_before_rename",
script_type="DocType Event",
doctype_event="After Rename",
reference_doctype="Role",
script="""
doc.desk_access =0
doc.save()
""",
),
dict(
name="test_after_rename",
script_type="DocType Event",
doctype_event="After Rename",
reference_doctype="Role",
script="""
doc.disabled =1
doc.save()
""",
),
]
@ -121,6 +141,12 @@ class TestServerScript(FrappeTestCase):
frappe.ValidationError, frappe.get_doc(doctype="ToDo", description="validate me").insert
)
role = frappe.get_doc(doctype="Role", role_name="_Test Role 9").insert(ignore_if_duplicate=True)
role.rename("_Test Role 10")
role.reload()
self.assertEqual(role.disabled, 1)
self.assertEqual(role.desk_access, 0)
def test_api(self):
response = requests.post(get_site_url(frappe.local.site) + "/api/method/test_server_script")
self.assertEqual(response.status_code, 200)