Solving the issues in the login and others
This commit is contained in:
@@ -3,10 +3,16 @@ from django.views import generic
|
||||
from django.urls import reverse_lazy
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
from .models import User
|
||||
from .forms import LoginForm
|
||||
from .forms import UserForm
|
||||
from events.models import Event
|
||||
from master_data.models import EventType
|
||||
|
||||
from django.contrib.auth import authenticate, login, logout
|
||||
from django.shortcuts import redirect
|
||||
from django.contrib import messages
|
||||
|
||||
|
||||
def dashboard(request):
|
||||
total_events = Event.objects.count()
|
||||
total_categories = EventType.objects.count()
|
||||
@@ -17,25 +23,51 @@ def dashboard(request):
|
||||
'total_users': total_users,
|
||||
})
|
||||
|
||||
|
||||
class UserListView(LoginRequiredMixin, generic.ListView):
|
||||
model = User
|
||||
template_name = 'accounts/user_list.html'
|
||||
context_object_name = 'users'
|
||||
paginate_by = 20
|
||||
|
||||
|
||||
class UserCreateView(LoginRequiredMixin, generic.CreateView):
|
||||
model = User
|
||||
form_class = UserForm
|
||||
template_name = 'accounts/user_form.html'
|
||||
success_url = reverse_lazy('accounts:user_list')
|
||||
|
||||
|
||||
class UserUpdateView(LoginRequiredMixin, generic.UpdateView):
|
||||
model = User
|
||||
form_class = UserForm
|
||||
template_name = 'accounts/user_form.html'
|
||||
success_url = reverse_lazy('accounts:user_list')
|
||||
|
||||
|
||||
class UserDeleteView(LoginRequiredMixin, generic.DeleteView):
|
||||
model = User
|
||||
template_name = 'accounts/user_confirm_delete.html'
|
||||
success_url = reverse_lazy('accounts:user_list')
|
||||
|
||||
|
||||
def login_view(request):
|
||||
if request.user.is_authenticated:
|
||||
return redirect("home") # Redirect authenticated user
|
||||
|
||||
form = LoginForm(request, data=request.POST or None)
|
||||
|
||||
if request.method == "POST":
|
||||
if form.is_valid():
|
||||
user = form.get_user()
|
||||
login(request, user)
|
||||
return redirect("dashboard")
|
||||
else:
|
||||
messages.error(request, "Invalid username or password")
|
||||
|
||||
return render(request, "accounts/login.html", {"form": form})
|
||||
|
||||
|
||||
def logout_view(request):
|
||||
logout(request)
|
||||
return redirect("login")
|
||||
|
||||
Reference in New Issue
Block a user