From 4cf792f8dd06bc755451c6249b0dfdd20a744a08 Mon Sep 17 00:00:00 2001
From: Brody Wilton <brodywilton@hotmail.com>
Date: Tue, 19 Mar 2024 10:24:15 +0000
Subject: [PATCH] Implement password reset on dashboard

---
 myproject/myapp/templates/password_change_done.html |  8 ++++++++
 myproject/myapp/templates/password_change_form.html | 12 ++++++++++++
 myproject/myapp/templates/user_page.html            |  9 ++++++---
 myproject/myapp/urls.py                             |  5 ++++-
 4 files changed, 30 insertions(+), 4 deletions(-)
 create mode 100644 myproject/myapp/templates/password_change_done.html
 create mode 100644 myproject/myapp/templates/password_change_form.html

diff --git a/myproject/myapp/templates/password_change_done.html b/myproject/myapp/templates/password_change_done.html
new file mode 100644
index 0000000..c444a26
--- /dev/null
+++ b/myproject/myapp/templates/password_change_done.html
@@ -0,0 +1,8 @@
+{% extends "_base.html" %} {% block content %}
+
+<div class="container">
+    <h2>Password Changed Successfully</h2>
+    <p>Your password has been changed successfully</p>
+</div>
+
+{% endblock content %}
diff --git a/myproject/myapp/templates/password_change_form.html b/myproject/myapp/templates/password_change_form.html
new file mode 100644
index 0000000..ab290a4
--- /dev/null
+++ b/myproject/myapp/templates/password_change_form.html
@@ -0,0 +1,12 @@
+{% extends "_base.html" %} {% block content %}
+
+<div class="container">
+    <h2>Change Your Password</h2>
+    <form method="post">
+        {% csrf_token %}
+        {{ form.as_p }}
+        <button type="submit">Change my password</button>
+    </form>
+</div>
+
+{% endblock content %}
\ No newline at end of file
diff --git a/myproject/myapp/templates/user_page.html b/myproject/myapp/templates/user_page.html
index 5f6b6d6..3999efc 100644
--- a/myproject/myapp/templates/user_page.html
+++ b/myproject/myapp/templates/user_page.html
@@ -9,8 +9,11 @@
   </div>
   <!-- Right Content -->
   <div class="col-span-full xl:col-auto">
-
-    <div
+    <div class="p-4 mb-4 bg-white border boder-gray-200 rounded-lg shadow-sm 2xl:col-span-2 dark:border-gray-700 sm:p-6 dark:bg-gray-800">
+      <h3 class="mb-4 text-xl font-semibold dark:text-white">Change your password</h3>
+      <a href="{% url 'password_change' %}" class="text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800">Change Password</a>
+    </div>
+    <!-- <div
       class="p-4 mb-4 bg-white border border-gray-200 rounded-lg shadow-sm 2xl:col-span-2 dark:border-gray-700 sm:p-6 dark:bg-gray-800"
     >
       <h3 class="mb-4 text-xl font-semibold dark:text-white">
@@ -145,7 +148,7 @@
         </div>
       </form>
       {% comment %} REPLACE WITH LOGIC TO CHECK PROPER USER {% endcomment %}
-    </div>
+    </div> -->
     {% if 1 %}
     <div
       class="p-4 mb-4 bg-white border border-gray-200 rounded-lg shadow-sm 2xl:col-span-2 dark:border-gray-700 sm:p-6 dark:bg-gray-800"
diff --git a/myproject/myapp/urls.py b/myproject/myapp/urls.py
index 9ea69f9..37ec9c8 100644
--- a/myproject/myapp/urls.py
+++ b/myproject/myapp/urls.py
@@ -1,6 +1,7 @@
 from django.urls import path
-from .views import InstrumentDetectionView, index, users, maintenance, handler404, handler500, register, user_login, terms_conditions, privacy_policy, handling_music_file, pricing, generate_pdf, admin_table
 
+from .views import InstrumentDetectionView, index, users, maintenance, handler404, handler500, register, user_login, terms_conditions, privacy_policy, handling_music_file, pricing, generate_pdf, admin_table
+from django.contrib.auth import views as auth_views
 
 urlpatterns = [
     # path('', index, name='index'), <- uncomment when index/main page will be ready
@@ -21,4 +22,6 @@ urlpatterns = [
     path('admin_table/', admin_table, name='admin_table'),
     path('instrument_detection/', InstrumentDetectionView.as_view(), name='instrument_detection')
 
+    path('password_change/', auth_views.PasswordChangeView.as_view(template_name='password_change_form.html'), name='password_change'),
+    path('password_change/done/', auth_views.PasswordChangeDoneView.as_view(template_name='password_change_done.html'), name='password_change_done'),
 ]
-- 
GitLab