mirror of
https://github.com/django-helpdesk/django-helpdesk.git
synced 2025-08-18 19:58:32 +02:00
run ruff formatter
This commit is contained in:
@@ -14,11 +14,11 @@ import sys
|
||||
|
||||
|
||||
DEFAULT_USER_SETTINGS = {
|
||||
'login_view_ticketlist': True,
|
||||
'email_on_ticket_change': True,
|
||||
'email_on_ticket_assign': True,
|
||||
'tickets_per_page': 25,
|
||||
'use_email_as_submitter': True,
|
||||
"login_view_ticketlist": True,
|
||||
"email_on_ticket_change": True,
|
||||
"email_on_ticket_assign": True,
|
||||
"tickets_per_page": 25,
|
||||
"use_email_as_submitter": True,
|
||||
}
|
||||
|
||||
try:
|
||||
@@ -33,8 +33,8 @@ HAS_TAG_SUPPORT = False
|
||||
USE_TZ: bool = True
|
||||
|
||||
# check for secure cookie support
|
||||
if os.environ.get('SECURE_PROXY_SSL_HEADER'):
|
||||
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
|
||||
if os.environ.get("SECURE_PROXY_SSL_HEADER"):
|
||||
SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https")
|
||||
|
||||
SESSION_COOKIE_SECURE = True
|
||||
CSRF_COOKIE_SECURE = True
|
||||
@@ -44,130 +44,168 @@ if os.environ.get('SECURE_PROXY_SSL_HEADER'):
|
||||
##########################################
|
||||
|
||||
# redirect to login page instead of the default homepage when users visits "/"?
|
||||
HELPDESK_REDIRECT_TO_LOGIN_BY_DEFAULT = getattr(settings,
|
||||
'HELPDESK_REDIRECT_TO_LOGIN_BY_DEFAULT',
|
||||
False)
|
||||
HELPDESK_REDIRECT_TO_LOGIN_BY_DEFAULT = getattr(
|
||||
settings, "HELPDESK_REDIRECT_TO_LOGIN_BY_DEFAULT", False
|
||||
)
|
||||
|
||||
HELPDESK_PUBLIC_VIEW_PROTECTOR = getattr(settings,
|
||||
'HELPDESK_PUBLIC_VIEW_PROTECTOR',
|
||||
lambda _: None)
|
||||
HELPDESK_PUBLIC_VIEW_PROTECTOR = getattr(
|
||||
settings, "HELPDESK_PUBLIC_VIEW_PROTECTOR", lambda _: None
|
||||
)
|
||||
|
||||
HELPDESK_STAFF_VIEW_PROTECTOR = getattr(settings,
|
||||
'HELPDESK_STAFF_VIEW_PROTECTOR',
|
||||
lambda _: None)
|
||||
HELPDESK_STAFF_VIEW_PROTECTOR = getattr(
|
||||
settings, "HELPDESK_STAFF_VIEW_PROTECTOR", lambda _: None
|
||||
)
|
||||
|
||||
# Enable ticket and Email attachments
|
||||
#
|
||||
# Caution! Set this to False, unless you have secured access to
|
||||
# the uploaded files. Otherwise anyone on the Internet will be
|
||||
# able to download your ticket attachments.
|
||||
HELPDESK_ENABLE_ATTACHMENTS = getattr(settings,
|
||||
'HELPDESK_ENABLE_ATTACHMENTS',
|
||||
True)
|
||||
HELPDESK_ENABLE_ATTACHMENTS = getattr(settings, "HELPDESK_ENABLE_ATTACHMENTS", True)
|
||||
|
||||
# Enable the Dependencies field on ticket view
|
||||
HELPDESK_ENABLE_DEPENDENCIES_ON_TICKET = getattr(settings,
|
||||
'HELPDESK_ENABLE_DEPENDENCIES_ON_TICKET',
|
||||
True)
|
||||
HELPDESK_ENABLE_DEPENDENCIES_ON_TICKET = getattr(
|
||||
settings, "HELPDESK_ENABLE_DEPENDENCIES_ON_TICKET", True
|
||||
)
|
||||
|
||||
# Enable the Time spent on field on ticket view
|
||||
HELPDESK_ENABLE_TIME_SPENT_ON_TICKET = getattr(settings,
|
||||
'HELPDESK_ENABLE_TIME_SPENT_ON_TICKET',
|
||||
True)
|
||||
HELPDESK_ENABLE_TIME_SPENT_ON_TICKET = getattr(
|
||||
settings, "HELPDESK_ENABLE_TIME_SPENT_ON_TICKET", True
|
||||
)
|
||||
|
||||
# raises a 404 to anon users. It's like it was invisible
|
||||
HELPDESK_ANON_ACCESS_RAISES_404 = getattr(settings,
|
||||
'HELPDESK_ANON_ACCESS_RAISES_404',
|
||||
False)
|
||||
HELPDESK_ANON_ACCESS_RAISES_404 = getattr(
|
||||
settings, "HELPDESK_ANON_ACCESS_RAISES_404", False
|
||||
)
|
||||
|
||||
# Disable Timeline on ticket list
|
||||
HELPDESK_TICKETS_TIMELINE_ENABLED = getattr(
|
||||
settings, 'HELPDESK_TICKETS_TIMELINE_ENABLED', True)
|
||||
settings, "HELPDESK_TICKETS_TIMELINE_ENABLED", True
|
||||
)
|
||||
|
||||
# show extended navigation by default, to all users, irrespective of staff
|
||||
# status?
|
||||
HELPDESK_NAVIGATION_ENABLED = getattr(
|
||||
settings, 'HELPDESK_NAVIGATION_ENABLED', False)
|
||||
HELPDESK_NAVIGATION_ENABLED = getattr(settings, "HELPDESK_NAVIGATION_ENABLED", False)
|
||||
|
||||
# use public CDNs to serve jquery and other javascript by default?
|
||||
# otherwise, use built-in static copy
|
||||
HELPDESK_USE_CDN = getattr(settings, 'HELPDESK_USE_CDN', False)
|
||||
HELPDESK_USE_CDN = getattr(settings, "HELPDESK_USE_CDN", False)
|
||||
|
||||
# show dropdown list of languages that ticket comments can be translated into?
|
||||
HELPDESK_TRANSLATE_TICKET_COMMENTS = getattr(settings,
|
||||
'HELPDESK_TRANSLATE_TICKET_COMMENTS',
|
||||
False)
|
||||
HELPDESK_TRANSLATE_TICKET_COMMENTS = getattr(
|
||||
settings, "HELPDESK_TRANSLATE_TICKET_COMMENTS", False
|
||||
)
|
||||
|
||||
# list of languages to offer. if set to false,
|
||||
# all default google translate languages will be shown.
|
||||
HELPDESK_TRANSLATE_TICKET_COMMENTS_LANG = getattr(settings,
|
||||
'HELPDESK_TRANSLATE_TICKET_COMMENTS_LANG',
|
||||
["en", "de", "es", "fr", "it", "ru"])
|
||||
HELPDESK_TRANSLATE_TICKET_COMMENTS_LANG = getattr(
|
||||
settings,
|
||||
"HELPDESK_TRANSLATE_TICKET_COMMENTS_LANG",
|
||||
["en", "de", "es", "fr", "it", "ru"],
|
||||
)
|
||||
|
||||
# show link to 'change password' on 'User Settings' page?
|
||||
HELPDESK_SHOW_CHANGE_PASSWORD = getattr(
|
||||
settings, 'HELPDESK_SHOW_CHANGE_PASSWORD', False)
|
||||
settings, "HELPDESK_SHOW_CHANGE_PASSWORD", False
|
||||
)
|
||||
|
||||
# allow user to override default layout for 'followups' - work in progress.
|
||||
HELPDESK_FOLLOWUP_MOD = getattr(settings, 'HELPDESK_FOLLOWUP_MOD', False)
|
||||
HELPDESK_FOLLOWUP_MOD = getattr(settings, "HELPDESK_FOLLOWUP_MOD", False)
|
||||
|
||||
# auto-subscribe user to ticket if (s)he responds to a ticket?
|
||||
HELPDESK_AUTO_SUBSCRIBE_ON_TICKET_RESPONSE = getattr(settings,
|
||||
'HELPDESK_AUTO_SUBSCRIBE_ON_TICKET_RESPONSE',
|
||||
False)
|
||||
HELPDESK_AUTO_SUBSCRIBE_ON_TICKET_RESPONSE = getattr(
|
||||
settings, "HELPDESK_AUTO_SUBSCRIBE_ON_TICKET_RESPONSE", False
|
||||
)
|
||||
|
||||
# URL schemes that are allowed within links
|
||||
ALLOWED_URL_SCHEMES = getattr(settings, 'ALLOWED_URL_SCHEMES', (
|
||||
'file', 'ftp', 'ftps', 'http', 'https', 'irc', 'mailto', 'sftp', 'ssh', 'tel', 'telnet', 'tftp', 'vnc', 'xmpp',
|
||||
))
|
||||
ALLOWED_URL_SCHEMES = getattr(
|
||||
settings,
|
||||
"ALLOWED_URL_SCHEMES",
|
||||
(
|
||||
"file",
|
||||
"ftp",
|
||||
"ftps",
|
||||
"http",
|
||||
"https",
|
||||
"irc",
|
||||
"mailto",
|
||||
"sftp",
|
||||
"ssh",
|
||||
"tel",
|
||||
"telnet",
|
||||
"tftp",
|
||||
"vnc",
|
||||
"xmpp",
|
||||
),
|
||||
)
|
||||
|
||||
# Ticket status choices
|
||||
OPEN_STATUS = getattr(settings, 'HELPDESK_TICKET_OPEN_STATUS', 1)
|
||||
REOPENED_STATUS = getattr(settings, 'HELPDESK_TICKET_REOPENED_STATUS', 2)
|
||||
RESOLVED_STATUS = getattr(settings, 'HELPDESK_TICKET_RESOLVED_STATUS', 3)
|
||||
CLOSED_STATUS = getattr(settings, 'HELPDESK_TICKET_CLOSED_STATUS', 4)
|
||||
DUPLICATE_STATUS = getattr(settings, 'HELPDESK_TICKET_DUPLICATE_STATUS', 5)
|
||||
OPEN_STATUS = getattr(settings, "HELPDESK_TICKET_OPEN_STATUS", 1)
|
||||
REOPENED_STATUS = getattr(settings, "HELPDESK_TICKET_REOPENED_STATUS", 2)
|
||||
RESOLVED_STATUS = getattr(settings, "HELPDESK_TICKET_RESOLVED_STATUS", 3)
|
||||
CLOSED_STATUS = getattr(settings, "HELPDESK_TICKET_CLOSED_STATUS", 4)
|
||||
DUPLICATE_STATUS = getattr(settings, "HELPDESK_TICKET_DUPLICATE_STATUS", 5)
|
||||
|
||||
DEFAULT_TICKET_STATUS_CHOICES = (
|
||||
(OPEN_STATUS, _('Open')),
|
||||
(REOPENED_STATUS, _('Reopened')),
|
||||
(RESOLVED_STATUS, _('Resolved')),
|
||||
(CLOSED_STATUS, _('Closed')),
|
||||
(DUPLICATE_STATUS, _('Duplicate')),
|
||||
(OPEN_STATUS, _("Open")),
|
||||
(REOPENED_STATUS, _("Reopened")),
|
||||
(RESOLVED_STATUS, _("Resolved")),
|
||||
(CLOSED_STATUS, _("Closed")),
|
||||
(DUPLICATE_STATUS, _("Duplicate")),
|
||||
)
|
||||
TICKET_STATUS_CHOICES = getattr(
|
||||
settings, "HELPDESK_TICKET_STATUS_CHOICES", DEFAULT_TICKET_STATUS_CHOICES
|
||||
)
|
||||
TICKET_STATUS_CHOICES = getattr(settings,
|
||||
'HELPDESK_TICKET_STATUS_CHOICES',
|
||||
DEFAULT_TICKET_STATUS_CHOICES)
|
||||
|
||||
# List of status choices considered as "open"
|
||||
DEFAULT_TICKET_OPEN_STATUSES = (OPEN_STATUS, REOPENED_STATUS)
|
||||
TICKET_OPEN_STATUSES = getattr(settings,
|
||||
'HELPDESK_TICKET_OPEN_STATUSES',
|
||||
DEFAULT_TICKET_OPEN_STATUSES)
|
||||
DEFAULT_TICKET_OPEN_STATUSES = (OPEN_STATUS, REOPENED_STATUS)
|
||||
TICKET_OPEN_STATUSES = getattr(
|
||||
settings, "HELPDESK_TICKET_OPEN_STATUSES", DEFAULT_TICKET_OPEN_STATUSES
|
||||
)
|
||||
|
||||
# New status list choices depending on current ticket status
|
||||
DEFAULT_TICKET_STATUS_CHOICES_FLOW = {
|
||||
OPEN_STATUS: (OPEN_STATUS, RESOLVED_STATUS, CLOSED_STATUS, DUPLICATE_STATUS,),
|
||||
REOPENED_STATUS: (REOPENED_STATUS, RESOLVED_STATUS, CLOSED_STATUS, DUPLICATE_STATUS,),
|
||||
RESOLVED_STATUS: (REOPENED_STATUS, RESOLVED_STATUS, CLOSED_STATUS,),
|
||||
CLOSED_STATUS: (REOPENED_STATUS, CLOSED_STATUS,),
|
||||
DUPLICATE_STATUS: (REOPENED_STATUS, DUPLICATE_STATUS,),
|
||||
OPEN_STATUS: (
|
||||
OPEN_STATUS,
|
||||
RESOLVED_STATUS,
|
||||
CLOSED_STATUS,
|
||||
DUPLICATE_STATUS,
|
||||
),
|
||||
REOPENED_STATUS: (
|
||||
REOPENED_STATUS,
|
||||
RESOLVED_STATUS,
|
||||
CLOSED_STATUS,
|
||||
DUPLICATE_STATUS,
|
||||
),
|
||||
RESOLVED_STATUS: (
|
||||
REOPENED_STATUS,
|
||||
RESOLVED_STATUS,
|
||||
CLOSED_STATUS,
|
||||
),
|
||||
CLOSED_STATUS: (
|
||||
REOPENED_STATUS,
|
||||
CLOSED_STATUS,
|
||||
),
|
||||
DUPLICATE_STATUS: (
|
||||
REOPENED_STATUS,
|
||||
DUPLICATE_STATUS,
|
||||
),
|
||||
}
|
||||
TICKET_STATUS_CHOICES_FLOW = getattr(settings,
|
||||
'HELPDESK_TICKET_STATUS_CHOICES_FLOW',
|
||||
DEFAULT_TICKET_STATUS_CHOICES_FLOW)
|
||||
TICKET_STATUS_CHOICES_FLOW = getattr(
|
||||
settings, "HELPDESK_TICKET_STATUS_CHOICES_FLOW", DEFAULT_TICKET_STATUS_CHOICES_FLOW
|
||||
)
|
||||
|
||||
# Ticket priority choices
|
||||
DEFAULT_TICKET_PRIORITY_CHOICES = (
|
||||
(1, _('1. Critical')),
|
||||
(2, _('2. High')),
|
||||
(3, _('3. Normal')),
|
||||
(4, _('4. Low')),
|
||||
(5, _('5. Very Low')),
|
||||
(1, _("1. Critical")),
|
||||
(2, _("2. High")),
|
||||
(3, _("3. Normal")),
|
||||
(4, _("4. Low")),
|
||||
(5, _("5. Very Low")),
|
||||
)
|
||||
TICKET_PRIORITY_CHOICES = getattr(
|
||||
settings, "HELPDESK_TICKET_PRIORITY_CHOICES", DEFAULT_TICKET_PRIORITY_CHOICES
|
||||
)
|
||||
TICKET_PRIORITY_CHOICES = getattr(settings,
|
||||
'HELPDESK_TICKET_PRIORITY_CHOICES',
|
||||
DEFAULT_TICKET_PRIORITY_CHOICES)
|
||||
|
||||
|
||||
#########################
|
||||
@@ -175,59 +213,55 @@ TICKET_PRIORITY_CHOICES = getattr(settings,
|
||||
#########################
|
||||
|
||||
# Follow-ups automatic time_spent calculation
|
||||
FOLLOWUP_TIME_SPENT_AUTO = getattr(settings,
|
||||
'HELPDESK_FOLLOWUP_TIME_SPENT_AUTO',
|
||||
False)
|
||||
FOLLOWUP_TIME_SPENT_AUTO = getattr(settings, "HELPDESK_FOLLOWUP_TIME_SPENT_AUTO", False)
|
||||
|
||||
# Calculate time_spent according to open hours
|
||||
FOLLOWUP_TIME_SPENT_OPENING_HOURS = getattr(settings,
|
||||
'HELPDESK_FOLLOWUP_TIME_SPENT_OPENING_HOURS',
|
||||
{})
|
||||
FOLLOWUP_TIME_SPENT_OPENING_HOURS = getattr(
|
||||
settings, "HELPDESK_FOLLOWUP_TIME_SPENT_OPENING_HOURS", {}
|
||||
)
|
||||
|
||||
# Holidays don't count for time_spent calculation
|
||||
FOLLOWUP_TIME_SPENT_EXCLUDE_HOLIDAYS = getattr(settings,
|
||||
'HELPDESK_FOLLOWUP_TIME_SPENT_EXCLUDE_HOLIDAYS',
|
||||
())
|
||||
FOLLOWUP_TIME_SPENT_EXCLUDE_HOLIDAYS = getattr(
|
||||
settings, "HELPDESK_FOLLOWUP_TIME_SPENT_EXCLUDE_HOLIDAYS", ()
|
||||
)
|
||||
|
||||
# Time doesn't count for listed ticket statuses
|
||||
FOLLOWUP_TIME_SPENT_EXCLUDE_STATUSES = getattr(settings,
|
||||
'HELPDESK_FOLLOWUP_TIME_SPENT_EXCLUDE_STATUSES',
|
||||
())
|
||||
FOLLOWUP_TIME_SPENT_EXCLUDE_STATUSES = getattr(
|
||||
settings, "HELPDESK_FOLLOWUP_TIME_SPENT_EXCLUDE_STATUSES", ()
|
||||
)
|
||||
|
||||
# Time doesn't count for listed queues slugs
|
||||
FOLLOWUP_TIME_SPENT_EXCLUDE_QUEUES = getattr(settings,
|
||||
'HELPDESK_FOLLOWUP_TIME_SPENT_EXCLUDE_QUEUES',
|
||||
())
|
||||
FOLLOWUP_TIME_SPENT_EXCLUDE_QUEUES = getattr(
|
||||
settings, "HELPDESK_FOLLOWUP_TIME_SPENT_EXCLUDE_QUEUES", ()
|
||||
)
|
||||
|
||||
############################
|
||||
# options for public pages #
|
||||
############################
|
||||
|
||||
# show 'view a ticket' section on public page?
|
||||
HELPDESK_VIEW_A_TICKET_PUBLIC = getattr(
|
||||
settings, 'HELPDESK_VIEW_A_TICKET_PUBLIC', True)
|
||||
HELPDESK_VIEW_A_TICKET_PUBLIC = getattr(settings, "HELPDESK_VIEW_A_TICKET_PUBLIC", True)
|
||||
|
||||
# show 'submit a ticket' section on public page?
|
||||
HELPDESK_SUBMIT_A_TICKET_PUBLIC = getattr(
|
||||
settings, 'HELPDESK_SUBMIT_A_TICKET_PUBLIC', True)
|
||||
settings, "HELPDESK_SUBMIT_A_TICKET_PUBLIC", True
|
||||
)
|
||||
|
||||
# change that to custom class to have extra fields or validation (like captcha)
|
||||
HELPDESK_PUBLIC_TICKET_FORM_CLASS = getattr(
|
||||
settings,
|
||||
"HELPDESK_PUBLIC_TICKET_FORM_CLASS",
|
||||
"helpdesk.forms.PublicTicketForm"
|
||||
settings, "HELPDESK_PUBLIC_TICKET_FORM_CLASS", "helpdesk.forms.PublicTicketForm"
|
||||
)
|
||||
|
||||
# Custom fields constants
|
||||
CUSTOMFIELD_TO_FIELD_DICT = {
|
||||
'boolean': forms.BooleanField,
|
||||
'date': forms.DateField,
|
||||
'time': forms.TimeField,
|
||||
'datetime': forms.DateTimeField,
|
||||
'email': forms.EmailField,
|
||||
'url': forms.URLField,
|
||||
'ipaddress': forms.GenericIPAddressField,
|
||||
'slug': forms.SlugField,
|
||||
"boolean": forms.BooleanField,
|
||||
"date": forms.DateField,
|
||||
"time": forms.TimeField,
|
||||
"datetime": forms.DateTimeField,
|
||||
"email": forms.EmailField,
|
||||
"url": forms.URLField,
|
||||
"ipaddress": forms.GenericIPAddressField,
|
||||
"slug": forms.SlugField,
|
||||
}
|
||||
CUSTOMFIELD_DATE_FORMAT = "%Y-%m-%d"
|
||||
CUSTOMFIELD_TIME_FORMAT = "%H:%M:%S"
|
||||
@@ -238,48 +272,58 @@ CUSTOMFIELD_DATETIME_FORMAT = f"{CUSTOMFIELD_DATE_FORMAT}T%H:%M"
|
||||
# options for update_ticket views #
|
||||
###################################
|
||||
|
||||
''' options for update_ticket views '''
|
||||
""" options for update_ticket views """
|
||||
# allow non-staff users to interact with tickets?
|
||||
# can be True/False or a callable accepting the active user and returning
|
||||
# True if they must be considered helpdesk staff
|
||||
HELPDESK_ALLOW_NON_STAFF_TICKET_UPDATE = getattr(
|
||||
settings, 'HELPDESK_ALLOW_NON_STAFF_TICKET_UPDATE', False)
|
||||
if not (HELPDESK_ALLOW_NON_STAFF_TICKET_UPDATE in (True, False) or callable(HELPDESK_ALLOW_NON_STAFF_TICKET_UPDATE)):
|
||||
settings, "HELPDESK_ALLOW_NON_STAFF_TICKET_UPDATE", False
|
||||
)
|
||||
if not (
|
||||
HELPDESK_ALLOW_NON_STAFF_TICKET_UPDATE in (True, False)
|
||||
or callable(HELPDESK_ALLOW_NON_STAFF_TICKET_UPDATE)
|
||||
):
|
||||
warnings.warn(
|
||||
"HELPDESK_ALLOW_NON_STAFF_TICKET_UPDATE should be set to either True/False or a callable.",
|
||||
RuntimeWarning
|
||||
RuntimeWarning,
|
||||
)
|
||||
|
||||
# show edit buttons in ticket follow ups.
|
||||
HELPDESK_SHOW_EDIT_BUTTON_FOLLOW_UP = getattr(settings,
|
||||
'HELPDESK_SHOW_EDIT_BUTTON_FOLLOW_UP',
|
||||
True)
|
||||
HELPDESK_SHOW_EDIT_BUTTON_FOLLOW_UP = getattr(
|
||||
settings, "HELPDESK_SHOW_EDIT_BUTTON_FOLLOW_UP", True
|
||||
)
|
||||
|
||||
HELPDESK_SHOW_CUSTOM_FIELDS_FOLLOW_UP_LIST = getattr(settings,
|
||||
'HELPDESK_SHOW_CUSTOM_FIELDS_FOLLOW_UP_LIST',
|
||||
[])
|
||||
HELPDESK_SHOW_CUSTOM_FIELDS_FOLLOW_UP_LIST = getattr(
|
||||
settings, "HELPDESK_SHOW_CUSTOM_FIELDS_FOLLOW_UP_LIST", []
|
||||
)
|
||||
|
||||
# show delete buttons in ticket follow ups if user is 'superuser'
|
||||
HELPDESK_SHOW_DELETE_BUTTON_SUPERUSER_FOLLOW_UP = getattr(
|
||||
settings, 'HELPDESK_SHOW_DELETE_BUTTON_SUPERUSER_FOLLOW_UP', False)
|
||||
settings, "HELPDESK_SHOW_DELETE_BUTTON_SUPERUSER_FOLLOW_UP", False
|
||||
)
|
||||
|
||||
# make all updates public by default? this will hide the 'is this update
|
||||
# public' checkbox
|
||||
HELPDESK_UPDATE_PUBLIC_DEFAULT = getattr(
|
||||
settings, 'HELPDESK_UPDATE_PUBLIC_DEFAULT', False)
|
||||
settings, "HELPDESK_UPDATE_PUBLIC_DEFAULT", False
|
||||
)
|
||||
|
||||
# only show staff users in ticket owner drop-downs
|
||||
HELPDESK_STAFF_ONLY_TICKET_OWNERS = getattr(
|
||||
settings, 'HELPDESK_STAFF_ONLY_TICKET_OWNERS', False)
|
||||
settings, "HELPDESK_STAFF_ONLY_TICKET_OWNERS", False
|
||||
)
|
||||
|
||||
# only show staff users in ticket cc drop-down
|
||||
HELPDESK_STAFF_ONLY_TICKET_CC = getattr(
|
||||
settings, 'HELPDESK_STAFF_ONLY_TICKET_CC', False)
|
||||
settings, "HELPDESK_STAFF_ONLY_TICKET_CC", False
|
||||
)
|
||||
|
||||
# allow the subject to have a configurable template.
|
||||
HELPDESK_EMAIL_SUBJECT_TEMPLATE = getattr(
|
||||
settings, 'HELPDESK_EMAIL_SUBJECT_TEMPLATE',
|
||||
"{{ ticket.ticket }} {{ ticket.title|safe }} %(subject)s")
|
||||
settings,
|
||||
"HELPDESK_EMAIL_SUBJECT_TEMPLATE",
|
||||
"{{ ticket.ticket }} {{ ticket.title|safe }} %(subject)s",
|
||||
)
|
||||
# since django-helpdesk may not work correctly without the ticket ID
|
||||
# in the subject, let's do a check for it quick:
|
||||
if HELPDESK_EMAIL_SUBJECT_TEMPLATE.find("ticket.ticket") < 0:
|
||||
@@ -287,12 +331,14 @@ if HELPDESK_EMAIL_SUBJECT_TEMPLATE.find("ticket.ticket") < 0:
|
||||
|
||||
# default fallback locale when queue locale not found
|
||||
HELPDESK_EMAIL_FALLBACK_LOCALE = getattr(
|
||||
settings, 'HELPDESK_EMAIL_FALLBACK_LOCALE', 'en')
|
||||
settings, "HELPDESK_EMAIL_FALLBACK_LOCALE", "en"
|
||||
)
|
||||
|
||||
# default maximum email attachment size, in bytes
|
||||
# only attachments smaller than this size will be sent via email
|
||||
HELPDESK_MAX_EMAIL_ATTACHMENT_SIZE = getattr(
|
||||
settings, 'HELPDESK_MAX_EMAIL_ATTACHMENT_SIZE', 512000)
|
||||
settings, "HELPDESK_MAX_EMAIL_ATTACHMENT_SIZE", 512000
|
||||
)
|
||||
|
||||
|
||||
########################################
|
||||
@@ -301,7 +347,8 @@ HELPDESK_MAX_EMAIL_ATTACHMENT_SIZE = getattr(
|
||||
|
||||
# hide the 'assigned to' / 'Case owner' field from the 'create_ticket' view?
|
||||
HELPDESK_CREATE_TICKET_HIDE_ASSIGNED_TO = getattr(
|
||||
settings, 'HELPDESK_CREATE_TICKET_HIDE_ASSIGNED_TO', False)
|
||||
settings, "HELPDESK_CREATE_TICKET_HIDE_ASSIGNED_TO", False
|
||||
)
|
||||
|
||||
|
||||
#################
|
||||
@@ -309,33 +356,37 @@ HELPDESK_CREATE_TICKET_HIDE_ASSIGNED_TO = getattr(
|
||||
#################
|
||||
|
||||
# default Queue email submission settings
|
||||
QUEUE_EMAIL_BOX_TYPE = getattr(settings, 'QUEUE_EMAIL_BOX_TYPE', None)
|
||||
QUEUE_EMAIL_BOX_SSL = getattr(settings, 'QUEUE_EMAIL_BOX_SSL', None)
|
||||
QUEUE_EMAIL_BOX_HOST = getattr(settings, 'QUEUE_EMAIL_BOX_HOST', None)
|
||||
QUEUE_EMAIL_BOX_USER = getattr(settings, 'QUEUE_EMAIL_BOX_USER', None)
|
||||
QUEUE_EMAIL_BOX_PASSWORD = getattr(settings, 'QUEUE_EMAIL_BOX_PASSWORD', None)
|
||||
QUEUE_EMAIL_BOX_TYPE = getattr(settings, "QUEUE_EMAIL_BOX_TYPE", None)
|
||||
QUEUE_EMAIL_BOX_SSL = getattr(settings, "QUEUE_EMAIL_BOX_SSL", None)
|
||||
QUEUE_EMAIL_BOX_HOST = getattr(settings, "QUEUE_EMAIL_BOX_HOST", None)
|
||||
QUEUE_EMAIL_BOX_USER = getattr(settings, "QUEUE_EMAIL_BOX_USER", None)
|
||||
QUEUE_EMAIL_BOX_PASSWORD = getattr(settings, "QUEUE_EMAIL_BOX_PASSWORD", None)
|
||||
|
||||
# only process emails with a valid tracking ID? (throws away all other mail)
|
||||
QUEUE_EMAIL_BOX_UPDATE_ONLY = getattr(
|
||||
settings, 'QUEUE_EMAIL_BOX_UPDATE_ONLY', False)
|
||||
QUEUE_EMAIL_BOX_UPDATE_ONLY = getattr(settings, "QUEUE_EMAIL_BOX_UPDATE_ONLY", False)
|
||||
|
||||
# only allow users to access queues that they are members of?
|
||||
HELPDESK_ENABLE_PER_QUEUE_STAFF_PERMISSION = getattr(
|
||||
settings, 'HELPDESK_ENABLE_PER_QUEUE_STAFF_PERMISSION', False)
|
||||
settings, "HELPDESK_ENABLE_PER_QUEUE_STAFF_PERMISSION", False
|
||||
)
|
||||
|
||||
# use https in the email links
|
||||
HELPDESK_USE_HTTPS_IN_EMAIL_LINK = getattr(
|
||||
settings, 'HELPDESK_USE_HTTPS_IN_EMAIL_LINK', settings.SECURE_SSL_REDIRECT)
|
||||
settings, "HELPDESK_USE_HTTPS_IN_EMAIL_LINK", settings.SECURE_SSL_REDIRECT
|
||||
)
|
||||
|
||||
# Default to True for backwards compatibility
|
||||
HELPDESK_TEAMS_MODE_ENABLED = getattr(settings, 'HELPDESK_TEAMS_MODE_ENABLED', True)
|
||||
HELPDESK_TEAMS_MODE_ENABLED = getattr(settings, "HELPDESK_TEAMS_MODE_ENABLED", True)
|
||||
if HELPDESK_TEAMS_MODE_ENABLED:
|
||||
HELPDESK_TEAMS_MODEL = getattr(
|
||||
settings, 'HELPDESK_TEAMS_MODEL', 'pinax_teams.Team')
|
||||
HELPDESK_TEAMS_MIGRATION_DEPENDENCIES = getattr(settings, 'HELPDESK_TEAMS_MIGRATION_DEPENDENCIES', [
|
||||
('pinax_teams', '0004_auto_20170511_0856')])
|
||||
HELPDESK_TEAMS_MODEL = getattr(settings, "HELPDESK_TEAMS_MODEL", "pinax_teams.Team")
|
||||
HELPDESK_TEAMS_MIGRATION_DEPENDENCIES = getattr(
|
||||
settings,
|
||||
"HELPDESK_TEAMS_MIGRATION_DEPENDENCIES",
|
||||
[("pinax_teams", "0004_auto_20170511_0856")],
|
||||
)
|
||||
HELPDESK_KBITEM_TEAM_GETTER = getattr(
|
||||
settings, 'HELPDESK_KBITEM_TEAM_GETTER', lambda kbitem: kbitem.team)
|
||||
settings, "HELPDESK_KBITEM_TEAM_GETTER", lambda kbitem: kbitem.team
|
||||
)
|
||||
else:
|
||||
HELPDESK_TEAMS_MODEL = settings.AUTH_USER_MODEL
|
||||
HELPDESK_TEAMS_MIGRATION_DEPENDENCIES = []
|
||||
@@ -343,35 +394,38 @@ else:
|
||||
|
||||
# show knowledgebase links?
|
||||
# If Teams mode is enabled then it has to be on
|
||||
HELPDESK_KB_ENABLED = True if HELPDESK_TEAMS_MODE_ENABLED else getattr(settings, 'HELPDESK_KB_ENABLED', True)
|
||||
HELPDESK_KB_ENABLED = (
|
||||
True
|
||||
if HELPDESK_TEAMS_MODE_ENABLED
|
||||
else getattr(settings, "HELPDESK_KB_ENABLED", True)
|
||||
)
|
||||
|
||||
# Include all signatures and forwards in the first ticket message if set
|
||||
# Useful if you get forwards dropped from them while they are useful part
|
||||
# of request
|
||||
HELPDESK_FULL_FIRST_MESSAGE_FROM_EMAIL = getattr(
|
||||
settings, 'HELPDESK_FULL_FIRST_MESSAGE_FROM_EMAIL', False)
|
||||
settings, "HELPDESK_FULL_FIRST_MESSAGE_FROM_EMAIL", False
|
||||
)
|
||||
|
||||
# If set then we always save incoming emails as .eml attachments
|
||||
# which is quite noisy but very helpful for complicated markup, forwards and so on
|
||||
# (which gets stripped/corrupted otherwise)
|
||||
HELPDESK_ALWAYS_SAVE_INCOMING_EMAIL_MESSAGE = getattr(
|
||||
settings, "HELPDESK_ALWAYS_SAVE_INCOMING_EMAIL_MESSAGE", False)
|
||||
settings, "HELPDESK_ALWAYS_SAVE_INCOMING_EMAIL_MESSAGE", False
|
||||
)
|
||||
|
||||
#######################
|
||||
# email OAUTH #
|
||||
#######################
|
||||
|
||||
HELPDESK_OAUTH = getattr(
|
||||
settings, 'HELPDESK_OAUTH', {
|
||||
"token_url": "",
|
||||
"client_id": "",
|
||||
"secret": "",
|
||||
"scope": [""]
|
||||
}
|
||||
settings,
|
||||
"HELPDESK_OAUTH",
|
||||
{"token_url": "", "client_id": "", "secret": "", "scope": [""]},
|
||||
)
|
||||
|
||||
# Set Debug Logging Level for IMAP Services. Default to '0' for No Debugging
|
||||
HELPDESK_IMAP_DEBUG_LEVEL = getattr(settings, 'HELPDESK_IMAP_DEBUG_LEVEL', 0)
|
||||
HELPDESK_IMAP_DEBUG_LEVEL = getattr(settings, "HELPDESK_IMAP_DEBUG_LEVEL", 0)
|
||||
|
||||
#############################################
|
||||
# file permissions - Attachment directories #
|
||||
@@ -379,29 +433,60 @@ HELPDESK_IMAP_DEBUG_LEVEL = getattr(settings, 'HELPDESK_IMAP_DEBUG_LEVEL', 0)
|
||||
|
||||
# Attachment directories should be created with permission 755 (rwxr-xr-x)
|
||||
# Override it in your own Django settings.py
|
||||
HELPDESK_ATTACHMENT_DIR_PERMS = int(getattr(settings, 'HELPDESK_ATTACHMENT_DIR_PERMS', "755"), 8)
|
||||
HELPDESK_ATTACHMENT_DIR_PERMS = int(
|
||||
getattr(settings, "HELPDESK_ATTACHMENT_DIR_PERMS", "755"), 8
|
||||
)
|
||||
|
||||
HELPDESK_VALID_EXTENSIONS = getattr(settings, 'VALID_EXTENSIONS', None)
|
||||
HELPDESK_VALID_EXTENSIONS = getattr(settings, "VALID_EXTENSIONS", None)
|
||||
if HELPDESK_VALID_EXTENSIONS:
|
||||
# Print to stderr
|
||||
print("VALID_EXTENSIONS is deprecated, use HELPDESK_VALID_EXTENSIONS instead", file=sys.stderr)
|
||||
print(
|
||||
"VALID_EXTENSIONS is deprecated, use HELPDESK_VALID_EXTENSIONS instead",
|
||||
file=sys.stderr,
|
||||
)
|
||||
else:
|
||||
HELPDESK_VALID_EXTENSIONS = getattr(settings, 'HELPDESK_VALID_EXTENSIONS', ['.txt', '.asc', '.htm', '.html', '.pdf', '.doc', '.docx', '.odt', '.jpg', '.png', '.eml'])
|
||||
HELPDESK_VALID_EXTENSIONS = getattr(
|
||||
settings,
|
||||
"HELPDESK_VALID_EXTENSIONS",
|
||||
[
|
||||
".txt",
|
||||
".asc",
|
||||
".htm",
|
||||
".html",
|
||||
".pdf",
|
||||
".doc",
|
||||
".docx",
|
||||
".odt",
|
||||
".jpg",
|
||||
".png",
|
||||
".eml",
|
||||
],
|
||||
)
|
||||
|
||||
HELPDESK_VALIDATE_ATTACHMENT_TYPES = getattr(
|
||||
settings, "HELPDESK_VALIDATE_ATTACHMENT_TYPES", True
|
||||
)
|
||||
|
||||
HELPDESK_VALIDATE_ATTACHMENT_TYPES = getattr(settings, 'HELPDESK_VALIDATE_ATTACHMENT_TYPES', True)
|
||||
|
||||
def get_followup_webhook_urls():
|
||||
urls = os.environ.get('HELPDESK_FOLLOWUP_WEBHOOK_URLS', None)
|
||||
urls = os.environ.get("HELPDESK_FOLLOWUP_WEBHOOK_URLS", None)
|
||||
if urls:
|
||||
return re.split(r'[\s],[\s]', urls)
|
||||
return re.split(r"[\s],[\s]", urls)
|
||||
|
||||
|
||||
HELPDESK_GET_FOLLOWUP_WEBHOOK_URLS = getattr(
|
||||
settings, "HELPDESK_GET_FOLLOWUP_WEBHOOK_URLS", get_followup_webhook_urls
|
||||
)
|
||||
|
||||
HELPDESK_GET_FOLLOWUP_WEBHOOK_URLS = getattr(settings, 'HELPDESK_GET_FOLLOWUP_WEBHOOK_URLS', get_followup_webhook_urls)
|
||||
|
||||
def get_new_ticket_webhook_urls():
|
||||
urls = os.environ.get('HELPDESK_NEW_TICKET_WEBHOOK_URLS', None)
|
||||
urls = os.environ.get("HELPDESK_NEW_TICKET_WEBHOOK_URLS", None)
|
||||
if urls:
|
||||
return urls.split(',')
|
||||
return urls.split(",")
|
||||
|
||||
HELPDESK_GET_NEW_TICKET_WEBHOOK_URLS = getattr(settings, 'HELPDESK_GET_NEW_TICKET_WEBHOOK_URLS', get_new_ticket_webhook_urls)
|
||||
|
||||
HELPDESK_WEBHOOK_TIMEOUT = getattr(settings, 'HELPDESK_WEBHOOK_TIMEOUT', 3)
|
||||
HELPDESK_GET_NEW_TICKET_WEBHOOK_URLS = getattr(
|
||||
settings, "HELPDESK_GET_NEW_TICKET_WEBHOOK_URLS", get_new_ticket_webhook_urls
|
||||
)
|
||||
|
||||
HELPDESK_WEBHOOK_TIMEOUT = getattr(settings, "HELPDESK_WEBHOOK_TIMEOUT", 3)
|
||||
|
Reference in New Issue
Block a user