Add django-debug-toolbar

This commit is contained in:
Joakim Hellsén 2024-03-17 03:01:18 +01:00
commit 0e750d1233
No known key found for this signature in database
GPG key ID: D196AE66FEBE1DC9
4 changed files with 70 additions and 4 deletions

View file

@ -4,6 +4,7 @@ import os
import sys import sys
from pathlib import Path from pathlib import Path
from django.utils import timezone
from dotenv import find_dotenv, load_dotenv from dotenv import find_dotenv, load_dotenv
load_dotenv(dotenv_path=find_dotenv(), verbose=True) load_dotenv(dotenv_path=find_dotenv(), verbose=True)
@ -33,20 +34,29 @@ EMAIL_TIMEOUT = 10
DEFAULT_FROM_EMAIL: str = os.getenv(key="EMAIL_HOST_USER", default="webmaster@localhost") DEFAULT_FROM_EMAIL: str = os.getenv(key="EMAIL_HOST_USER", default="webmaster@localhost")
SERVER_EMAIL: str = os.getenv(key="EMAIL_HOST_USER", default="webmaster@localhost") SERVER_EMAIL: str = os.getenv(key="EMAIL_HOST_USER", default="webmaster@localhost")
USE_X_FORWARDED_HOST = True USE_X_FORWARDED_HOST = True
INTERNAL_IPS: list[str] = ["127.0.0.1", "localhost"] INTERNAL_IPS: list[str] = ["127.0.0.1", "localhost", "192.168.1.143"]
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
SITE_ID = 1 SITE_ID = 1
PASSWORD_HASHERS: list[str] = ["django.contrib.auth.hashers.Argon2PasswordHasher"] PASSWORD_HASHERS: list[str] = ["django.contrib.auth.hashers.Argon2PasswordHasher"]
ROOT_URLCONF = "feedvault.urls" ROOT_URLCONF = "feedvault.urls"
WSGI_APPLICATION = "feedvault.wsgi.application" WSGI_APPLICATION = "feedvault.wsgi.application"
NINJA_PAGINATION_PER_PAGE = 1000 NINJA_PAGINATION_PER_PAGE = 1000
STATIC_URL = "static/"
STATIC_ROOT = BASE_DIR / "static"
MEDIA_URL = "media/"
MEDIA_ROOT = BASE_DIR / "media"
LOGIN_REDIRECT_URL = "/"
LOGOUT_REDIRECT_URL = "/"
# Is True when running tests, used for not spamming Discord when new users are created # Is True when running tests, used for not spamming Discord when new users are created
TESTING: bool = len(sys.argv) > 1 and sys.argv[1] == "test" TESTING: bool = len(sys.argv) > 1 and sys.argv[1] == "test"
INSTALLED_APPS: list[str] = [ INSTALLED_APPS: list[str] = [
"feedvault.apps.FeedVaultConfig", "feedvault.apps.FeedVaultConfig",
"debug_toolbar",
"django.contrib.auth", "django.contrib.auth",
"django.contrib.staticfiles",
"django.contrib.contenttypes", "django.contrib.contenttypes",
"django.contrib.sessions", "django.contrib.sessions",
"django.contrib.messages", "django.contrib.messages",
@ -54,6 +64,7 @@ INSTALLED_APPS: list[str] = [
] ]
MIDDLEWARE: list[str] = [ MIDDLEWARE: list[str] = [
"debug_toolbar.middleware.DebugToolbarMiddleware",
"django.middleware.security.SecurityMiddleware", "django.middleware.security.SecurityMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware", "django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.common.CommonMiddleware", "django.middleware.common.CommonMiddleware",
@ -120,3 +131,41 @@ TEMPLATES = [
}, },
}, },
] ]
# Create data/logs folder if it doesn't exist
log_folder: Path = BASE_DIR / "data" / "logs"
log_folder.mkdir(parents=True, exist_ok=True)
LOGGING = {
"version": 1,
"disable_existing_loggers": False,
"handlers": {
"console": {
"level": "DEBUG",
"class": "logging.StreamHandler",
},
"file": {
"level": "DEBUG",
"class": "logging.FileHandler",
"filename": BASE_DIR / "data" / "logs" / f"{timezone.now().strftime('%Y%m%d')}.log",
},
},
"loggers": {
"django": {
"handlers": ["console", "file"],
"level": "INFO",
"propagate": True,
},
"django.utils.autoreload": {
"handlers": ["console"],
"level": "INFO",
"propagate": True,
},
"": {
"handlers": ["console", "file"],
"level": "DEBUG",
"propagate": True,
},
},
}

