huge updates
This commit is contained in:
1 parent
861d64c95a
commit
ee89d38489
56 files changed
+10130
-4185
No files matched your search
@@ -25,12 +25,12 @@ 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("DJANGO_DEBUG", "False") == "True"
|
||||
DEBUG = os.getenv('DJANGO_DEBUG', 'False') == 'True'
|
||||
|
||||
ALLOWED_HOSTS = os.getenv("DJANGO_ALLOWED_HOSTS", "*").split(",")
|
||||
ALLOWED_HOSTS = os.getenv('DJANGO_ALLOWED_HOSTS', '*').split(',')
|
||||
|
||||
# Application definition
|
||||
|
||||
@@ -49,6 +49,7 @@ INSTALLED_APPS = [
|
||||
|
||||
MIDDLEWARE = [
|
||||
"django.middleware.security.SecurityMiddleware",
|
||||
"whitenoise.middleware.WhiteNoiseMiddleware",
|
||||
"django.contrib.sessions.middleware.SessionMiddleware",
|
||||
"django.middleware.common.CommonMiddleware",
|
||||
"django.middleware.csrf.CsrfViewMiddleware",
|
||||
@@ -128,7 +129,7 @@ USE_TZ = True
|
||||
# Static files (CSS, JavaScript, Images)
|
||||
# https://docs.djangoproject.com/en/5.1/howto/static-files/
|
||||
|
||||
STATIC_URL = "static/"
|
||||
STATIC_URL = "/static/"
|
||||
STATICFILES_DIRS = [
|
||||
os.path.join(BASE_DIR, "static"),
|
||||
]
|
||||
@@ -137,6 +138,10 @@ STATICFILES_FINDERS = [
|
||||
"django.contrib.staticfiles.finders.FileSystemFinder",
|
||||
"django.contrib.staticfiles.finders.AppDirectoriesFinder",
|
||||
]
|
||||
|
||||
# Configure whitenoise
|
||||
STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage"
|
||||
|
||||
# Default primary key field type
|
||||
# https://docs.djangoproject.com/en/5.1/ref/settings/#default-auto-field
|
||||
|
||||
@@ -151,35 +156,27 @@ JAZZMIN_SETTINGS = JAZZMIN_SETTINGS
|
||||
JAZZMIN_UI_TWEAKS = JAZZMIN_UI_TWEAKS
|
||||
|
||||
# Login redirect URL
|
||||
LOGIN_REDIRECT_URL = "/app/dashboard/"
|
||||
LOGIN_URL = "/login/"
|
||||
LOGIN_REDIRECT_URL = '/app/dashboard/'
|
||||
LOGIN_URL = '/login/'
|
||||
|
||||
# Email Configuration
|
||||
EMAIL_BACKEND = os.getenv(
|
||||
"EMAIL_BACKEND", "django.core.mail.backends.console.EmailBackend"
|
||||
)
|
||||
DEFAULT_FROM_EMAIL = os.getenv(
|
||||
"DEFAULT_FROM_EMAIL", "noreply@studentmanagementsystem.com"
|
||||
)
|
||||
EMAIL_BACKEND = os.getenv('EMAIL_BACKEND', 'django.core.mail.backends.console.EmailBackend')
|
||||
DEFAULT_FROM_EMAIL = os.getenv('DEFAULT_FROM_EMAIL', 'noreply@studentmanagementsystem.com')
|
||||
|
||||
# Cache configuration for OTP storage
|
||||
CACHES = {
|
||||
"default": {
|
||||
"BACKEND": "django.core.cache.backends.locmem.LocMemCache",
|
||||
"LOCATION": os.getenv("CACHE_LOCATION", "unique-snowflake"),
|
||||
'default': {
|
||||
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
|
||||
'LOCATION': os.getenv('CACHE_LOCATION', 'unique-snowflake'),
|
||||
}
|
||||
}
|
||||
|
||||
# SMS API configuration
|
||||
SMS_API_KEY = os.getenv("SMS_API_KEY", "")
|
||||
SMS_SENDER_ID = os.getenv("SMS_SENDER_ID", "SMSSYS")
|
||||
SMS_API_KEY = os.getenv('SMS_API_KEY', '')
|
||||
SMS_SENDER_ID = os.getenv('SMS_SENDER_ID', 'SMSSYS')
|
||||
|
||||
|
||||
# CSRF_TRUSTED_ORIGINS = [
|
||||
# "https://ab4c-2405-acc0-1504-65ce-00-2.ngrok-free.app"
|
||||
# ]
|
||||
#
|
||||
# CSRF_TRUSTED_ORIGINS = [
|
||||
# "https://*.ngrok-free.app",
|
||||
# "https://*.ngrok.io"
|
||||
# ]
|
||||
CSRF_TRUSTED_ORIGINS = [
|
||||
"https://*.ngrok-free.app",
|
||||
"https://*.ngrok.io"
|
||||
]
|
||||
@@ -21,26 +21,30 @@ from django.conf import settings
|
||||
from django.conf.urls.static import static
|
||||
from django.contrib.auth import views as auth_views
|
||||
from app.admin import custom_admin_site
|
||||
from django.views.generic import RedirectView
|
||||
from django.views.generic import RedirectView, TemplateView
|
||||
from app import views
|
||||
from app import auth
|
||||
|
||||
# Serve media files without requiring authentication
|
||||
urlpatterns = static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||
|
||||
# Add other URL patterns
|
||||
urlpatterns += [
|
||||
# Main URL patterns for the project
|
||||
urlpatterns = [
|
||||
path("app/", include("app.urls")),
|
||||
path("admin/", custom_admin_site.urls), # Admin site at /admin/
|
||||
path("", RedirectView.as_view(url="/app/dashboard/", permanent=False)), # Redirect root to dashboard
|
||||
path("admin/", custom_admin_site.urls),
|
||||
|
||||
# Custom login and logout views
|
||||
# Root URL redirects to dashboard
|
||||
path("", RedirectView.as_view(url="/app/dashboard/", permanent=False)),
|
||||
|
||||
# Authentication URLs
|
||||
path('login/', auth_views.LoginView.as_view(template_name='login/login.html'), name='login'),
|
||||
path('logout/', auth_views.LogoutView.as_view(next_page='/login/'), name='logout'),
|
||||
|
||||
# Password reset views - main entry point
|
||||
# Password reset URLs
|
||||
path('password-reset/', auth.reset_password_options, name='password_reset'),
|
||||
|
||||
# Firebase service worker URL
|
||||
path('firebase-messaging-sw.js', views.serve_firebase_sw),
|
||||
]
|
||||
|
||||
# Add static and media file serving in development
|
||||
if settings.DEBUG:
|
||||
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
|
||||
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||
Reference in new issue
Block a user