From e1804f486a87157fdb0de96ba18f06209e53a95a Mon Sep 17 00:00:00 2001 From: Matthew Glanz Date: Tue, 26 Sep 2023 17:25:13 -0400 Subject: [PATCH 01/59] Created new registration form --- ACMAS/app/ACMAS_Web/forms.py | 11 +++++++++++ ACMAS/app/ACMAS_Web/models.py | 9 +++++++++ ACMAS/app/ACMAS_Web/templates/navbar.html | 6 ++++++ ACMAS/app/ACMAS_Web/templates/register.html | 10 ++++++++++ ACMAS/app/ACMAS_Web/urls.py | 2 ++ ACMAS/app/ACMAS_Web/views.py | 18 ++++++++++++++++++ 6 files changed, 56 insertions(+) create mode 100644 ACMAS/app/ACMAS_Web/forms.py create mode 100644 ACMAS/app/ACMAS_Web/templates/register.html diff --git a/ACMAS/app/ACMAS_Web/forms.py b/ACMAS/app/ACMAS_Web/forms.py new file mode 100644 index 0000000..e115460 --- /dev/null +++ b/ACMAS/app/ACMAS_Web/forms.py @@ -0,0 +1,11 @@ +from django.contrib.auth import login, authenticate +from django.contrib.auth.forms import UserCreationForm +from django import forms + +class RegisterForm(UserCreationForm): + email = forms.EmailField() + + class Meta: + model = User + fields = ["username", "email", "password1", "password2"] + diff --git a/ACMAS/app/ACMAS_Web/models.py b/ACMAS/app/ACMAS_Web/models.py index 9c35c4b..39f360a 100644 --- a/ACMAS/app/ACMAS_Web/models.py +++ b/ACMAS/app/ACMAS_Web/models.py @@ -39,3 +39,12 @@ class UploadedFile(models.Model): def __str__(self): return self.filename + +class User(models.Model): + username = models.CharField(max_length=50) + password = models.CharField(max_length=50) + email = models.CharField(max_length=50) + + def __str__(self): + return self.username + diff --git a/ACMAS/app/ACMAS_Web/templates/navbar.html b/ACMAS/app/ACMAS_Web/templates/navbar.html index 2597085..729d1dc 100644 --- a/ACMAS/app/ACMAS_Web/templates/navbar.html +++ b/ACMAS/app/ACMAS_Web/templates/navbar.html @@ -114,6 +114,12 @@ + + + + diff --git a/ACMAS/app/ACMAS_Web/templates/register.html b/ACMAS/app/ACMAS_Web/templates/register.html new file mode 100644 index 0000000..ac19623 --- /dev/null +++ b/ACMAS/app/ACMAS_Web/templates/register.html @@ -0,0 +1,10 @@ +{% block title %} Create an Account {% endblock %} +{% block content %} +
+ {% csrf_token %} + {{form}} + +
+ +{% endblock %} + diff --git a/ACMAS/app/ACMAS_Web/urls.py b/ACMAS/app/ACMAS_Web/urls.py index 220514f..7d82671 100644 --- a/ACMAS/app/ACMAS_Web/urls.py +++ b/ACMAS/app/ACMAS_Web/urls.py @@ -33,6 +33,8 @@ path("sitemap.xml", views.sitemap, name="sitemap"), path("favicon.ico", views.favicon, name="favicon"), path("robots.txt", views.robots, name="robots"), + path("register", views.register, name="register"), + #path("admin", admin.site.urls), ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) diff --git a/ACMAS/app/ACMAS_Web/views.py b/ACMAS/app/ACMAS_Web/views.py index baf5841..c2af82d 100644 --- a/ACMAS/app/ACMAS_Web/views.py +++ b/ACMAS/app/ACMAS_Web/views.py @@ -2,6 +2,10 @@ from django.core.cache import cache from django.shortcuts import redirect, render +from django.contrib.auth import login, authenticate +from django.contrib.auth.forms import UserCreationForm + +#from .forms import RegisterForm from .models import UploadedFile from .search import searchFacade @@ -208,3 +212,17 @@ def uploadManually(request): # Do manual question upload logic createFacade().uploadText(school, course, question, answer) return render(request, "upload-manually.html", context) + +def register(request): + if request.method == "POST": + form = UserCreationForm(request.POST) + if form.is_valid(): + form.save() + return redirect("/") + else: + form = UserCreationForm() + + context = generateContext(request) + return render(request, "register.html", {"form": form, "context": context}) + + From 0bade48b90ed17ff26f54d2215f66e463c47d9d9 Mon Sep 17 00:00:00 2001 From: Matthew Glanz Date: Tue, 26 Sep 2023 17:27:53 -0400 Subject: [PATCH 02/59] Added customizable registration form --- ACMAS/app/ACMAS_Web/forms.py | 1 + ACMAS/app/ACMAS_Web/views.py | 8 +++----- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/ACMAS/app/ACMAS_Web/forms.py b/ACMAS/app/ACMAS_Web/forms.py index e115460..7fb0bde 100644 --- a/ACMAS/app/ACMAS_Web/forms.py +++ b/ACMAS/app/ACMAS_Web/forms.py @@ -1,6 +1,7 @@ from django.contrib.auth import login, authenticate from django.contrib.auth.forms import UserCreationForm from django import forms +from django.contrib.auth.models import User class RegisterForm(UserCreationForm): email = forms.EmailField() diff --git a/ACMAS/app/ACMAS_Web/views.py b/ACMAS/app/ACMAS_Web/views.py index c2af82d..9731321 100644 --- a/ACMAS/app/ACMAS_Web/views.py +++ b/ACMAS/app/ACMAS_Web/views.py @@ -3,10 +3,8 @@ from django.core.cache import cache from django.shortcuts import redirect, render from django.contrib.auth import login, authenticate -from django.contrib.auth.forms import UserCreationForm - -#from .forms import RegisterForm +from .forms import RegisterForm from .models import UploadedFile from .search import searchFacade from .upload import createFacade @@ -215,12 +213,12 @@ def uploadManually(request): def register(request): if request.method == "POST": - form = UserCreationForm(request.POST) + form = RegisterForm(request.POST) if form.is_valid(): form.save() return redirect("/") else: - form = UserCreationForm() + form = RegisterForm() context = generateContext(request) return render(request, "register.html", {"form": form, "context": context}) From f8e0061037851d8afaae497b31768e72fc2cad89 Mon Sep 17 00:00:00 2001 From: Matthew Glanz Date: Tue, 26 Sep 2023 17:37:57 -0400 Subject: [PATCH 03/59] Added login page for registration verification --- .../app/ACMAS_Web/templates/registration/login.html | 12 ++++++++++++ ACMAS/app/ACMAS_Web/urls.py | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 ACMAS/app/ACMAS_Web/templates/registration/login.html diff --git a/ACMAS/app/ACMAS_Web/templates/registration/login.html b/ACMAS/app/ACMAS_Web/templates/registration/login.html new file mode 100644 index 0000000..1423eab --- /dev/null +++ b/ACMAS/app/ACMAS_Web/templates/registration/login.html @@ -0,0 +1,12 @@ +{%block title%} +Login +{%endblock%} + +{%block content%} +
+ {%csrf_token%} + {{form}} + +

Don't have an account? Create one here

+
+{%endblock%} \ No newline at end of file diff --git a/ACMAS/app/ACMAS_Web/urls.py b/ACMAS/app/ACMAS_Web/urls.py index 7d82671..7ad0e1b 100644 --- a/ACMAS/app/ACMAS_Web/urls.py +++ b/ACMAS/app/ACMAS_Web/urls.py @@ -16,7 +16,7 @@ # from django.contrib import admin from django.conf import settings from django.conf.urls.static import static -from django.urls import path +from django.urls import include, path from . import views @@ -35,6 +35,7 @@ path("robots.txt", views.robots, name="robots"), path("register", views.register, name="register"), #path("admin", admin.site.urls), + path("", include("django.contrib.auth.urls")), ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) From 5ea61bbab7ec23d1ce2bda8c50937545f4b34fee Mon Sep 17 00:00:00 2001 From: Matthew Glanz Date: Wed, 27 Sep 2023 12:03:22 -0400 Subject: [PATCH 04/59] Added login navbar item and redirect to home --- ACMAS/app/ACMAS/settings.py | 4 ++++ ACMAS/app/ACMAS_Web/templates/navbar.html | 5 +++++ ACMAS/app/ACMAS_Web/urls.py | 1 + 3 files changed, 10 insertions(+) diff --git a/ACMAS/app/ACMAS/settings.py b/ACMAS/app/ACMAS/settings.py index 55c7772..4588f1f 100644 --- a/ACMAS/app/ACMAS/settings.py +++ b/ACMAS/app/ACMAS/settings.py @@ -132,3 +132,7 @@ # https://docs.djangoproject.com/en/4.0/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" + +LOGIN_REDIRECT_URL = "/" + + diff --git a/ACMAS/app/ACMAS_Web/templates/navbar.html b/ACMAS/app/ACMAS_Web/templates/navbar.html index 729d1dc..3b62a27 100644 --- a/ACMAS/app/ACMAS_Web/templates/navbar.html +++ b/ACMAS/app/ACMAS_Web/templates/navbar.html @@ -120,6 +120,11 @@ Register + + + diff --git a/ACMAS/app/ACMAS_Web/urls.py b/ACMAS/app/ACMAS_Web/urls.py index 7ad0e1b..751c260 100644 --- a/ACMAS/app/ACMAS_Web/urls.py +++ b/ACMAS/app/ACMAS_Web/urls.py @@ -36,6 +36,7 @@ path("register", views.register, name="register"), #path("admin", admin.site.urls), path("", include("django.contrib.auth.urls")), + ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) From 8e5b81a9e4584fd54a8389680a0ddc0b1bf1fe59 Mon Sep 17 00:00:00 2001 From: Matthew Glanz Date: Tue, 3 Oct 2023 14:41:05 -0400 Subject: [PATCH 05/59] Enabled Admin View --- ACMAS/app/ACMAS_Web/urls.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ACMAS/app/ACMAS_Web/urls.py b/ACMAS/app/ACMAS_Web/urls.py index 751c260..646465b 100644 --- a/ACMAS/app/ACMAS_Web/urls.py +++ b/ACMAS/app/ACMAS_Web/urls.py @@ -13,7 +13,7 @@ 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ -# from django.contrib import admin +from django.contrib import admin from django.conf import settings from django.conf.urls.static import static from django.urls import include, path @@ -34,7 +34,7 @@ path("favicon.ico", views.favicon, name="favicon"), path("robots.txt", views.robots, name="robots"), path("register", views.register, name="register"), - #path("admin", admin.site.urls), + path("admin/", admin.site.urls), path("", include("django.contrib.auth.urls")), ] From 3a61fa8630502ccb7a4d1fb631758820cd7831a0 Mon Sep 17 00:00:00 2001 From: Matthew Glanz Date: Tue, 3 Oct 2023 15:10:57 -0400 Subject: [PATCH 06/59] Added relevant admin models --- ACMAS/app/ACMAS_Web/admin.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/ACMAS/app/ACMAS_Web/admin.py b/ACMAS/app/ACMAS_Web/admin.py index 4185d36..2ff2db0 100644 --- a/ACMAS/app/ACMAS_Web/admin.py +++ b/ACMAS/app/ACMAS_Web/admin.py @@ -1,3 +1,15 @@ -# from django.contrib import admin +from django.contrib import admin # Register your models here. +from .models import Question, University, Course, UploadedFile, User + +admin.site.register(Question) +admin.site.register(University) +admin.site.register(Course) +admin.site.register(UploadedFile) +admin.site.register(User) + +#Headers for admin page +admin.site.site_header = "ACMAS Admin" +admin.site.site_title = "ACMAS Admin Portal" +admin.site.index_title = "Welcome to ACMAS Portal" From 3d5e8b8412b326f821f2d68487400991616425ea Mon Sep 17 00:00:00 2001 From: Matthew Glanz Date: Tue, 3 Oct 2023 16:55:25 -0400 Subject: [PATCH 07/59] Added secure superuser credentials and logout --- ACMAS/.env | 3 +++ ACMAS/app/ACMAS_Web/templates/navbar.html | 6 ++++++ ACMAS/app/entrypoint.sh | 4 ++++ 3 files changed, 13 insertions(+) diff --git a/ACMAS/.env b/ACMAS/.env index 2cf52f0..1e4ddda 100644 --- a/ACMAS/.env +++ b/ACMAS/.env @@ -13,3 +13,6 @@ SQL_HOST=db SQL_PASSWORD=PASSWORD SQL_PORT=5432 SQL_USER=acmas_admin +DJANGO_USER=acmas_admin +DJANGO_PASS=password +DJANGO_EMAIL=acmas.systems@gmail.com diff --git a/ACMAS/app/ACMAS_Web/templates/navbar.html b/ACMAS/app/ACMAS_Web/templates/navbar.html index 3b62a27..7b464c9 100644 --- a/ACMAS/app/ACMAS_Web/templates/navbar.html +++ b/ACMAS/app/ACMAS_Web/templates/navbar.html @@ -125,6 +125,12 @@ Login + + + + diff --git a/ACMAS/app/entrypoint.sh b/ACMAS/app/entrypoint.sh index d8dc432..96ecccf 100644 --- a/ACMAS/app/entrypoint.sh +++ b/ACMAS/app/entrypoint.sh @@ -18,4 +18,8 @@ python manage.py makemigrations ACMAS_Web python manage.py migrate python manage.py collectstatic --noinput +#Set up a superuser +echo "from django.contrib.auth.models import User; +User.objects.create_superuser('$DJANGO_USER', '$DJANGO_EMAIL', '$DJANGO_PASS')" | python manage.py shell + exec "$@" \ No newline at end of file From 9e4a8a65ca5b48ab693a7c228780395ceb139510 Mon Sep 17 00:00:00 2001 From: Matthew Glanz Date: Tue, 3 Oct 2023 17:17:22 -0400 Subject: [PATCH 08/59] Added placeholder profile page, extended navbar to new pages --- ACMAS/app/ACMAS_Web/templates/navbar.html | 37 ++++++++++++------- ACMAS/app/ACMAS_Web/templates/profile.html | 5 +++ ACMAS/app/ACMAS_Web/templates/register.html | 1 + .../templates/registration/login.html | 1 + ACMAS/app/ACMAS_Web/urls.py | 1 + ACMAS/app/ACMAS_Web/views.py | 5 +++ 6 files changed, 37 insertions(+), 13 deletions(-) create mode 100644 ACMAS/app/ACMAS_Web/templates/profile.html diff --git a/ACMAS/app/ACMAS_Web/templates/navbar.html b/ACMAS/app/ACMAS_Web/templates/navbar.html index 7b464c9..1e3a6ea 100644 --- a/ACMAS/app/ACMAS_Web/templates/navbar.html +++ b/ACMAS/app/ACMAS_Web/templates/navbar.html @@ -115,21 +115,32 @@ GitHub Repository - - + {%if user.is_authenticated %} + {%block user%} + + + + + {%endblock%} + {% else %} + {%block anon%} + + + + + + {%endblock%} + {% endif %} - - - - - diff --git a/ACMAS/app/ACMAS_Web/templates/profile.html b/ACMAS/app/ACMAS_Web/templates/profile.html new file mode 100644 index 0000000..d446ea6 --- /dev/null +++ b/ACMAS/app/ACMAS_Web/templates/profile.html @@ -0,0 +1,5 @@ +{% extends 'navbar.html' %} +{% block title %}Profile{% endblock %} +{% block content %} +

hello {{user.username}}

+{% endblock%} \ No newline at end of file diff --git a/ACMAS/app/ACMAS_Web/templates/register.html b/ACMAS/app/ACMAS_Web/templates/register.html index ac19623..94f4e8e 100644 --- a/ACMAS/app/ACMAS_Web/templates/register.html +++ b/ACMAS/app/ACMAS_Web/templates/register.html @@ -1,3 +1,4 @@ +{% extends 'navbar.html' %} {% block title %} Create an Account {% endblock %} {% block content %}
diff --git a/ACMAS/app/ACMAS_Web/templates/registration/login.html b/ACMAS/app/ACMAS_Web/templates/registration/login.html index 1423eab..1304339 100644 --- a/ACMAS/app/ACMAS_Web/templates/registration/login.html +++ b/ACMAS/app/ACMAS_Web/templates/registration/login.html @@ -1,3 +1,4 @@ +{% extends 'navbar.html' %} {%block title%} Login {%endblock%} diff --git a/ACMAS/app/ACMAS_Web/urls.py b/ACMAS/app/ACMAS_Web/urls.py index 646465b..5047b71 100644 --- a/ACMAS/app/ACMAS_Web/urls.py +++ b/ACMAS/app/ACMAS_Web/urls.py @@ -36,6 +36,7 @@ path("register", views.register, name="register"), path("admin/", admin.site.urls), path("", include("django.contrib.auth.urls")), + path("profile", views.profile, name="profile"), ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) diff --git a/ACMAS/app/ACMAS_Web/views.py b/ACMAS/app/ACMAS_Web/views.py index 9731321..43b5705 100644 --- a/ACMAS/app/ACMAS_Web/views.py +++ b/ACMAS/app/ACMAS_Web/views.py @@ -223,4 +223,9 @@ def register(request): context = generateContext(request) return render(request, "register.html", {"form": form, "context": context}) +#profile +def profile(request): + context = generateContext(request) + return render(request, "profile.html", context) + From 94a74aba3172d3695b10bba23f507ad41f96df47 Mon Sep 17 00:00:00 2001 From: Matthew Glanz Date: Tue, 3 Oct 2023 17:38:44 -0400 Subject: [PATCH 09/59] Added logout redirect to home --- ACMAS/app/ACMAS/settings.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ACMAS/app/ACMAS/settings.py b/ACMAS/app/ACMAS/settings.py index 4588f1f..fa8f416 100644 --- a/ACMAS/app/ACMAS/settings.py +++ b/ACMAS/app/ACMAS/settings.py @@ -134,5 +134,4 @@ DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" LOGIN_REDIRECT_URL = "/" - - +LOGOUT_REDIRECT_URL = "/" \ No newline at end of file From 400ed5cc764b7527d7054c3dbf96ae816454f79a Mon Sep 17 00:00:00 2001 From: Matthew G Date: Fri, 6 Oct 2023 11:02:41 -0400 Subject: [PATCH 10/59] Added newline for Lint check --- ACMAS/app/ACMAS/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ACMAS/app/ACMAS/settings.py b/ACMAS/app/ACMAS/settings.py index fa8f416..1743efa 100644 --- a/ACMAS/app/ACMAS/settings.py +++ b/ACMAS/app/ACMAS/settings.py @@ -134,4 +134,4 @@ DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" LOGIN_REDIRECT_URL = "/" -LOGOUT_REDIRECT_URL = "/" \ No newline at end of file +LOGOUT_REDIRECT_URL = "/" From ec0b6eea174a81b02709138d145b05a88c20e04b Mon Sep 17 00:00:00 2001 From: Matthew Glanz Date: Fri, 13 Oct 2023 16:41:45 -0400 Subject: [PATCH 11/59] Enabled password change ability on profile page --- ACMAS/app/ACMAS_Web/templates/profile.html | 7 ++++++- ACMAS/app/ACMAS_Web/urls.py | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ACMAS/app/ACMAS_Web/templates/profile.html b/ACMAS/app/ACMAS_Web/templates/profile.html index d446ea6..ebf6cab 100644 --- a/ACMAS/app/ACMAS_Web/templates/profile.html +++ b/ACMAS/app/ACMAS_Web/templates/profile.html @@ -1,5 +1,10 @@ {% extends 'navbar.html' %} {% block title %}Profile{% endblock %} {% block content %} -

hello {{user.username}}

+

Hello {{user.username}}!

+

+ +

Want to change it up?

+ Change Password + {% endblock%} \ No newline at end of file diff --git a/ACMAS/app/ACMAS_Web/urls.py b/ACMAS/app/ACMAS_Web/urls.py index 5047b71..13f0ec3 100644 --- a/ACMAS/app/ACMAS_Web/urls.py +++ b/ACMAS/app/ACMAS_Web/urls.py @@ -17,6 +17,7 @@ from django.conf import settings from django.conf.urls.static import static from django.urls import include, path +from django.contrib.auth import views as auth_views from . import views @@ -37,7 +38,11 @@ path("admin/", admin.site.urls), path("", include("django.contrib.auth.urls")), path("profile", views.profile, name="profile"), + #password change + path("password/", auth_views.PasswordChangeView.as_view()), + path("password/done/", auth_views.PasswordChangeDoneView.as_view()), + ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) From a6ff9a501045e0adbe15546ea570e9a47eb63bf8 Mon Sep 17 00:00:00 2001 From: Matthew Glanz Date: Fri, 13 Oct 2023 17:11:12 -0400 Subject: [PATCH 12/59] Customized pages based on login status --- .../app/ACMAS_Web/templates/upload-file.html | 36 ++++++++++++++--- .../ACMAS_Web/templates/upload-manually.html | 39 ++++++++++++++++--- 2 files changed, 63 insertions(+), 12 deletions(-) diff --git a/ACMAS/app/ACMAS_Web/templates/upload-file.html b/ACMAS/app/ACMAS_Web/templates/upload-file.html index 30cb170..08ec5fc 100644 --- a/ACMAS/app/ACMAS_Web/templates/upload-file.html +++ b/ACMAS/app/ACMAS_Web/templates/upload-file.html @@ -41,8 +41,20 @@
- -

ACMAS Upload

+ + {%if user.is_authenticated %} + {%block file-Up%} + +

ACMAS Upload

+ {%endblock%} + {% else %} + {%block anon-File-Up%} +

Anonymous ACMAS Upload

+
Note: Anonymous uploads need to be approved by a moderator before being published to ACMAS
+ + {%endblock%} + {% endif %} + {% csrf_token %} @@ -66,10 +78,22 @@

ACMAS Upload

- -
- -
+ + {%if user.is_authenticated %} + {%block submitNew%} + +
+ +
+ {%endblock%} + {% else %} + {%block submitQueue%} + +
+ +
+ {%endblock%} + {% endif %}
diff --git a/ACMAS/app/ACMAS_Web/templates/upload-manually.html b/ACMAS/app/ACMAS_Web/templates/upload-manually.html index 761fe9f..71cedb5 100644 --- a/ACMAS/app/ACMAS_Web/templates/upload-manually.html +++ b/ACMAS/app/ACMAS_Web/templates/upload-manually.html @@ -41,8 +41,20 @@
- -

ACMAS Upload

+ + {%if user.is_authenticated %} + {%block file-Up%} + +

ACMAS Upload

+ {%endblock%} + {% else %} + {%block anon-File-Up%} +

Anonymous ACMAS Upload

+
Note: Anonymous uploads need to be approved by a moderator before being published to ACMAS
+ + {%endblock%} + {% endif %} +
{% csrf_token %} @@ -61,10 +73,25 @@

ACMAS Upload

- -
- -
+ + + {%if user.is_authenticated %} + {%block submit%} + +
+ +
+ {%endblock%} + {% else %} + {%block submitQueue%} + +
+ +
+ {%endblock%} + {% endif %} + +
From 38a8c836fbfa6239ee6ef8ae88cb62495e3cedc8 Mon Sep 17 00:00:00 2001 From: Matthew Glanz Date: Fri, 13 Oct 2023 17:32:36 -0400 Subject: [PATCH 13/59] Removed upload functionality for logged out users and locked pages --- ACMAS/app/ACMAS_Web/templates/index.html | 6 +++- ACMAS/app/ACMAS_Web/templates/navbar.html | 37 +++++++++++++---------- ACMAS/app/ACMAS_Web/views.py | 6 ++-- 3 files changed, 30 insertions(+), 19 deletions(-) diff --git a/ACMAS/app/ACMAS_Web/templates/index.html b/ACMAS/app/ACMAS_Web/templates/index.html index 6992131..00b916a 100644 --- a/ACMAS/app/ACMAS_Web/templates/index.html +++ b/ACMAS/app/ACMAS_Web/templates/index.html @@ -62,7 +62,8 @@
  • by Course
  • - + {%if user.is_authenticated %} + {%block UploadOptions%} + {%endblock%} + {% endif %} + diff --git a/ACMAS/app/ACMAS_Web/templates/navbar.html b/ACMAS/app/ACMAS_Web/templates/navbar.html index 1e3a6ea..5e0a94a 100644 --- a/ACMAS/app/ACMAS_Web/templates/navbar.html +++ b/ACMAS/app/ACMAS_Web/templates/navbar.html @@ -93,23 +93,28 @@ - - + {%if user.is_authenticated %} + {%block UploadNav%} + + + {%endblock%} + {% endif %} + -
  • - - - -
  • -
  • Github
  • + + {% if user.is_authenticated %} + {% block UploadNav %} +
  • + + + +
  • + {% endblock %} + {% endif %} +
  • GitHub
  • + {% if user.is_authenticated %} + {% block user %} + +
  • Logout
  • + +
  • {{ user.username }}
  • + {% endblock %} + {% else %} + {% block anon %} + +
  • Register
  • + +
  • Login
  • + {% endblock %} + {% endif %} diff --git a/ACMAS/app/ACMAS_Web/templates/navbar.html b/ACMAS/app/ACMAS_Web/templates/navbar.html index 500dbf4..f5f257a 100644 --- a/ACMAS/app/ACMAS_Web/templates/navbar.html +++ b/ACMAS/app/ACMAS_Web/templates/navbar.html @@ -89,34 +89,33 @@ {%if user.is_authenticated %} - {%block UploadNav%} - - - {%endblock%} + {% block UploadNav %} + + + {% endblock %} {% endif %} - - {%if user.is_authenticated %} - {%block user%} + {% if user.is_authenticated %} + {% block user %} - {%endblock%} + {% endblock %} {% else %} - {%block anon%} + {% block anon %} - {%endblock%} + {% endblock %} {% endif %} @@ -146,5 +145,3 @@ {% block content %} {% endblock %} - - diff --git a/ACMAS/app/ACMAS_Web/templates/profile.html b/ACMAS/app/ACMAS_Web/templates/profile.html index ebf6cab..67db9db 100644 --- a/ACMAS/app/ACMAS_Web/templates/profile.html +++ b/ACMAS/app/ACMAS_Web/templates/profile.html @@ -1,4 +1,4 @@ -{% extends 'navbar.html' %} +{% extends '_base.html' %} {% block title %}Profile{% endblock %} {% block content %}

    Hello {{user.username}}!

    diff --git a/ACMAS/app/ACMAS_Web/templates/register.html b/ACMAS/app/ACMAS_Web/templates/register.html index 94f4e8e..bcf5517 100644 --- a/ACMAS/app/ACMAS_Web/templates/register.html +++ b/ACMAS/app/ACMAS_Web/templates/register.html @@ -1,4 +1,4 @@ -{% extends 'navbar.html' %} +{% extends '_base.html' %} {% block title %} Create an Account {% endblock %} {% block content %}
    diff --git a/ACMAS/app/ACMAS_Web/templates/registration/login.html b/ACMAS/app/ACMAS_Web/templates/registration/login.html index 1304339..051463d 100644 --- a/ACMAS/app/ACMAS_Web/templates/registration/login.html +++ b/ACMAS/app/ACMAS_Web/templates/registration/login.html @@ -1,4 +1,4 @@ -{% extends 'navbar.html' %} +{% extends '_base.html' %} {%block title%} Login {%endblock%} From d3f19f87afd8ded4681378ba5d72a2ae0e38dfd9 Mon Sep 17 00:00:00 2001 From: Matthew Glanz Date: Fri, 20 Oct 2023 17:35:57 -0400 Subject: [PATCH 37/59] Fix for checking if admin exists --- .../management/commands/ensure_admin.py | 26 +++++++++++++++++++ ACMAS/app/entrypoint.sh | 7 ++--- 2 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py diff --git a/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py b/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py new file mode 100644 index 0000000..5fafba2 --- /dev/null +++ b/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py @@ -0,0 +1,26 @@ +import os +from django.contrib.auth import get_user_model +from django.core.management.base import BaseCommand + +class Command(BaseCommand): + help = "Creates an admin user non-interactively if it doesn't exist" + + def add_arguments(self, parser): + parser.add_argument('--username', help="Admin's username") + parser.add_argument('--email', help="Admin's email") + parser.add_argument('--password', help="Admin's password") + parser.add_argument('--no-input', help="Read options from the environment", + action='store_true') + + def handle(self, *args, **options): + User = get_user_model() + + if options['no_input']: + options['username'] = os.environ['DJANGO_SUPERUSER_USERNAME'] + options['email'] = os.environ['DJANGO_SUPERUSER_EMAIL'] + options['password'] = os.environ['DJANGO_SUPERUSER_PASSWORD'] + + if not User.objects.filter(username=options['username']).exists(): + User.objects.create_superuser(username=options['username'], + email=options['email'], + password=options['password']) \ No newline at end of file diff --git a/ACMAS/app/entrypoint.sh b/ACMAS/app/entrypoint.sh index f718e9c..526d316 100755 --- a/ACMAS/app/entrypoint.sh +++ b/ACMAS/app/entrypoint.sh @@ -19,8 +19,9 @@ python manage.py migrate python manage.py collectstatic --noinput #Create a superuser -echo "from django.contrib.auth.models import User; -if not User.objects.filter(username='$DJANGO_USER').exists(): - User.objects.create_superuser('$DJANGO_USER', '$DJANGO_EMAIL', '$DJANGO_PASS')" | python manage.py shell +python manage.py ensure_admin --username=$DJANGO_USER \ + --email=$DJANGO_EMAIL \ + --password=$DJANGO_PASS + exec "$@" \ No newline at end of file From 77828324deacac3f593177293e1b4cafa65e6fdd Mon Sep 17 00:00:00 2001 From: Matthew Glanz Date: Fri, 20 Oct 2023 17:41:16 -0400 Subject: [PATCH 38/59] Please Linter --- ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py | 4 ++-- ACMAS/app/entrypoint.sh | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py b/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py index 5fafba2..9211465 100644 --- a/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py +++ b/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py @@ -16,11 +16,11 @@ def handle(self, *args, **options): User = get_user_model() if options['no_input']: - options['username'] = os.environ['DJANGO_SUPERUSER_USERNAME'] + options['username'] = os.environ['$DJANGO_USER'] options['email'] = os.environ['DJANGO_SUPERUSER_EMAIL'] options['password'] = os.environ['DJANGO_SUPERUSER_PASSWORD'] if not User.objects.filter(username=options['username']).exists(): User.objects.create_superuser(username=options['username'], email=options['email'], - password=options['password']) \ No newline at end of file + password=options['password']) diff --git a/ACMAS/app/entrypoint.sh b/ACMAS/app/entrypoint.sh index 526d316..318a055 100755 --- a/ACMAS/app/entrypoint.sh +++ b/ACMAS/app/entrypoint.sh @@ -19,9 +19,9 @@ python manage.py migrate python manage.py collectstatic --noinput #Create a superuser -python manage.py ensure_admin --username=$DJANGO_USER \ - --email=$DJANGO_EMAIL \ - --password=$DJANGO_PASS +python manage.py ensure_admin --username="$DJANGO_USER" \ + --email="$DJANGO_EMAIL" \ + --password="$DJANGO_PASS" exec "$@" \ No newline at end of file From 98dda2ea42b3b0af995e1b3fbc802dffee48a76b Mon Sep 17 00:00:00 2001 From: Matthew Glanz Date: Sun, 22 Oct 2023 14:16:26 -0400 Subject: [PATCH 39/59] Linter Fixes --- .../management/commands/ensure_admin.py | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py b/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py index 9211465..760eee3 100644 --- a/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py +++ b/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py @@ -1,26 +1,28 @@ import os + from django.contrib.auth import get_user_model from django.core.management.base import BaseCommand + class Command(BaseCommand): help = "Creates an admin user non-interactively if it doesn't exist" def add_arguments(self, parser): - parser.add_argument('--username', help="Admin's username") - parser.add_argument('--email', help="Admin's email") - parser.add_argument('--password', help="Admin's password") - parser.add_argument('--no-input', help="Read options from the environment", - action='store_true') + parser.add_argument("--username", help="Admin's username") + parser.add_argument("--email", help="Admin's email") + parser.add_argument("--password", help="Admin's password") + parser.add_argument("--no-input", help="Read options from the environment", + action="store_true") def handle(self, *args, **options): User = get_user_model() - if options['no_input']: - options['username'] = os.environ['$DJANGO_USER'] - options['email'] = os.environ['DJANGO_SUPERUSER_EMAIL'] - options['password'] = os.environ['DJANGO_SUPERUSER_PASSWORD'] + if options["no_input"]: + options["username"] = os.environ["$DJANGO_USER"] + options["email"] = os.environ["DJANGO_SUPERUSER_EMAIL"] + options["password"] = os.environ["DJANGO_SUPERUSER_PASSWORD"] - if not User.objects.filter(username=options['username']).exists(): - User.objects.create_superuser(username=options['username'], - email=options['email'], - password=options['password']) + if not User.objects.filter(username=options["username"]).exists(): + User.objects.create_superuser(username=options["username"], + email=options["email"], + password=options["password"]) From 413decadeb72c0910df3cb98b75e4a2287825e40 Mon Sep 17 00:00:00 2001 From: Matthew Glanz Date: Sun, 22 Oct 2023 14:25:04 -0400 Subject: [PATCH 40/59] LINT --- .../ACMAS_Web/management/commands/ensure_admin.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py b/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py index 760eee3..61e4dc9 100644 --- a/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py +++ b/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py @@ -11,8 +11,10 @@ def add_arguments(self, parser): parser.add_argument("--username", help="Admin's username") parser.add_argument("--email", help="Admin's email") parser.add_argument("--password", help="Admin's password") - parser.add_argument("--no-input", help="Read options from the environment", - action="store_true") + parser.add_argument( + "--no-input", help="Read options from the environment", +action="store_true" + ) def handle(self, *args, **options): User = get_user_model() @@ -23,6 +25,7 @@ def handle(self, *args, **options): options["password"] = os.environ["DJANGO_SUPERUSER_PASSWORD"] if not User.objects.filter(username=options["username"]).exists(): - User.objects.create_superuser(username=options["username"], - email=options["email"], - password=options["password"]) + User.objects.create_superuser( + username=options["username"], + email=options["email"], + password=options["password"]) From 0cbc0d6e384148fb2de0211671ad3344efe3b743 Mon Sep 17 00:00:00 2001 From: Matthew Glanz Date: Sun, 22 Oct 2023 14:30:56 -0400 Subject: [PATCH 41/59] LINT FIXES --- ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py b/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py index 61e4dc9..427fbc5 100644 --- a/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py +++ b/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py @@ -12,8 +12,7 @@ def add_arguments(self, parser): parser.add_argument("--email", help="Admin's email") parser.add_argument("--password", help="Admin's password") parser.add_argument( - "--no-input", help="Read options from the environment", -action="store_true" + "--no-input", help="Read options from the environment", action="store_true" ) def handle(self, *args, **options): @@ -28,4 +27,5 @@ def handle(self, *args, **options): User.objects.create_superuser( username=options["username"], email=options["email"], - password=options["password"]) + password=options["password"] + ) From c975f717c114632a3c7ab30eb6b0fc54817958fd Mon Sep 17 00:00:00 2001 From: Matthew Glanz Date: Sun, 22 Oct 2023 14:33:41 -0400 Subject: [PATCH 42/59] Updates for linter --- ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py b/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py index 427fbc5..4dab622 100644 --- a/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py +++ b/ACMAS/app/ACMAS_Web/management/commands/ensure_admin.py @@ -27,5 +27,5 @@ def handle(self, *args, **options): User.objects.create_superuser( username=options["username"], email=options["email"], - password=options["password"] + password=options["password"], ) From 7a2935ec2f067028630c09a33d65a8a724bcfc39 Mon Sep 17 00:00:00 2001 From: Noah Cussatti Date: Mon, 23 Oct 2023 12:52:52 -0400 Subject: [PATCH 43/59] Implemented requested changes --- ACMAS/app/ACMAS_Web/templates/_base.html | 9 +++--- ACMAS/app/ACMAS_Web/templates/index.html | 2 +- ACMAS/app/ACMAS_Web/templates/profile.html | 22 ++++++++----- ACMAS/app/ACMAS_Web/templates/register.html | 19 +++++++----- .../templates/registration/login.html | 31 +++++++++++++------ .../ACMAS_Web/templates/search-by-course.html | 9 ++++-- .../ACMAS_Web/templates/search-results.html | 1 - 7 files changed, 61 insertions(+), 32 deletions(-) diff --git a/ACMAS/app/ACMAS_Web/templates/_base.html b/ACMAS/app/ACMAS_Web/templates/_base.html index 4193c69..ff2e031 100644 --- a/ACMAS/app/ACMAS_Web/templates/_base.html +++ b/ACMAS/app/ACMAS_Web/templates/_base.html @@ -58,6 +58,7 @@ } /* home page footer graphic */ + /* .ocean { height: 0; width: 100%; @@ -105,7 +106,7 @@ transform: translate3d(0, 5px, 0); } } - + */ /* .custom-shape-divider-bottom-1669508581 { position: absolute; @@ -231,7 +232,7 @@ {% endcomment %}