23 lines
No EOL
676 B
Python
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(' ', '-') |