seitime-frappe/frappe/desk/utils.py
2021-02-02 17:39:05 +05:30

23 lines
No EOL
676 B
Python

# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors
# MIT License. See license.txt
import frappe
def validate_route_conflict(doctype, name):
'''
Raises exception if name clashes with routes from other documents for /app routing
'''
all_names = []
for _doctype in ['Page', 'Workspace', 'DocType']:
try:
all_names.extend([slug(d) for d in frappe.get_all(_doctype, pluck='name') if (doctype != _doctype and d != name)])
except frappe.db.TableMissingError:
pass
if slug(name) in all_names:
frappe.msgprint(frappe._('Name already taken, please set a new name'))
raise frappe.NameError
def slug(name):
return name.lower().replace(' ', '-')