"""
CodeTrack configuration (Python port of config.inc.php).

All customizations live here.  Values mirror the PHP constants
(CT_*) used throughout the original application.
"""

import os

# ---------------------------------------------------------------------------
# Paths / directories
# ---------------------------------------------------------------------------
BASE_DIR = os.path.dirname(os.path.abspath(__file__))

CT_XML_DIRECTORY = os.path.join(BASE_DIR, "xml")
CT_XML_BACKUPS_DIRECTORY = os.path.join(BASE_DIR, "backups")
CT_ATTACHMENTS_DIRECTORY = os.path.join(BASE_DIR, "attachments")

CT_XML_USERS_FILE = os.path.join(CT_XML_DIRECTORY, "users.xml")
CT_XML_PROJECTS_FILE = os.path.join(CT_XML_DIRECTORY, "projects.xml")
CT_XML_BUGS_FILE = os.path.join(CT_XML_DIRECTORY, "bugs.xml")
CT_XML_PERMISSIONS_FILE = os.path.join(CT_XML_DIRECTORY, "permissions.xml")

# ---------------------------------------------------------------------------
# Application identity
# ---------------------------------------------------------------------------
CT_CODE_VERSION = "0.99.3"

# ---------------------------------------------------------------------------
# Session / authentication
# ---------------------------------------------------------------------------
CT_PRIVATE_KEY = "change-me-private-key"
CT_DEFAULT_PAGE_TIMEOUT = 28800  # seconds (8 hours)

# ---------------------------------------------------------------------------
# Debugging
# ---------------------------------------------------------------------------
CT_ENABLE_AD_HOC_DEBUG = True

# ---------------------------------------------------------------------------
# XML parsing flags
# ---------------------------------------------------------------------------
CT_DROP_HISTORY = True
CT_KEEP_HISTORY = False
CT_ASCENDING = "ascending"
CT_DESCENDING = "descending"

# ---------------------------------------------------------------------------
# Locking
# ---------------------------------------------------------------------------
CT_LOCKFILE_TIMEOUT = 30  # seconds
CT_LAST_LINE_SIZE = 1024

# ---------------------------------------------------------------------------
# Data limits
# ---------------------------------------------------------------------------
CT_MAX_DESCR_SIZE = 4000
CT_MAX_UPLOAD_FILE_SIZE = 2000000
CT_MAX_ATTACHMENT_FILENAME_SIZE = 64
CT_MAX_SEARCH_RESULTS = 50

# ---------------------------------------------------------------------------
# Enumerations (comma separated, as in PHP)
# ---------------------------------------------------------------------------
CT_BUG_SEVERITIES = "Fatal,Critical,Major,Minor,Cosmetic,Change Req"
CT_BUG_STATUSES = "Open,Testing,Beta,Closed,Deferred"
CT_CATEGORIES = "General,UI,Data,Logic,Performance"
CT_MAJOR_BROWSERS = "IE 6,IE 5.5,Netscape 6,Netscape 4.7,Opera,Mozilla,Other"
CT_MAJOR_OS = "Windows 2000,Windows XP,Windows 98,Linux,Mac OS X,Other"
CT_DEVELOPER_RESPONSES = "None,Will Fix,Fixed,Not a Bug,Duplicate,Need More Info"
CT_ACCESS_LEVELS = "Admin,Developer,Tester,Guest"
CT_LEGAL_ATTACHMENTS = "gif,jpg,jpeg,png,bmp,txt,doc,xls,pdf,zip,htm,html"

# ---------------------------------------------------------------------------
# Defaults
# ---------------------------------------------------------------------------
CT_DEFAULT_PROJECT = ""
CT_DEFAULT_PROJECT_LEAD = ""
CT_DEFAULT_SEVERITY = "Major"
CT_DEFAULT_BROWSER = "IE 6"
CT_DEFAULT_OS = "Windows 2000"
CT_DEFAULT_DEVELOPER_RESPONSE = "None"
CT_DEFAULT_ACCESS_LEVEL = "Tester"

# ---------------------------------------------------------------------------
# Feature toggles
# ---------------------------------------------------------------------------
CT_ENABLE_EMAIL = False
CT_ENABLE_TOOLTIPS = True
CT_DISPLAY_ADDRESSES = True
CT_GUESTS_CAN_EDIT = False
CT_GUESTS_CAN_CREATE = True
CT_QA_ENFORCE_PRIVS = False
CT_QA_WHO_CAN_CLOSE = "Admin,Developer"
CT_PEDANTIC_VALIDATION = False
CT_USE_EXTRA_MAIL_HEADER = False

# ---------------------------------------------------------------------------
# Email
# ---------------------------------------------------------------------------
CT_RETURN_ADDRESS = "codetrack@localhost"

# ---------------------------------------------------------------------------
# Formatting
# ---------------------------------------------------------------------------
CT_DATE_FORMAT = "%d-%b-%Y %I:%M %p"  # e.g. 12-JUN-2001 12:34 PM
CT_NEWLINE_SYMBOL = "__"
CT_HOME_PAGE_DATA_COLUMNS = (
    "ID,Project,Severity,Priority,Summary,Submitted_By,"
    "Assign_To,Status,Last_Updated"
)
CT_OPTIONAL_UGLY_NN4_HACK = "wrap='virtual'"
CT_MIN_PASSWORD_LENGTH = 6
