mirror of
https://github.com/inventree/InvenTree.git
synced 2025-11-13 11:26:42 +00:00
Refactor settings.py (#10766)
- Move drf-spectacular settings into separate file - Cleanup settings.py core file
This commit is contained in:
41
src/backend/InvenTree/InvenTree/setting/spectacular.py
Normal file
41
src/backend/InvenTree/InvenTree/setting/spectacular.py
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
"""Configuration options for drf-spectacular."""
|
||||||
|
|
||||||
|
from InvenTree.version import inventreeApiVersion
|
||||||
|
|
||||||
|
|
||||||
|
def get_spectacular_settings():
|
||||||
|
"""Return configuration dictionary for drf-spectacular."""
|
||||||
|
return {
|
||||||
|
'TITLE': 'InvenTree API',
|
||||||
|
'DESCRIPTION': 'API for InvenTree - the intuitive open source inventory management system',
|
||||||
|
'LICENSE': {
|
||||||
|
'name': 'MIT',
|
||||||
|
'url': 'https://github.com/inventree/InvenTree/blob/master/LICENSE',
|
||||||
|
},
|
||||||
|
'EXTERNAL_DOCS': {
|
||||||
|
'description': 'More information about InvenTree in the official docs',
|
||||||
|
'url': 'https://docs.inventree.org',
|
||||||
|
},
|
||||||
|
'VERSION': str(inventreeApiVersion()),
|
||||||
|
'SERVE_INCLUDE_SCHEMA': False,
|
||||||
|
'SCHEMA_PATH_PREFIX': '/api/',
|
||||||
|
'POSTPROCESSING_HOOKS': [
|
||||||
|
'drf_spectacular.hooks.postprocess_schema_enums',
|
||||||
|
'InvenTree.schema.postprocess_required_nullable',
|
||||||
|
'InvenTree.schema.postprocess_print_stats',
|
||||||
|
],
|
||||||
|
'ENUM_NAME_OVERRIDES': {
|
||||||
|
'UserTypeEnum': 'users.models.UserProfile.UserType',
|
||||||
|
'TemplateModelTypeEnum': 'report.models.ReportTemplateBase.ModelChoices',
|
||||||
|
'AttachmentModelTypeEnum': 'common.models.Attachment.ModelChoices',
|
||||||
|
'DataImportSessionModelTypeEnum': 'importer.models.DataImportSession.ModelChoices',
|
||||||
|
# Allauth
|
||||||
|
'UnauthorizedStatus': [[401, 401]],
|
||||||
|
'IsTrueEnum': [[True, True]],
|
||||||
|
},
|
||||||
|
# oAuth2
|
||||||
|
'OAUTH2_FLOWS': ['authorizationCode', 'clientCredentials'],
|
||||||
|
'OAUTH2_AUTHORIZATION_URL': '/o/authorize/',
|
||||||
|
'OAUTH2_TOKEN_URL': '/o/token/',
|
||||||
|
'OAUTH2_REFRESH_URL': '/o/revoke_token/',
|
||||||
|
}
|
||||||
@@ -34,15 +34,11 @@ from InvenTree.config import (
|
|||||||
)
|
)
|
||||||
from InvenTree.ready import isInMainThread
|
from InvenTree.ready import isInMainThread
|
||||||
from InvenTree.sentry import default_sentry_dsn, init_sentry
|
from InvenTree.sentry import default_sentry_dsn, init_sentry
|
||||||
from InvenTree.version import (
|
from InvenTree.version import checkMinPythonVersion, inventreeCommitHash
|
||||||
checkMinPythonVersion,
|
|
||||||
inventreeApiVersion,
|
|
||||||
inventreeCommitHash,
|
|
||||||
)
|
|
||||||
from users.oauth2_scopes import oauth2_scopes
|
from users.oauth2_scopes import oauth2_scopes
|
||||||
|
|
||||||
from . import config
|
from . import config
|
||||||
from .setting import locales, markdown, storages
|
from .setting import locales, markdown, spectacular, storages
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import django_stubs_ext
|
import django_stubs_ext
|
||||||
@@ -1483,40 +1479,8 @@ SESAME_MAX_AGE = 300
|
|||||||
LOGIN_REDIRECT_URL = '/api/auth/login-redirect/'
|
LOGIN_REDIRECT_URL = '/api/auth/login-redirect/'
|
||||||
|
|
||||||
# Configuration for API schema generation / oAuth2
|
# Configuration for API schema generation / oAuth2
|
||||||
SPECTACULAR_SETTINGS = {
|
SPECTACULAR_SETTINGS = spectacular.get_spectacular_settings()
|
||||||
'TITLE': 'InvenTree API',
|
|
||||||
'DESCRIPTION': 'API for InvenTree - the intuitive open source inventory management system',
|
|
||||||
'LICENSE': {
|
|
||||||
'name': 'MIT',
|
|
||||||
'url': 'https://github.com/inventree/InvenTree/blob/master/LICENSE',
|
|
||||||
},
|
|
||||||
'EXTERNAL_DOCS': {
|
|
||||||
'description': 'More information about InvenTree in the official docs',
|
|
||||||
'url': 'https://docs.inventree.org',
|
|
||||||
},
|
|
||||||
'VERSION': str(inventreeApiVersion()),
|
|
||||||
'SERVE_INCLUDE_SCHEMA': False,
|
|
||||||
'SCHEMA_PATH_PREFIX': '/api/',
|
|
||||||
'POSTPROCESSING_HOOKS': [
|
|
||||||
'drf_spectacular.hooks.postprocess_schema_enums',
|
|
||||||
'InvenTree.schema.postprocess_required_nullable',
|
|
||||||
'InvenTree.schema.postprocess_print_stats',
|
|
||||||
],
|
|
||||||
'ENUM_NAME_OVERRIDES': {
|
|
||||||
'UserTypeEnum': 'users.models.UserProfile.UserType',
|
|
||||||
'TemplateModelTypeEnum': 'report.models.ReportTemplateBase.ModelChoices',
|
|
||||||
'AttachmentModelTypeEnum': 'common.models.Attachment.ModelChoices',
|
|
||||||
'DataImportSessionModelTypeEnum': 'importer.models.DataImportSession.ModelChoices',
|
|
||||||
# Allauth
|
|
||||||
'UnauthorizedStatus': [[401, 401]],
|
|
||||||
'IsTrueEnum': [[True, True]],
|
|
||||||
},
|
|
||||||
# oAuth2
|
|
||||||
'OAUTH2_FLOWS': ['authorizationCode', 'clientCredentials'],
|
|
||||||
'OAUTH2_AUTHORIZATION_URL': '/o/authorize/',
|
|
||||||
'OAUTH2_TOKEN_URL': '/o/token/',
|
|
||||||
'OAUTH2_REFRESH_URL': '/o/revoke_token/',
|
|
||||||
}
|
|
||||||
OAUTH2_PROVIDER = {
|
OAUTH2_PROVIDER = {
|
||||||
# default scopes
|
# default scopes
|
||||||
'SCOPES': oauth2_scopes,
|
'SCOPES': oauth2_scopes,
|
||||||
|
|||||||
Reference in New Issue
Block a user