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 objectformat- 'short', 'long', 'iso', or custom format string
Returns: Formatted date string
Usage:
sanitize_html(html_content)¶
Purpose: Sanitizes HTML content to prevent XSS attacks
Parameters:
html_content- String containing HTML
Returns: Sanitized HTML string
Usage:
get_client_ip(request)¶
Purpose: Extracts client IP address from request
Parameters:
request- Django HttpRequest object
Returns: IP address string
Usage:
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 instanceevent_type- 'created', 'assigned', 'status_changed', 'commented'
Returns: None (sends email via Celery)
Usage:
get_workflow_transitions(ticket)¶
Purpose: Returns available status transitions for ticket
Parameters:
ticket- Ticket instance
Returns: List of valid next statuses
Usage:
changelog.utils¶
create_changelog_entry(instance, action, changed_by=None)¶
Purpose: Manually creates changelog entry
Parameters:
instance- Model instanceaction- '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 instancelimit- Maximum number of entries (optional)
Returns: QuerySet of ChangeLog entries
Usage:
users.utils¶
has_permission(user, permission_name, obj=None)¶
Purpose: Checks if user has specific permission
Parameters:
user- User instancepermission_name- Permission stringobj- 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: