From 7a153c46e6f7d92fbbda47cf4f49d1678c830b8c Mon Sep 17 00:00:00 2001 From: aminhashemi92 Date: Sun, 7 Sep 2025 11:43:46 +0330 Subject: [PATCH] Add profile drop down and clean up sidebar --- accounts/templates/accounts/login.html | 44 ++----------- accounts/urls.py | 3 +- accounts/views.py | 27 ++++---- db.sqlite3 | Bin 2375680 -> 2375680 bytes templates/navbars/admin.html | 85 ++++++++----------------- templates/sidebars/admin.html | 2 +- 6 files changed, 50 insertions(+), 111 deletions(-) diff --git a/accounts/templates/accounts/login.html b/accounts/templates/accounts/login.html index 67f300d..e5791f3 100644 --- a/accounts/templates/accounts/login.html +++ b/accounts/templates/accounts/login.html @@ -64,21 +64,18 @@ layout-wide customizer-hide سامانه شفافیت - -

Welcome to Sneat! 👋

-

Please sign-in to your account and start the adventure

{% csrf_token %}
- +
@@ -86,43 +83,12 @@ layout-wide customizer-hide
+
-
- - -
-
-
- +
-

- New on our platform? - - Create an account - -

- -
-
or
-
- -
- - - - - - - -
diff --git a/accounts/urls.py b/accounts/urls.py index 8352a63..ac5119d 100644 --- a/accounts/urls.py +++ b/accounts/urls.py @@ -1,10 +1,11 @@ from django.urls import path -from accounts.views import login_view, dashboard, customer_list, add_customer_ajax, edit_customer_ajax, get_customer_data +from accounts.views import login_view, dashboard, customer_list, add_customer_ajax, edit_customer_ajax, get_customer_data, logout_view app_name = "accounts" urlpatterns = [ path('login/', login_view, name='login'), + path('logout/', logout_view, name='logout'), path('dashboard/', dashboard, name='dashboard'), path('customers/', customer_list, name='customer_list'), path('customers/add/', add_customer_ajax, name='add_customer_ajax'), diff --git a/accounts/views.py b/accounts/views.py index b238b5e..6a4f23c 100644 --- a/accounts/views.py +++ b/accounts/views.py @@ -1,11 +1,11 @@ from django.contrib import messages -from django.contrib.auth import login, authenticate +from django.contrib.auth import login, authenticate, logout from django.shortcuts import render, redirect, get_object_or_404 from django.http import JsonResponse from django.views.decorators.http import require_POST, require_GET from django.views.decorators.csrf import csrf_exempt from django import forms - +from django.contrib.auth.decorators import login_required from accounts.models import Profile from accounts.forms import CustomerForm from common.consts import UserRoles @@ -21,15 +21,12 @@ def login_view(request): username = request.POST.get("username") password = request.POST.get("password") user = authenticate(request, username=username, password=password) - # if user is not None: - # login(request, user) - # if user.profile.has_none_of([UserRoles.MANAGER]): - # return redirect("dashboard:dashboard") - # else: - # return redirect("dashboard:admin_dashboard") - # else: - # messages.error(request, "کاربری با این مشخصات یافت نشد!") - # return redirect("accounts:login") + if user is not None: + login(request, user) + return redirect("processes:request_list") + else: + messages.error(request, "کاربری با این مشخصات یافت نشد!") + return redirect("accounts:login") return render(request, "accounts/login.html") @@ -37,7 +34,7 @@ def dashboard(request): return render(request, "accounts/dashboard.html") - +@login_required def customer_list(request): # Get all profiles that have customer role customers = Profile.objects.filter(roles__slug=UserRoles.CUSTOMER.value, is_deleted=False).select_related('user') @@ -163,3 +160,9 @@ def get_customer_data(request, customer_id): }, 'form_html': form_html }) + + +def logout_view(request): + """Log out current user and redirect to login page.""" + logout(request) + return redirect("accounts:login") diff --git a/db.sqlite3 b/db.sqlite3 index 0ac3e473c8ae3b465c73c3533eb1abb25a79617f..7df1dd891c21a42e79a7d576dac37fa6b6c9013d 100644 GIT binary patch delta 382 zcmajayH3Jj0LAfCR0`S_?-$UoAS&08uBj5sXEoNE%_P6Dv%NzJr%^ zOFuj0?RmGwerpnc;o;rOdPluV-XABWc@7P0^^-9TNs7 zzz35s1=HXM76K528JP9Pgd4w#)q2Bfw$4(HS)uhdrAml85WfNBuyjBG delta 382 zcmajayH3Jj0LAfCR0`S_?-$S(>{|2nYiTWG2{AEhNC<(Ei-09Slt?2^II+US=sS2x z2cE;kk@O*qCJvrB=;-iUPyS~x7&8MHMVaY1mS(2+rI!+OBl1Q{H&Z%2REbHcKJ-Nf z<{$v`umFn?1QtRNh9y|`e3A2Cr7OcBM_TXJy)d1M+bL`PZr5r!P4}+VFldubvY*`J ziEG)ll+v`X`@KxjCYgGtoNE)SkZsk{$C-0GpDdPh^{QcC#kf($u6=Eq=mB??V zs%ob0&E7d03JPt(5QP}*!9Iu}K^zir;IX3oA$ - +