61 lines
3.3 KiB
Python
61 lines
3.3 KiB
Python
import django_filters
|
|
from .models import ApiRequestLog, ErrorLog, SystemEventLog
|
|
|
|
|
|
class ApiRequestLogFilter(django_filters.FilterSet):
|
|
timestamp_after = django_filters.DateTimeFilter(field_name='timestamp', lookup_expr='gte')
|
|
timestamp_before = django_filters.DateTimeFilter(field_name='timestamp', lookup_expr='lte')
|
|
method = django_filters.CharFilter(field_name='method', lookup_expr='exact')
|
|
status_code = django_filters.NumberFilter(field_name='status_code', lookup_expr='exact')
|
|
status_code_min = django_filters.NumberFilter(field_name='status_code', lookup_expr='gte')
|
|
status_code_max = django_filters.NumberFilter(field_name='status_code', lookup_expr='lte')
|
|
path = django_filters.CharFilter(field_name='path', lookup_expr='icontains')
|
|
app_name = django_filters.CharFilter(field_name='app_name', lookup_expr='exact')
|
|
username = django_filters.CharFilter(field_name='username', lookup_expr='icontains')
|
|
is_error = django_filters.BooleanFilter(field_name='is_error')
|
|
duration_min = django_filters.NumberFilter(field_name='duration_ms', lookup_expr='gte')
|
|
duration_max = django_filters.NumberFilter(field_name='duration_ms', lookup_expr='lte')
|
|
ip_address = django_filters.CharFilter(field_name='ip_address', lookup_expr='exact')
|
|
|
|
class Meta:
|
|
model = ApiRequestLog
|
|
fields = [
|
|
'timestamp_after', 'timestamp_before', 'method', 'status_code',
|
|
'status_code_min', 'status_code_max', 'path', 'app_name',
|
|
'username', 'is_error', 'duration_min', 'duration_max', 'ip_address',
|
|
]
|
|
|
|
|
|
class ErrorLogFilter(django_filters.FilterSet):
|
|
timestamp_after = django_filters.DateTimeFilter(field_name='timestamp', lookup_expr='gte')
|
|
timestamp_before = django_filters.DateTimeFilter(field_name='timestamp', lookup_expr='lte')
|
|
level = django_filters.CharFilter(field_name='level', lookup_expr='exact')
|
|
module = django_filters.CharFilter(field_name='module', lookup_expr='icontains')
|
|
exception_type = django_filters.CharFilter(field_name='exception_type', lookup_expr='icontains')
|
|
is_resolved = django_filters.BooleanFilter(field_name='is_resolved')
|
|
message = django_filters.CharFilter(field_name='message', lookup_expr='icontains')
|
|
path = django_filters.CharFilter(field_name='path', lookup_expr='icontains')
|
|
|
|
class Meta:
|
|
model = ErrorLog
|
|
fields = [
|
|
'timestamp_after', 'timestamp_before', 'level', 'module',
|
|
'exception_type', 'is_resolved', 'message', 'path',
|
|
]
|
|
|
|
|
|
class SystemEventLogFilter(django_filters.FilterSet):
|
|
timestamp_after = django_filters.DateTimeFilter(field_name='timestamp', lookup_expr='gte')
|
|
timestamp_before = django_filters.DateTimeFilter(field_name='timestamp', lookup_expr='lte')
|
|
event_type = django_filters.CharFilter(field_name='event_type', lookup_expr='exact')
|
|
result = django_filters.CharFilter(field_name='result', lookup_expr='exact')
|
|
username = django_filters.CharFilter(field_name='user__username', lookup_expr='icontains')
|
|
description = django_filters.CharFilter(field_name='description', lookup_expr='icontains')
|
|
|
|
class Meta:
|
|
model = SystemEventLog
|
|
fields = [
|
|
'timestamp_after', 'timestamp_before', 'event_type', 'result',
|
|
'username', 'description',
|
|
]
|