View file

@ -2,7 +2,7 @@ from __future__ import annotations
from django.contrib.sitemaps import GenericSitemap from django.contrib.sitemaps import GenericSitemap
from django.contrib.sitemaps.views import sitemap from django.contrib.sitemaps.views import sitemap
from django.urls import URLPattern, path from django.urls import include, path
from django.views.decorators.cache import cache_page from django.views.decorators.cache import cache_page
from feedvault import views from feedvault import views
@ -19,8 +19,9 @@ sitemaps = {
"domains": GenericSitemap({"queryset": Domain.objects.all(), "date_field": "created_at"}), "domains": GenericSitemap({"queryset": Domain.objects.all(), "date_field": "created_at"}),
} }
urlpatterns: list[URLPattern] = [ urlpatterns: list = [
path(route="", view=views.IndexView.as_view(), name="index"), path(route="", view=views.IndexView.as_view(), name="index"),
path("__debug__/", include("debug_toolbar.urls")),
path(route="feed/<int:feed_id>/", view=views.FeedView.as_view(), name="feed"), path(route="feed/<int:feed_id>/", view=views.FeedView.as_view(), name="feed"),
path(route="feeds/", view=views.FeedsView.as_view(), name="feeds"), path(route="feeds/", view=views.FeedsView.as_view(), name="feeds"),
path(route="add", view=views.AddView.as_view(), name="add"), path(route="add", view=views.AddView.as_view(), name="add"),

17
poetry.lock generated
View file

@ -356,6 +356,21 @@ tzdata = {version = "*", markers = "sys_platform == \"win32\""}
argon2 = ["argon2-cffi (>=19.1.0)"] argon2 = ["argon2-cffi (>=19.1.0)"]
bcrypt = ["bcrypt"] bcrypt = ["bcrypt"]
[[package]]
name = "django-debug-toolbar"
version = "4.3.0"
description = "A configurable set of panels that display various debug information about the current request/response."
optional = false
python-versions = ">=3.8"
files = [
{file = "django_debug_toolbar-4.3.0-py3-none-any.whl", hash = "sha256:e09b7dcb8417b743234dfc57c95a7c1d1d87a88844abd13b4c5387f807b31bf6"},
{file = "django_debug_toolbar-4.3.0.tar.gz", hash = "sha256:0b0dddee5ea29b9cb678593bc0d7a6d76b21d7799cb68e091a2148341a80f3c4"},
]
[package.dependencies]
django = ">=3.2.4"
sqlparse = ">=0.2"
[[package]] [[package]]
name = "django-ninja" name = "django-ninja"
version = "1.1.0" version = "1.1.0"
@ -1012,4 +1027,4 @@ zstd = ["zstandard (>=0.18.0)"]
[metadata] [metadata]
lock-version = "2.0" lock-version = "2.0"
python-versions = "^3.12" python-versions = "^3.12"
content-hash = "4ad21c4b598e168cb8df3e8970ad48b1427dab627303eea66d7cf1b55f817ed0" content-hash = "acbd2c335db0529781e85823f05985272bce298add5c02bf2ddc990d478205db"

View file

@ -14,6 +14,7 @@ gunicorn = "^21.2.0"
dateparser = "^1.2.0" dateparser = "^1.2.0"
discord-webhook = "^1.3.1" discord-webhook = "^1.3.1"
django-ninja = "^1.1.0" django-ninja = "^1.1.0"
django-debug-toolbar = "^4.3.0"
[tool.poetry.group.dev.dependencies] [tool.poetry.group.dev.dependencies]
ruff = "^0.3.0" ruff = "^0.3.0"