2023-07-29 06:56:42 +02:00
|
|
|
import os
|
2023-08-11 15:12:51 +02:00
|
|
|
from django_filters import NumberFilter
|
2023-07-29 06:56:42 +02:00
|
|
|
|
|
|
|
|
|
|
|
def logs_dir_path(instance, filename):
|
2023-08-11 15:12:51 +02:00
|
|
|
"""
|
|
|
|
file will be uploaded to
|
|
|
|
MEDIA_ROOT_FOR_SENSITIVE_FILES/<ticket-token>/<filename>
|
|
|
|
"""
|
2023-08-11 03:38:47 +02:00
|
|
|
return f'{instance.ticket.number}/{filename}'
|
2023-07-29 06:56:42 +02:00
|
|
|
|
|
|
|
|
|
|
|
def get_file_size(file_path, unit='bytes'):
|
|
|
|
file_size = os.path.getsize(file_path)
|
|
|
|
exponents_map = {'bytes': 0, 'kb': 1, 'mb': 2, 'gb': 3}
|
|
|
|
if unit not in exponents_map:
|
|
|
|
raise ValueError("Must select from \
|
|
|
|
['bytes', 'kb', 'mb', 'gb']")
|
|
|
|
else:
|
|
|
|
size = file_size / 1024 ** exponents_map[unit]
|
|
|
|
return round(size, 3)
|
2023-08-01 13:13:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
def is_ajax(request):
|
2023-08-04 03:15:25 +02:00
|
|
|
if request.headers.get('X-Requested-With') == 'XMLHttpRequest':
|
2023-08-01 13:13:04 +02:00
|
|
|
return True
|
2023-08-06 04:53:09 +02:00
|
|
|
|
|
|
|
|
|
|
|
class PageTitleViewMixin:
|
|
|
|
title = 'Collector'
|
|
|
|
|
|
|
|
def get_title(self, *args, **kwargs):
|
|
|
|
"""
|
|
|
|
Return the class title attr by default,
|
|
|
|
but you can override this method to further customize
|
|
|
|
"""
|
|
|
|
return self.title
|
|
|
|
|
|
|
|
def get_context_data(self, **kwargs):
|
|
|
|
context = super().get_context_data(**kwargs)
|
|
|
|
context['title'] = self.get_title()
|
|
|
|
return context
|
2023-08-11 15:12:51 +02:00
|
|
|
|
|
|
|
|
|
|
|
class DateTimeFilterMixin:
|
|
|
|
year__gte = NumberFilter(
|
|
|
|
field_name='time_create',
|
|
|
|
lookup_expr='year__gte'
|
|
|
|
)
|
|
|
|
year__lte = NumberFilter(
|
|
|
|
field_name='time_create',
|
|
|
|
lookup_expr='year__lte'
|
|
|
|
)
|
|
|
|
month__gte = NumberFilter(
|
|
|
|
field_name='time_create',
|
|
|
|
lookup_expr='month__gte'
|
|
|
|
)
|
|
|
|
month__lte = NumberFilter(
|
|
|
|
field_name='time_create',
|
|
|
|
lookup_expr='month__lte'
|
|
|
|
)
|