# views.py from django.contrib.auth import authenticate, login, logout from django.shortcuts import render, redirect from .forms import CustomLoginForm, CustomUserCreationForm, UserProfileForm from .models import UserProfile from django.contrib.auth.decorators import login_required from django.contrib import messages def login_view(request): if request.method == "POST": form = CustomLoginForm(data=request.POST) if form.is_valid(): user = form.get_user() login(request, user) return redirect('dashboard:index') # Redirect to your dashboard else: form = CustomLoginForm() return render(request, 'auth/login.html', {'form': form, 'hide_sidebar': True}) def register_view(request): if request.method == "POST": form = CustomUserCreationForm(request.POST) if form.is_valid(): user = form.save() login(request, user) # Log the user in after creation return redirect('dashboard:index') # Redirect to your dashboard else: form = CustomUserCreationForm() return render(request, 'auth/register.html', {'form': form, 'hide_sidebar': True}) def logout_view(request): logout(request) # Logs out the user return redirect('sysadmin:login') # Redirect to the login page after logout @login_required def profile_view(request): try: # Get the profile for the current user profile = request.user.profile except UserProfile.DoesNotExist: # Create a profile if it doesn't exist profile = UserProfile.objects.create(user=request.user) if request.method == "POST": form = UserProfileForm(request.POST, request.FILES, instance=profile) user = request.user user.first_name = request.POST.get('first_name', user.first_name) user.last_name = request.POST.get('last_name', user.last_name) if form.is_valid(): form.save() user.save() messages.success(request, "Profile Updated") return redirect('sysadmin:profile') # Redirect to the profile page after saving else: messages.error(request, form.errors) else: form = UserProfileForm(instance=profile) return render(request, 'sysadmin/profile.html', {'form': form})