diff --git a/config/settings.py b/config/settings.py index be82070..b4215c0 100644 --- a/config/settings.py +++ b/config/settings.py @@ -9,6 +9,7 @@ https://docs.djangoproject.com/en/5.1/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/5.1/ref/settings/ """ + import os from pathlib import Path @@ -23,70 +24,71 @@ BASE_DIR = Path(__file__).resolve().parent.parent # See https://docs.djangoproject.com/en/5.1/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = os.getenv('DJANGO_SECRET_KEY') +SECRET_KEY = os.getenv("DJANGO_SECRET_KEY") # SECURITY WARNING: don't run with debug turned on in production! -DEBUG = os.getenv('DEBUG') +DEBUG = os.getenv("DEBUG") -ALLOWED_HOSTS = eval(os.getenv('ALLOWED_HOSTS')) +ALLOWED_HOSTS = eval(os.getenv("ALLOWED_HOSTS")) # Application definition INSTALLED_APPS = [ - 'django.contrib.admin', - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.messages', - 'django.contrib.staticfiles', - 'django.contrib.sites', - 'django.contrib.flatpages', - 'core.apps.CoreConfig', - 'articles.apps.ArticlesConfig', - 'markdownx', + "django.contrib.admin", + "django.contrib.auth", + "django.contrib.contenttypes", + "django.contrib.sessions", + "django.contrib.messages", + "django.contrib.staticfiles", + "django.contrib.sites", + "django.contrib.flatpages", + "core.apps.CoreConfig", + "articles.apps.ArticlesConfig", + "links.apps.LinksConfig", + "markdownx", ] MIDDLEWARE = [ - 'django.middleware.security.SecurityMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.common.CommonMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - 'django.middleware.clickjacking.XFrameOptionsMiddleware', + "django.middleware.security.SecurityMiddleware", + "django.contrib.sessions.middleware.SessionMiddleware", + "django.middleware.common.CommonMiddleware", + "django.middleware.csrf.CsrfViewMiddleware", + "django.contrib.auth.middleware.AuthenticationMiddleware", + "django.contrib.messages.middleware.MessageMiddleware", + "django.middleware.clickjacking.XFrameOptionsMiddleware", ] -ROOT_URLCONF = 'config.urls' +ROOT_URLCONF = "config.urls" TEMPLATES = [ { - 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [BASE_DIR / 'templates'], - 'APP_DIRS': True, - 'OPTIONS': { - 'context_processors': [ - 'django.template.context_processors.debug', - 'django.template.context_processors.request', - 'django.contrib.auth.context_processors.auth', - 'django.contrib.messages.context_processors.messages', + "BACKEND": "django.template.backends.django.DjangoTemplates", + "DIRS": [BASE_DIR / "templates"], + "APP_DIRS": True, + "OPTIONS": { + "context_processors": [ + "django.template.context_processors.debug", + "django.template.context_processors.request", + "django.contrib.auth.context_processors.auth", + "django.contrib.messages.context_processors.messages", ], }, }, ] -WSGI_APPLICATION = 'config.wsgi.application' +WSGI_APPLICATION = "config.wsgi.application" # Database # https://docs.djangoproject.com/en/5.1/ref/settings/#databases DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.postgresql', - 'NAME': os.getenv('DB_NAME'), - 'USER': os.getenv('DB_USER'), - 'PASSWORD': os.getenv('DB_PASSWORD'), - 'HOST': os.getenv('DB_HOST'), - 'PORT': os.getenv('DB_PORT'), + "default": { + "ENGINE": "django.db.backends.postgresql", + "NAME": os.getenv("DB_NAME"), + "USER": os.getenv("DB_USER"), + "PASSWORD": os.getenv("DB_PASSWORD"), + "HOST": os.getenv("DB_HOST"), + "PORT": os.getenv("DB_PORT"), } } @@ -95,25 +97,25 @@ DATABASES = { AUTH_PASSWORD_VALIDATORS = [ { - 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator", }, { - 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator", }, { - 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + "NAME": "django.contrib.auth.password_validation.CommonPasswordValidator", }, { - 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + "NAME": "django.contrib.auth.password_validation.NumericPasswordValidator", }, ] # Internationalization # https://docs.djangoproject.com/en/5.1/topics/i18n/ -LANGUAGE_CODE = 'en-gb' +LANGUAGE_CODE = "en-gb" -TIME_ZONE = 'UTC' +TIME_ZONE = "UTC" USE_I18N = True @@ -122,10 +124,10 @@ USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/5.1/howto/static-files/ -STATIC_URL = 'static/' -STATIC_ROOT = BASE_DIR / 'static/' -MEDIA_URL = 'media/' -MEDIA_ROOT = BASE_DIR / 'media/' +STATIC_URL = "static/" +STATIC_ROOT = BASE_DIR / "static/" +MEDIA_URL = "media/" +MEDIA_ROOT = BASE_DIR / "media/" # Site id to allow flatpages to function correctly SITE_ID = 1 @@ -145,18 +147,18 @@ SITE_ID = 1 # Tagulous config SERIALIZATION_MODULES = { - 'xml': 'tagulous.serializers.xml_serializer', - 'json': 'tagulous.serializers.json', - 'python': 'tagulous.serializers.python', - 'yaml': 'tagulous.serializers.pyyaml', + "xml": "tagulous.serializers.xml_serializer", + "json": "tagulous.serializers.json", + "python": "tagulous.serializers.python", + "yaml": "tagulous.serializers.pyyaml", } # Markdownx config MARKDOWNX_MARKDOWN_EXTENSIONS = [ - 'markdown.extensions.extra', + "markdown.extensions.extra", ] # Default primary key field type # https://docs.djangoproject.com/en/5.1/ref/settings/#default-auto-field -DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' +DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" diff --git a/links/__init__.py b/links/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/links/admin.py b/links/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/links/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/links/apps.py b/links/apps.py new file mode 100644 index 0000000..964efc6 --- /dev/null +++ b/links/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class LinksConfig(AppConfig): + default_auto_field = "django.db.models.BigAutoField" + name = "links" diff --git a/links/migrations/__init__.py b/links/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/links/models.py b/links/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/links/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/links/tests.py b/links/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/links/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/links/views.py b/links/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/links/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here.