minor update

This commit is contained in:
2025-08-25 13:12:36 +05:30
parent ffe2c93ae2
commit c3b5ec78fc
9 changed files with 127 additions and 21 deletions
+36 -15
View File
@@ -3,6 +3,7 @@ from django.contrib.auth import authenticate, login
from django.contrib.auth.decorators import login_required, user_passes_test
from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth.hashers import make_password
from django.db import IntegrityError
from django.db.models import Exists, OuterRef
from django.http import JsonResponse
from django.shortcuts import render, redirect, get_object_or_404
@@ -196,15 +197,13 @@ def add_comment(request, pk, parent_id=None):
return redirect("issue_detail", pk=pk)
def superadmin_check(user):
return user.is_superuser
return user.is_superuser
@login_required
@user_passes_test(superadmin_check)
def superadmin_dashboard(request):
return render(request, "dashboard/superadmin_dashboard.html")
@login_required
@user_passes_test(superadmin_check)
def manage_departments(request):
@@ -228,19 +227,41 @@ def department_detail(request, pk):
users = department.users.all()
if request.method == "POST":
username = request.POST.get("username")
email = request.POST.get("email")
password = request.POST.get("password")
# ---- Create user ----
if "create_user" in request.POST:
username = request.POST.get("username", "").strip()
email = request.POST.get("email", "").strip()
password = request.POST.get("password", "").strip()
if username and password:
try:
user = User.objects.create_user(
username=username,
email=email,
password=password
)
user.is_staff = True
user.save()
department.users.add(user)
messages.success(request, f"User '{username}' created and added to department.")
except IntegrityError:
messages.error(request, "Username already exists.")
if username and password:
user = User.objects.create(
username=username,
email=email,
password=make_password(password), # hash the password
is_staff=True # mark as staff
)
department.users.add(user)
return redirect("department_detail", pk=department.id)
# ---- Assign admin ----
elif "assign_admin" in request.POST:
user_id = request.POST.get("admin_user_id")
if user_id:
user = get_object_or_404(User, id=user_id)
department.admin = user
department.save()
messages.success(request, f"{user.username} is now the admin of {department.name}.")
# ---- Remove admin ----
elif "remove_admin" in request.POST:
department.admin = None
department.save()
messages.info(request, "Department admin removed.")
return redirect("department_detail", pk=department.id)
return render(request, "department/department_detail.html", {
"department": department,