Loading pyproject.toml +10 −6 Changes for pyproject.toml: 10 added lines, 6 removed lines. Original line number Diff line number Diff line Loading @@ -4,10 +4,14 @@ version = "0.1.0" readme = "README.md" requires-python = ">=3.12" dependencies = [ "django>=6.0.3", "django-environ>=0.13.0", "django-rq>=4.0.1", "django-tasks-rq>=0.12.0", "honcho>=2.0.0", "redis>=7.3.0", "dj-database-url~=3.1.2", "django~=6.0.3", "django-environ~=0.13.0", "django-rq~=4.0.1", "django-tasks-rq~=0.12.0", ] [dependency-groups] dev = [ "honcho~=2.0.0", ] sample.env +12 −13 Changes for sample.env: 12 added lines, 13 removed lines. Original line number Diff line number Diff line EMAIL_BATCH_SIZE=10 EMAIL_HOST=mail.klata.net EMAIL_PORT=993 EMAIL_HOST_USER=wybory@klata.net EMAIL_HOST_PASSWORD= EMAIL_USE_TLS=True DEFAULT_FROM_EMAIL=WYBORY <wybory@klata.net> VOTERS_EMAIL_DOMAIN=staszic.waw.pl SITE_URL=http://localhost:8000 RQ_HOST=localhost RQ_PORT=6379 No newline at end of file EMAIL_URL="smtp+tls://wybory:changeme@smtp.example.com:587" # EMAIL_TIMEOUT="20" DEFAULT_FROM_EMAIL="Wybory <wybory@example.com>" # EMAIL_BATCH_SIZE="20" VOTERS_EMAIL_DOMAIN="example.com" SITE_URL="http://localhost:8000" SECRET_KEY="changeme" # DEBUG="false" # ALLOWED_HOSTS="localhost" # RQ_URL="redis://localhost:6379/0" # TIME_ZONE="Etc/UTC" # DATABASE_URL="sqlite:///db.sqlite3" uv.lock +69 −51 File changed.Preview size limit exceeded, changes collapsed. Show changes wybory/settings.py +38 −42 Changes for wybory/settings.py: 38 added lines, 42 removed lines. Original line number Diff line number Diff line Loading @@ -12,43 +12,54 @@ https://docs.djangoproject.com/en/6.0/ref/settings/ from pathlib import Path import environ import dj_database_url # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent # Env env = environ.Env( EMAIL_URL=str, EMAIL_TIMEOUT=(int, 20), DEFAULT_FROM_EMAIL=str, EMAIL_BATCH_SIZE=(int, 20), EMAIL_USE_TLS=(bool, True), RQ_HOST=(str, 'localhost'), RQ_PORT=(int, 6379) VOTERS_EMAIL_DOMAIN=str, SITE_URL=str, SECRET_KEY=str, DEBUG=(bool, False), ALLOWED_HOSTS=(str, "localhost"), RQ_URL=(str, "redis://localhost:6379/0"), TIME_ZONE=(str, "Etc/UTC"), DATABASE_URL=(str, "sqlite://db.sqlite3") ) environ.Env.read_env(BASE_DIR / '.env') EMAIL_BATCH_SIZE = env('EMAIL_BATCH_SIZE') EMAIL_HOST = env('EMAIL_HOST') EMAIL_PORT = env('EMAIL_PORT') EMAIL_HOST_USER = env('EMAIL_HOST_USER') EMAIL_HOST_PASSWORD = env('EMAIL_HOST_PASSWORD') EMAIL_USE_TLS = env('EMAIL_USE_TLS') # email email_config = env.email_url() EMAIL_FILE_PATH = email_config["EMAIL_FILE_PATH"] EMAIL_HOST_USER = email_config["EMAIL_HOST_USER"] EMAIL_HOST_PASSWORD = email_config["EMAIL_HOST_PASSWORD"] EMAIL_HOST = email_config["EMAIL_HOST"] EMAIL_PORT = email_config["EMAIL_PORT"] EMAIL_BACKEND = email_config["EMAIL_BACKEND"] EMAIL_USE_TLS = email_config.get("EMAIL_USE_TLS", False) EMAIL_USE_SSL = email_config.get("EMAIL_USE_SSL", False) EMAIL_TIMEOUT = env('EMAIL_TIMEOUT') DEFAULT_FROM_EMAIL = env('DEFAULT_FROM_EMAIL') VOTERS_EMAIL_DOMAIN=env('VOTERS_EMAIL_DOMAIN') SITE_URL=env('SITE_URL') RQ_HOST = env('RQ_HOST') RQ_PORT = env('RQ_PORT') # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/6.0/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 'django-insecure-kng5+gave13s!$-$u!&_#f$=s-whci&j(3cg3dh39=7p#ypj)k' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True EMAIL_BATCH_SIZE = env('EMAIL_BATCH_SIZE') VOTERS_EMAIL_DOMAIN = env('VOTERS_EMAIL_DOMAIN') # general and security SITE_URL = env('SITE_URL') SECRET_KEY = env('SECRET_KEY') DEBUG = env('DEBUG') ALLOWED_HOSTS = env("ALLOWED_HOSTS").strip() if ALLOWED_HOSTS == "": ALLOWED_HOSTS = [] else: ALLOWED_HOSTS = ALLOWED_HOSTS.split(",") # Django messages from django.contrib.messages import constants as messages Loading @@ -69,21 +80,9 @@ TASKS = { # django-rq RQ_QUEUES = { 'default': { 'HOST': RQ_HOST, 'PORT': RQ_PORT, 'DB': 0, }, 'email_batch': { 'HOST': RQ_HOST, 'PORT': RQ_PORT, 'DB': 0 }, 'email': { 'HOST': RQ_HOST, 'PORT': RQ_PORT, 'DB': 0 } 'default': {"URL": env("RQ_URL")}, 'email_batch': {"URL": env("RQ_URL")}, 'email': {"URL": env("RQ_URL")}, } RQ_SHOW_ADMIN_LINK = True Loading Loading @@ -142,10 +141,7 @@ WSGI_APPLICATION = 'wybory.wsgi.application' # https://docs.djangoproject.com/en/6.0/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } 'default': dj_database_url.parse(env("DATABASE_URL")) } Loading Loading @@ -173,7 +169,7 @@ AUTH_PASSWORD_VALIDATORS = [ LANGUAGE_CODE = 'pl' TIME_ZONE = 'Europe/Warsaw' TIME_ZONE = env("TIME_ZONE") USE_I18N = True Loading Loading
pyproject.toml +10 −6 Changes for pyproject.toml: 10 added lines, 6 removed lines. Original line number Diff line number Diff line Loading @@ -4,10 +4,14 @@ version = "0.1.0" readme = "README.md" requires-python = ">=3.12" dependencies = [ "django>=6.0.3", "django-environ>=0.13.0", "django-rq>=4.0.1", "django-tasks-rq>=0.12.0", "honcho>=2.0.0", "redis>=7.3.0", "dj-database-url~=3.1.2", "django~=6.0.3", "django-environ~=0.13.0", "django-rq~=4.0.1", "django-tasks-rq~=0.12.0", ] [dependency-groups] dev = [ "honcho~=2.0.0", ]
sample.env +12 −13 Changes for sample.env: 12 added lines, 13 removed lines. Original line number Diff line number Diff line EMAIL_BATCH_SIZE=10 EMAIL_HOST=mail.klata.net EMAIL_PORT=993 EMAIL_HOST_USER=wybory@klata.net EMAIL_HOST_PASSWORD= EMAIL_USE_TLS=True DEFAULT_FROM_EMAIL=WYBORY <wybory@klata.net> VOTERS_EMAIL_DOMAIN=staszic.waw.pl SITE_URL=http://localhost:8000 RQ_HOST=localhost RQ_PORT=6379 No newline at end of file EMAIL_URL="smtp+tls://wybory:changeme@smtp.example.com:587" # EMAIL_TIMEOUT="20" DEFAULT_FROM_EMAIL="Wybory <wybory@example.com>" # EMAIL_BATCH_SIZE="20" VOTERS_EMAIL_DOMAIN="example.com" SITE_URL="http://localhost:8000" SECRET_KEY="changeme" # DEBUG="false" # ALLOWED_HOSTS="localhost" # RQ_URL="redis://localhost:6379/0" # TIME_ZONE="Etc/UTC" # DATABASE_URL="sqlite:///db.sqlite3"
wybory/settings.py +38 −42 Changes for wybory/settings.py: 38 added lines, 42 removed lines. Original line number Diff line number Diff line Loading @@ -12,43 +12,54 @@ https://docs.djangoproject.com/en/6.0/ref/settings/ from pathlib import Path import environ import dj_database_url # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent # Env env = environ.Env( EMAIL_URL=str, EMAIL_TIMEOUT=(int, 20), DEFAULT_FROM_EMAIL=str, EMAIL_BATCH_SIZE=(int, 20), EMAIL_USE_TLS=(bool, True), RQ_HOST=(str, 'localhost'), RQ_PORT=(int, 6379) VOTERS_EMAIL_DOMAIN=str, SITE_URL=str, SECRET_KEY=str, DEBUG=(bool, False), ALLOWED_HOSTS=(str, "localhost"), RQ_URL=(str, "redis://localhost:6379/0"), TIME_ZONE=(str, "Etc/UTC"), DATABASE_URL=(str, "sqlite://db.sqlite3") ) environ.Env.read_env(BASE_DIR / '.env') EMAIL_BATCH_SIZE = env('EMAIL_BATCH_SIZE') EMAIL_HOST = env('EMAIL_HOST') EMAIL_PORT = env('EMAIL_PORT') EMAIL_HOST_USER = env('EMAIL_HOST_USER') EMAIL_HOST_PASSWORD = env('EMAIL_HOST_PASSWORD') EMAIL_USE_TLS = env('EMAIL_USE_TLS') # email email_config = env.email_url() EMAIL_FILE_PATH = email_config["EMAIL_FILE_PATH"] EMAIL_HOST_USER = email_config["EMAIL_HOST_USER"] EMAIL_HOST_PASSWORD = email_config["EMAIL_HOST_PASSWORD"] EMAIL_HOST = email_config["EMAIL_HOST"] EMAIL_PORT = email_config["EMAIL_PORT"] EMAIL_BACKEND = email_config["EMAIL_BACKEND"] EMAIL_USE_TLS = email_config.get("EMAIL_USE_TLS", False) EMAIL_USE_SSL = email_config.get("EMAIL_USE_SSL", False) EMAIL_TIMEOUT = env('EMAIL_TIMEOUT') DEFAULT_FROM_EMAIL = env('DEFAULT_FROM_EMAIL') VOTERS_EMAIL_DOMAIN=env('VOTERS_EMAIL_DOMAIN') SITE_URL=env('SITE_URL') RQ_HOST = env('RQ_HOST') RQ_PORT = env('RQ_PORT') # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/6.0/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 'django-insecure-kng5+gave13s!$-$u!&_#f$=s-whci&j(3cg3dh39=7p#ypj)k' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True EMAIL_BATCH_SIZE = env('EMAIL_BATCH_SIZE') VOTERS_EMAIL_DOMAIN = env('VOTERS_EMAIL_DOMAIN') # general and security SITE_URL = env('SITE_URL') SECRET_KEY = env('SECRET_KEY') DEBUG = env('DEBUG') ALLOWED_HOSTS = env("ALLOWED_HOSTS").strip() if ALLOWED_HOSTS == "": ALLOWED_HOSTS = [] else: ALLOWED_HOSTS = ALLOWED_HOSTS.split(",") # Django messages from django.contrib.messages import constants as messages Loading @@ -69,21 +80,9 @@ TASKS = { # django-rq RQ_QUEUES = { 'default': { 'HOST': RQ_HOST, 'PORT': RQ_PORT, 'DB': 0, }, 'email_batch': { 'HOST': RQ_HOST, 'PORT': RQ_PORT, 'DB': 0 }, 'email': { 'HOST': RQ_HOST, 'PORT': RQ_PORT, 'DB': 0 } 'default': {"URL": env("RQ_URL")}, 'email_batch': {"URL": env("RQ_URL")}, 'email': {"URL": env("RQ_URL")}, } RQ_SHOW_ADMIN_LINK = True Loading Loading @@ -142,10 +141,7 @@ WSGI_APPLICATION = 'wybory.wsgi.application' # https://docs.djangoproject.com/en/6.0/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } 'default': dj_database_url.parse(env("DATABASE_URL")) } Loading Loading @@ -173,7 +169,7 @@ AUTH_PASSWORD_VALIDATORS = [ LANGUAGE_CODE = 'pl' TIME_ZONE = 'Europe/Warsaw' TIME_ZONE = env("TIME_ZONE") USE_I18N = True Loading