Source code for evennia.contrib.base_systems.ingame_reports.menu

"""
The report-management menu module.
"""

from django.conf import settings

from evennia.comms.models import Msg
from evennia.utils import logger
from evennia.utils.utils import crop, datetime_format, is_iter, iter_to_str

# the number of reports displayed on each page
_REPORTS_PER_PAGE = 10

_REPORT_STATUS_TAGS = ("closed", "in progress")
if hasattr(settings, "INGAME_REPORT_STATUS_TAGS"):
    if is_iter(settings.INGAME_REPORT_STATUS_TAGS):
        _REPORT_STATUS_TAGS = settings.INGAME_REPORT_STATUS_TAGS
    else:
        logger.log_warn(
            "The 'INGAME_REPORT_STATUS_TAGS' setting must be an iterable of strings; falling back to defaults."
        )








def _report_toggle_tag(caller, raw_string, report, tag, **kwargs):
    """goto callable to toggle a status tag on or off"""
    if tag in report.tags.all():
        report.tags.remove(tag)
    else:
        report.tags.add(tag)
    return ("menunode_manage_report", {"report": report})