diff --git a/frappe/model/document.py b/frappe/model/document.py index cb36c18b47..5017d342c1 100644 --- a/frappe/model/document.py +++ b/frappe/model/document.py @@ -938,6 +938,14 @@ class Document(BaseDocument): self.docstatus = DocStatus.cancelled() return self.save() + @whitelist.__func__ + def _rename(self, name: str, merge: bool = False, force: bool = False): + """Cancel the document. Sets `docstatus` = 2, then saves. + """ + from frappe.model.rename_doc import rename_doc + self.name = rename_doc(doc=self, new=name, merge=merge, force=force) + self.reload() + @whitelist.__func__ def submit(self): """Submit the document. Sets `docstatus` = 1, then saves.""" @@ -948,6 +956,12 @@ class Document(BaseDocument): """Cancel the document. Sets `docstatus` = 2, then saves.""" return self._cancel() + @whitelist.__func__ + def rename(self, name: str, merge: bool = False, force: bool = False): + """Rename the document to `name`. This transforms the current object. + """ + return self._rename(name=name, merge=merge, force=force) + def delete(self, ignore_permissions=False): """Delete document.""" frappe.delete_doc(self.doctype, self.name, ignore_permissions = ignore_permissions, flags=self.flags)