port to new django, AI automated

This commit is contained in:
2026-03-30 22:35:36 +02:00
parent e2d166e437
commit 372da3caa9
215 changed files with 9283 additions and 2981 deletions

View File

@@ -1,233 +1,205 @@
# Setting the path
import os
from pathlib import Path
gettext = lambda s: s
BASE_DIR = Path(__file__).resolve().parent
PROJECT_PATH = os.path.abspath(os.path.dirname(__file__))
DATA_PATH = os.environ.get('BLECHREIZ_DATA', default=os.path.join(PROJECT_PATH, "data"))
# Django settings for blechreiz project.
DEBUG = True
TEMPLATE_DEBUG = DEBUG
ADMINS = (
('Martin Bauer', 'bauer_martin@gmx.de'),
)
ADMINS = [
("Martin Bauer", "bauer_martin@gmx.de"),
]
MANAGERS = ADMINS
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(DATA_PATH, 'database.sqlite'),
"default": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": os.path.join(PROJECT_PATH, "database.sqlite"),
}
}
# Default primary key field type
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
# Email
EMAIL_HOST = 'smtp.blechreiz.com'
EMAIL_HOST_USER = 'm02b721a'
EMAIL_HOST_PASSWORD = '9Hp4WG5bZ2WVPX5z'
EMAIL_HOST = "smtp.blechreiz.com"
EMAIL_HOST_USER = "m02b721a"
EMAIL_HOST_PASSWORD = "9Hp4WG5bZ2WVPX5z"
EMAIL_USE_TLS = False
# Hosts/domain names that are valid for this site; required if DEBUG is False
# See https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts
ALLOWED_HOSTS = []
ALLOWED_HOSTS = ["localhost", "127.0.0.1", ".blechreiz.com", ".bauer.technology"]
# Local time zone for this installation. Choices can be found here:
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
# although not all choices may be available on all operating systems.
# In a Windows environment this must be set to your system time zone.
TIME_ZONE = 'Europe/Berlin'
# Local time zone for this installation.
TIME_ZONE = "Europe/Berlin"
# Language code for this installation. All choices can be found here:
# http://www.i18nguy.com/unicode/language-identifiers.html
LANGUAGE_CODE = 'de'
# Language code for this installation.
LANGUAGE_CODE = "de"
SITE_ID = 1
# If you set this to False, Django will make some optimizations so as not
# to load the internationalization machinery.
# Internationalization
USE_I18N = True
# If you set this to False, Django will not format dates, numbers and
# calendars according to the current locale.
USE_L10N = True
# If you set this to False, Django will not use timezone-aware datetimes.
USE_TZ = True
# Absolute filesystem path to the directory that will hold user-uploaded files.
# Example: "/var/www/example.com/media/"
MEDIA_ROOT = PROJECT_PATH + "/media"
MEDIA_ROOT = PROJECT_PATH + "/media/"
# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://example.com/media/", "http://media.example.com/"
MEDIA_URL = '/media/'
# URL that handles the media served from MEDIA_ROOT.
MEDIA_URL = "/media/"
# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/var/www/example.com/static/"
STATIC_ROOT = PROJECT_PATH + '/static_collection'
STATIC_ROOT = PROJECT_PATH + "/static_collection"
# URL prefix for static files.
# Example: "http://example.com/static/", "http://static.example.com/"
STATIC_URL = '/static/'
STATIC_URL = "/static/"
LOGIN_URL = "/musicians/login"
PUBLIC_URLS = ("^musicians/login/?$", "^musicians/login/usernames/?$", "^eventplanner_gcal/gcalApiCallback*")
PUBLIC_URLS = (
"^musicians/login/?$",
"^musicians/login/usernames/?$",
"^eventplanner_gcal/gcalApiCallback*",
)
# Additional locations of static files
STATICFILES_DIRS = (
#PROJECT_PATH + '/static',
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)
STATICFILES_DIRS = [
PROJECT_PATH + "/static",
]
# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# 'django.contrib.staticfiles.finders.DefaultStorageFinder',
)
# List of finder classes that know how to find static files in various locations.
STATICFILES_FINDERS = [
"django.contrib.staticfiles.finders.FileSystemFinder",
"django.contrib.staticfiles.finders.AppDirectoriesFinder",
]
# Make this unique, and don't share it with anybody.
SECRET_KEY = 'x$8&9s6t%eeg=wyhar87934wh_s$dbpm(73g4ho&n)9_wogj6p'
SECRET_KEY = "x$8&9s6t%eeg=wyhar87934wh_s$dbpm(73g4ho&n)9_wogj6p"
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",
"blechreiz.middleware.EnforceLoginMiddleware",
"blechreiz.middleware.DetectDevice",
]
ROOT_URLCONF = "blechreiz.urls"
# Python dotted path to the WSGI application used by Django's runserver.
WSGI_APPLICATION = "blechreiz.wsgi.application"
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
PROJECT_PATH + '/templates',
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [
PROJECT_PATH + "/templates",
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
# Insert your TEMPLATE_CONTEXT_PROCESSORS here or use this
# list if you haven't customized them:
'django.contrib.auth.context_processors.auth',
'django.template.context_processors.i18n',
'django.template.context_processors.request',
'django.template.context_processors.media',
'django.template.context_processors.static',
'sekizai.context_processors.sekizai',
"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",
"django.template.context_processors.i18n",
"django.template.context_processors.media",
"django.template.context_processors.static",
"sekizai.context_processors.sekizai",
],
},
},
]
MIDDLEWARE = (
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
#'blechreiz.middleware.EnforceLoginMiddleware',
'blechreiz.middleware.DetectDevice',
# Uncomment the next line for simple clickjacking protection:
# 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
ROOT_URLCONF = 'blechreiz.urls'
# Python dotted path to the WSGI application used by Django's runserver.
WSGI_APPLICATION = 'blechreiz.wsgi.application'
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.admindocs',
'crispy_forms', # better looking forms ( bootstrap )
'sekizai', # for the addtoblock directive in templates
'rest_framework', # for event management api
# Own Things
'bootstrapTheme', # Theme
'website', # Blechreiz Website in general
'musicians', # User Management
'eventplanner', # Event Management
'eventplanner_gcal', # Event Management Sync with Google Calendar
'simpleforum', # Messages ( Forum )
'location_field', # custom location field used in Event Management
'scoremanager', # manager of scores, repertoire etc.
# 'imagestore',
# 'sorl.thumbnail',
# 'tagging'
)
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.sites",
"django.contrib.messages",
"django.contrib.staticfiles",
# Third-party apps
"crispy_forms",
"crispy_bootstrap5",
"sekizai",
"rest_framework",
# Own apps
"bootstrapTheme",
"website",
"musicians",
"eventplanner",
"eventplanner_gcal",
"simpleforum",
"location_field",
"scoremanager",
# 'imagestore', # Disabled
]
IMAGESTORE_TEMPLATE = "website/base.html"
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAuthenticated',),
'PAGINATE_BY': 10
"DEFAULT_PERMISSION_CLASSES": ["rest_framework.permissions.IsAuthenticated"],
"DEFAULT_PAGINATION_CLASS": "rest_framework.pagination.PageNumberPagination",
"PAGE_SIZE": 10,
}
GCAL_COUPLING = {
'eventPrefix': 'Blechreiz: ',
'developerKey': 'blechreiz-homepage',
'clientId': '34462582242-4kpdvvbi27ajt4u22uitqurpve9o8ipj.apps.googleusercontent.com',
'client_secret': 'y4t9XBrJdCODPTO5UvtONWWn',
'credentials_file': DATA_PATH + '/calendarCredentials.dat',
'push_url': "https://blechreiz.bauer.technology/eventplanner_gcal/gcalApiCallback",
"eventPrefix": "Blechreiz: ",
"developerKey": "blechreiz-homepage",
"clientId": "34462582242-4kpdvvbi27ajt4u22uitqurpve9o8ipj.apps.googleusercontent.com",
"client_secret": "y4t9XBrJdCODPTO5UvtONWWn",
"credentials_file": PROJECT_PATH + "/calendarCredentials.dat",
"push_url": "https://blechreiz.bauer.technology/eventplanner_gcal/gcalApiCallback",
}
GOOGLE_MAPS_API_KEY = 'AIzaSyCf9Lm5ckjmVd08scTOd7fB1dC_UCoumKg'
GCAL_SYNC_ENABLED = True
CRISPY_TEMPLATE_PACK = 'bootstrap'
# Crispy Forms configuration
CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap5"
CRISPY_TEMPLATE_PACK = "bootstrap5"
# A sample logging configuration. The only tangible logging
# performed by this configuration is to send an email to
# the site admins on every HTTP 500 error when DEBUG=False.
# See http://docs.djangoproject.com/en/dev/topics/logging for
# more details on how to customize your logging configuration.
# Logging configuration
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '{levelname} {asctime} {module} {message}',
'style': '{',
"version": 1,
"disable_existing_loggers": False,
"handlers": {
"file": {
"level": "DEBUG",
"class": "logging.FileHandler",
"filename": PROJECT_PATH + "/eventplanner.log",
},
'simple': {
'format': '{levelname} {asctime} {message}',
'style': '{',
"console": {
"level": "DEBUG",
"class": "logging.StreamHandler",
},
},
'handlers': {
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': DATA_PATH + '/eventplanner.log',
"loggers": {
"eventplanner_gcal": {
"handlers": ["file", "console"],
"level": "DEBUG",
"propagate": True,
},
"eventplanner": {
"handlers": ["file", "console"],
"level": "DEBUG",
"propagate": True,
},
},
'loggers': {
'eventplanner_gcal': {
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True,
},
'eventplanner': {
'handler': ['file'],
'level': 'DEBUG',
'propagate': True,
}
},
}