From 1d7ff524b0bd65dcf82ff0ae18da011f978cc323 Mon Sep 17 00:00:00 2001 From: Andrew Smirnov Date: Thu, 4 Mar 2021 20:54:45 +0300 Subject: [PATCH] Documentation fix Add enchant, remove intersphinx useless links, remove napoleon, fix todos --- docs/source/conf.py | 30 +++++++++++++----------------- main/extra_func.py | 5 ++++- main/models.py | 10 ++-------- main/views.py | 5 ++++- requirements.txt | 4 ++-- 5 files changed, 25 insertions(+), 29 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index fdcc4e4..c9efe47 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -14,21 +14,26 @@ import os import sys import importlib import inspect + sys.path.insert(0, os.path.abspath('../../')) import django + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'access_controller.settings') os.environ.setdefault('DJANGO_CONFIGURATION', 'Dev') # Fix Django's FileFields from django.db.models.fields.files import FileDescriptor -FileDescriptor.__get__ = lambda self, *args, **kwargs: self -from django.db.models.manager import ManagerDescriptor -ManagerDescriptor.__get__ = lambda self, *args, **kwargs: self.manager +FileDescriptor.__get__ = lambda self, *args, **kwargs: self + +from django.db.models.manager import ManagerDescriptor + +ManagerDescriptor.__get__ = lambda self, *args, **kwargs: self.manager # Stop Django from executing DB queries from django.db.models.query import QuerySet + QuerySet.__repr__ = lambda self: self.__class__.__name__ try: import enchant # NoQA @@ -46,7 +51,8 @@ author = 'SHP S101, group 2' # The full version, including alpha/beta/rc tags release = 'v0.01' -#Django sphinx setup by https://gist.github.com/codingjoe/314bda5a07ff3b41f247 + +# Django sphinx setup by https://gist.github.com/codingjoe/314bda5a07ff3b41f247 # -- General configuration --------------------------------------------------- @@ -121,7 +127,6 @@ def setup(app): app.connect('autodoc-process-docstring', process_modules) - # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. @@ -132,7 +137,6 @@ extensions = [ 'sphinx.ext.viewcode', 'sphinx_rtd_theme', 'sphinx.ext.graphviz', - 'sphinx.ext.napoleon', 'sphinx.ext.inheritance_diagram', 'sphinx_autodoc_typehints' @@ -141,7 +145,6 @@ extensions = [ if enchant is not None: extensions.append('sphinxcontrib.spelling') - # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] @@ -157,7 +160,6 @@ language = 'ru' # This pattern also affects html_static_path and html_extra_path. exclude_patterns = [] - # -- Options for HTML output ------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for @@ -170,7 +172,6 @@ html_theme = "sphinx_rtd_theme" # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] - # -- Extension configuration ------------------------------------------------- # -- Options for intersphinx extension --------------------------------------- @@ -179,14 +180,9 @@ html_static_path = ['_static'] intersphinx_mapping = { 'https://docs.python.org/3/': None, 'django': ( - 'https://docs.djangoproject.com/en/dev/', - 'https://docs.djangoproject.com/en/dev/_objects/' - ), - 'djangoextensions': ('https://django-extensions.readthedocs.org/en/latest/', None), - 'geoposition': ('https://django-geoposition.readthedocs.org/en/latest/', None), - 'braces': ('https://django-braces.readthedocs.org/en/latest/', None), - 'select2': ('https://django-select2.readthedocs.org/en/latest/', None), - 'celery': ('https://celery.readthedocs.org/en/latest/', None), + 'https://docs.djangoproject.com/en/dev/', + 'https://docs.djangoproject.com/en/dev/_objects/' + ), } autodoc_default_flags = ['members'] diff --git a/main/extra_func.py b/main/extra_func.py index 6227bf1..691bd37 100644 --- a/main/extra_func.py +++ b/main/extra_func.py @@ -74,7 +74,10 @@ class ZendeskAdmin: def get_user(self, email: str) -> str: """ - Функция **get_user** возвращает пользователя (объект) по его email + Функция **get_user** возвращает пользователя (объект) по его email + + :param email: email пользователя + :return: email пользователя, найденного в БД """ return self.admin.users.search(email).values[0] diff --git a/main/models.py b/main/models.py index 8665570..f8f8385 100644 --- a/main/models.py +++ b/main/models.py @@ -5,10 +5,7 @@ from django.dispatch import receiver class UserProfile(models.Model): - """ - Модель профиля пользователя - - """ + """Модель профиля пользователя""" user = models.OneToOneField(to=User, on_delete=models.CASCADE, help_text='Пользователь') role = models.CharField(default='None', max_length=100, help_text='Код роли пользователя') @@ -28,10 +25,7 @@ def save_user_profile(sender, instance, **kwargs): class RoleChangeLogs(models.Model): - """ - Модель для логирования изменений ролей пользователя - - """ + """Модель для логирования изменений ролей пользователя""" user = models.ForeignKey(to=User, on_delete=models.CASCADE, help_text='Пользователь, которому присвоили другую роль') name = models.TextField(help_text='Имя пользователя') new_role = models.TextField(help_text='Присвоенная роль') diff --git a/main/views.py b/main/views.py index b5d953a..0e6aa41 100644 --- a/main/views.py +++ b/main/views.py @@ -188,9 +188,12 @@ class AdminPageView(FormView, LoginRequiredMixin, PermissionRequiredMixin): [make_light_agent(user) for user in users] @staticmethod - def count_users(users: User) -> int: #.. todolist:: :this func counts users from all zendesk instead of just from a model: + def count_users(users: User) -> int: """ Функция подсчета количества сотрудников с ролями engineer и light_a + + .. todo:: + this func counts users from all zendesk instead of just from a model: """ engineers, light_agents = 0, 0 for user in users: diff --git a/requirements.txt b/requirements.txt index 826cc73..7a4f941 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,9 +4,9 @@ Pillow==8.1.0 zenpy~=2.0.24 django_registration==3.1.1 - # Documentation Sphinx==3.4.3 sphinx-rtd-theme==0.5.1 sphinx-autodoc-typehints==1.11.1 - +pyenchant==3.2.0 +sphinxcontrib-spelling==7.1.0