Skip to content

Utility Functions Reference

Version: Arctyk ITSM v0.6.0+
Last Updated: January 2026

Reference for utility functions and helpers.


core.utils

format_date(date, format='short')

Purpose: Formats dates consistently across the application

Parameters:

  • date - datetime object
  • format - 'short', 'long', 'iso', or custom format string

Returns: Formatted date string

Usage:

from core.utils import format_date
formatted = format_date(ticket.created_at, 'long')

sanitize_html(html_content)

Purpose: Sanitizes HTML content to prevent XSS attacks

Parameters:

  • html_content - String containing HTML

Returns: Sanitized HTML string

Usage:

from core.utils import sanitize_html
safe_content = sanitize_html(request.POST.get('content'))

get_client_ip(request)

Purpose: Extracts client IP address from request

Parameters:

  • request - Django HttpRequest object

Returns: IP address string

Usage:

from core.utils import get_client_ip
ip = get_client_ip(request)

tickets.utils

calculate_sla_breach(ticket) (v0.6.0+)

Purpose: Determines if ticket has breached SLA targets

Parameters:

  • ticket - Ticket instance

Returns: Dictionary with breach status

Usage:

from tickets.utils import calculate_sla_breach
result = calculate_sla_breach(ticket)
# Returns: {
#   'response_breached': True/False,
#   'resolution_breached': True/False,
#   'response_time': timedelta,
#   'resolution_time': timedelta
# }

send_ticket_notification(ticket, event_type)

Purpose: Sends email notification for ticket events

Parameters:

  • ticket - Ticket instance
  • event_type - 'created', 'assigned', 'status_changed', 'commented'

Returns: None (sends email via Celery)

Usage:

from tickets.utils import send_ticket_notification
send_ticket_notification(ticket, 'assigned')

get_workflow_transitions(ticket)

Purpose: Returns available status transitions for ticket

Parameters:

  • ticket - Ticket instance

Returns: List of valid next statuses

Usage:

from tickets.utils import get_workflow_transitions
transitions = get_workflow_transitions(ticket)

changelog.utils

create_changelog_entry(instance, action, changed_by=None)

Purpose: Manually creates changelog entry

Parameters:

  • instance - Model instance
  • action - 'create', 'update', 'delete'
  • changed_by - User instance (optional)

Returns: ChangeLog instance

Usage:

from changelog.utils import create_changelog_entry
log = create_changelog_entry(ticket, 'update', request.user)

get_change_history(instance, limit=None)

Purpose: Retrieves change history for any model instance

Parameters:

  • instance - Model instance
  • limit - Maximum number of entries (optional)

Returns: QuerySet of ChangeLog entries

Usage:

from changelog.utils import get_change_history
history = get_change_history(ticket, limit=10)

users.utils

has_permission(user, permission_name, obj=None)

Purpose: Checks if user has specific permission

Parameters:

  • user - User instance
  • permission_name - Permission string
  • obj - Object for object-level permissions (optional)

Returns: Boolean

Usage:

from users.utils import has_permission
can_edit = has_permission(request.user, 'tickets.change_ticket', ticket)

get_user_display_name(user)

Purpose: Returns formatted display name for user

Parameters:

  • user - User instance

Returns: String (full name or username)

Usage:

from users.utils import get_user_display_name
name = get_user_display_name(ticket.assignee)