Temporary vertion with non-working enchant
This commit is contained in:
parent
10e341fcbb
commit
0a7b4fb1a7
@ -37,10 +37,7 @@ ManagerDescriptor.__get__ = lambda self, *args, **kwargs: self.manager
|
||||
from django.db.models.query import QuerySet
|
||||
|
||||
QuerySet.__repr__ = lambda self: self.__class__.__name__
|
||||
# try:
|
||||
# import enchant # NoQA
|
||||
# except ImportError:
|
||||
# enchant = None
|
||||
|
||||
|
||||
django.setup()
|
||||
|
||||
@ -117,17 +114,12 @@ def skip_queryset(app, what, name, obj, skip, options):
|
||||
return True
|
||||
return skip
|
||||
|
||||
def process_signature(app, what, name, obj, options, signature, return_annotation):
|
||||
return None
|
||||
|
||||
|
||||
def setup(app):
|
||||
# Register the docstring processor with sphinx
|
||||
app.connect('autodoc-process-docstring', process_django_models)
|
||||
app.connect('autodoc-skip-member', skip_queryset)
|
||||
if enchant is not None:
|
||||
app.connect('autodoc-process-docstring', process_modules)
|
||||
app.connect('autodoc-process-signature', process_signature)
|
||||
|
||||
|
||||
|
||||
@ -191,6 +183,7 @@ intersphinx_mapping = {
|
||||
autodoc_default_flags = ['members']
|
||||
|
||||
# spell checking
|
||||
print(enchant.list_languages())
|
||||
spelling_lang = 'ru_RU'
|
||||
tokenizer_lang = 'ru_RU'
|
||||
spelling_word_list_filename = ['spelling_wordlist.txt', 'another_list.txt']
|
||||
@ -209,7 +202,6 @@ spelling_ignore_contributor_names=True
|
||||
|
||||
# If true, `todo` and `todoList` produce output, else they produce nothing.
|
||||
todo_include_todos = True
|
||||
|
||||
set_type_checking_flag = True
|
||||
typehints_fully_qualified = True
|
||||
always_document_param_types = True
|
||||
|
@ -242,13 +242,10 @@ def get_timedelta(log: RoleChangeLogs, time=None) -> timedelta:
|
||||
return time
|
||||
|
||||
|
||||
def last_day_of_month(day):
|
||||
def last_day_of_month(day: int) -> int:
|
||||
"""
|
||||
Функция возвращает последний день текущего месяца.
|
||||
|
||||
.. todo::
|
||||
Дописать документацию по данной функции (не поняла типы и суть)
|
||||
|
||||
:param day: Текущий день
|
||||
:return: Последний день месяца
|
||||
"""
|
||||
@ -259,10 +256,26 @@ def last_day_of_month(day):
|
||||
class StatisticData:
|
||||
"""
|
||||
Класс для учета статистики интервалов работы пользователей.
|
||||
Передаваемые параметры: start_date, end_date, user_email.
|
||||
Передаваемые параметры: start_date, end_date, user_email, stat.
|
||||
|
||||
.. todo::
|
||||
Дописать описание данного класса
|
||||
:param display: Формат отображения времени (часы, минуты)
|
||||
:type display: :class:`list`
|
||||
:param interval: Инетрвал времени в часах и минутах
|
||||
:type interval: :class:`list`
|
||||
:param start_date: Дата начала работы
|
||||
:type start_date: :class:`date`
|
||||
:param end_date: Дата окончания работы
|
||||
:type end_date: :class:`date`
|
||||
:param email: Email пользователя
|
||||
:type email: :class:`str`
|
||||
:param errors: Список ошибок
|
||||
:type errors: :class:`list`
|
||||
:param warnings: Список предупрежденй
|
||||
:type warnings: :class:`list`
|
||||
:param data: Ретроспектива смены ролей пользователя
|
||||
:type data: :class:`dict`
|
||||
:param statistic: Интервалы работы пользователя
|
||||
:type statistic: :class:`dict`
|
||||
"""
|
||||
def __init__(self, start_date, end_date, user_email, stat=None):
|
||||
self.display = None
|
||||
@ -362,12 +375,12 @@ class StatisticData:
|
||||
new_stat[key] = item / (ONE_DAY * 3600)
|
||||
return new_stat
|
||||
|
||||
def _use_interval(self, stat):
|
||||
def _use_interval(self, stat: dict) -> dict:
|
||||
"""
|
||||
Функция объединяет ключи и значения в соответствии с интервалом работы.
|
||||
|
||||
:param stat:
|
||||
:return:
|
||||
:param stat: Статистика работы пользователя
|
||||
:return: Обновленная статистика
|
||||
"""
|
||||
if not self.is_valid_statistic() or not self.interval:
|
||||
return stat
|
||||
@ -386,19 +399,21 @@ class StatisticData:
|
||||
new_stat = stat # статистика изначально в днях
|
||||
return new_stat
|
||||
|
||||
def check_time(self):
|
||||
def check_time(self) -> bool:
|
||||
"""
|
||||
Проверка на правильность введенного времени
|
||||
Функция проверяет корректность введенного времени.
|
||||
|
||||
:return: True, если время указано корректно. Иначе, False
|
||||
"""
|
||||
if self.end_date < self.start_date or self.end_date > datetime.now().date():
|
||||
return False
|
||||
return True
|
||||
|
||||
def _set_data(self):
|
||||
def _set_data(self) -> dict:
|
||||
"""
|
||||
Функция возвращает логи в диапазоне дат start_date-end_date для пользователя с указанным email.
|
||||
|
||||
:return:
|
||||
:return: Данные о смене статусов пользователя. Если пользователь не найден или интервал времени некорректен - ошибку.
|
||||
"""
|
||||
if not self.check_time():
|
||||
self.errors += ['Конец диапазона должен быть позже начала диапазона и раньше текущего времени']
|
||||
@ -411,11 +426,11 @@ class StatisticData:
|
||||
except User.DoesNotExist:
|
||||
self.errors += ['Пользователь не найден']
|
||||
|
||||
def _set_statistic(self):
|
||||
def _set_statistic(self) -> dict:
|
||||
"""
|
||||
Функция заполняет словарь, в котором ключ - дата, значение - кол-во проработанных в этот день секунд.
|
||||
|
||||
:return:
|
||||
:return: Статистика работы пользователя (statistic)
|
||||
"""
|
||||
self.clear_statistic()
|
||||
if not self.get_data():
|
||||
@ -445,22 +460,23 @@ class StatisticData:
|
||||
elapsed_time = next_log.change_time - current_log.change_time
|
||||
self.statistic[current_log.change_time.date()] += elapsed_time.total_seconds()
|
||||
|
||||
def fill_daterange(self, first, last, val=24 * 3600):
|
||||
def fill_daterange(self, first: date, last: date, val: int = 24 * 3600) -> dict:
|
||||
"""
|
||||
Функция заполеняет диапазон дат значением val (по умолчанию val = кол-во секунд в 1 дне).
|
||||
|
||||
:param first:
|
||||
:param last:
|
||||
:param val:
|
||||
:return:
|
||||
:param first: Начальная дата интервала
|
||||
:param last: Последняя дата интервала
|
||||
:param val: Количество секунд в одном дне
|
||||
:return: Статистику пользоваиеля с указанным количеством секунд в заданных днях
|
||||
"""
|
||||
for day in daterange(first, last):
|
||||
self.statistic[day] = val
|
||||
|
||||
def clear_statistic(self):
|
||||
def clear_statistic(self) -> dict:
|
||||
"""
|
||||
Функция осуществляет обновление всех дней
|
||||
:return:
|
||||
Функция осуществляет обновление всех дней.
|
||||
|
||||
:return: Статистику пользователя с количеством рабочих секунд = 0
|
||||
"""
|
||||
self.statistic.clear()
|
||||
self.fill_daterange(self.start_date, self.end_date + timedelta(days=1), 0)
|
||||
|
@ -229,9 +229,14 @@ class AdminPageView(LoginRequiredMixin, PermissionRequiredMixin, FormView):
|
||||
"""
|
||||
Класс отображения страницы администратора.
|
||||
|
||||
.. todo::
|
||||
Документация для данного класса:
|
||||
|
||||
:param permission_required: Права доступа к странице администратора
|
||||
:type permission_required: :class:`str`
|
||||
:param template_name: HTML-шаблон страницы администратора
|
||||
:type template_name: :class:`str`
|
||||
:param form_class: Форма страницы администратора
|
||||
:type form_class: :class:`forms.AdminPageUsersForm`
|
||||
:param success_url: Адрес страницы администратора
|
||||
:type success_url: :class:`HttpResponseRedirect`
|
||||
"""
|
||||
permission_required = 'main.has_control_access'
|
||||
template_name = 'pages/adm_ruleset.html'
|
||||
@ -240,7 +245,10 @@ class AdminPageView(LoginRequiredMixin, PermissionRequiredMixin, FormView):
|
||||
|
||||
def form_valid(self, form: AdminPageUsers) -> AdminPageUsers:
|
||||
"""
|
||||
Функция установки ролей пользователям
|
||||
Функция обновления страницы AdminPageUsers.
|
||||
|
||||
:param form: Форма страницы администратора
|
||||
:return: Обновленная страница (пользователям проставлены новые статусы)
|
||||
"""
|
||||
if 'engineer' in self.request.POST:
|
||||
self.make_engineers(form.cleaned_data['users'])
|
||||
@ -250,10 +258,22 @@ class AdminPageView(LoginRequiredMixin, PermissionRequiredMixin, FormView):
|
||||
|
||||
@staticmethod
|
||||
def make_engineers(users):
|
||||
"""
|
||||
Функция проходит по списку пользователей, проставляя статус "engineer".
|
||||
|
||||
:param users: Список пользователей
|
||||
:return: Обновленный список пользователей
|
||||
"""
|
||||
[make_engineer(user) for user in users]
|
||||
|
||||
@staticmethod
|
||||
def make_light_agents(users):
|
||||
"""
|
||||
Функция проходит по списку пользователей, проставляя статус "light_agent".
|
||||
|
||||
:param users: Список пользователей
|
||||
:return: Обновленный список пользователей
|
||||
"""
|
||||
[make_light_agent(user) for user in users]
|
||||
|
||||
@staticmethod
|
||||
|
Loading…
x
Reference in New Issue
Block a user