Remove setting.SEARCH_MULTIMATCH_SEPARATOR, replacing it with SEARCH_MULTIMATCH_REGEX and SEARCH_MULTIMATCH_TEMPLATE. This allows simple yet powerful control over the error output without needing to overload the parser.
This commit is contained in:
parent
ad8d105795
commit
e6f857a536
5 changed files with 37 additions and 19 deletions
|
|
@ -28,7 +28,7 @@ from django.utils import timezone
|
|||
from django.utils.translation import ugettext as _
|
||||
from evennia.utils import logger
|
||||
|
||||
_MULTIMATCH_SEPARATOR = settings.SEARCH_MULTIMATCH_SEPARATOR
|
||||
_MULTIMATCH_TEMPLATE = settings.SEARCH_MULTIMATCH_TEMPLATE
|
||||
_EVENNIA_DIR = settings.EVENNIA_DIR
|
||||
_GAME_DIR = settings.GAME_DIR
|
||||
|
||||
|
|
@ -1712,15 +1712,15 @@ def at_search_result(matches, caller, query="", quiet=False, **kwargs):
|
|||
matches = None
|
||||
elif len(matches) > 1:
|
||||
error = kwargs.get("multimatch_string") or \
|
||||
_("More than one match for '%s' (please narrow target):" % query)
|
||||
_("More than one match for '%s' (please narrow target):\n" % query)
|
||||
for num, result in enumerate(matches):
|
||||
# we need to consider Commands, where .aliases is a list
|
||||
aliases = result.aliases.all() if hasattr(result.aliases, "all") else result.aliases
|
||||
error += "\n %i%s%s%s%s" % (
|
||||
num + 1, _MULTIMATCH_SEPARATOR,
|
||||
result.get_display_name(caller) if hasattr(result, "get_display_name") else query,
|
||||
" [%s]" % ";".join(aliases) if aliases else "",
|
||||
result.get_extra_info(caller))
|
||||
error += _MULTIMATCH_TEMPLATE.format(
|
||||
number=num + 1,
|
||||
name=result.get_display_name(caller) if hasattr(result, "get_display_name") else query,
|
||||
aliases=" [%s]" % ";".join(aliases) if aliases else "",
|
||||
info=result.get_extra_info(caller))
|
||||
matches = None
|
||||
else:
|
||||
# exactly one match
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue