Aucune description

views.py 3.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. # views.py
  2. from django.contrib.auth import authenticate, login, logout
  3. from django.shortcuts import render, redirect
  4. from .forms import CustomLoginForm, CustomUserCreationForm, UserProfileForm, UserCustomForm
  5. from .models import UserProfile
  6. from .filters import UserFilter
  7. from django.contrib.auth.decorators import login_required
  8. from django.contrib import messages
  9. from core.utils import ConfigurableCRUDView
  10. from django.contrib.auth.models import User
  11. def login_view(request):
  12. if request.method == "POST":
  13. form = CustomLoginForm(data=request.POST)
  14. if form.is_valid():
  15. user = form.get_user()
  16. login(request, user)
  17. return redirect('dashboard:index') # Redirect to your dashboard
  18. else:
  19. form = CustomLoginForm()
  20. return render(request, 'auth/login.html', {'form': form, 'hide_sidebar': True})
  21. def register_view(request):
  22. if request.method == "POST":
  23. form = CustomUserCreationForm(request.POST)
  24. if form.is_valid():
  25. user = form.save()
  26. login(request, user) # Log the user in after creation
  27. return redirect('dashboard:index') # Redirect to your dashboard
  28. else:
  29. form = CustomUserCreationForm()
  30. return render(request, 'auth/register.html', {'form': form, 'hide_sidebar': True})
  31. def logout_view(request):
  32. logout(request) # Logs out the user
  33. return redirect('sysadmin:login') # Redirect to the login page after logout
  34. @login_required
  35. def profile_view(request):
  36. try:
  37. # Get the profile for the current user
  38. profile = request.user.profile
  39. except UserProfile.DoesNotExist:
  40. # Create a profile if it doesn't exist
  41. profile = UserProfile.objects.create(user=request.user)
  42. if request.method == "POST":
  43. form = UserProfileForm(request.POST, request.FILES, instance=profile)
  44. user = request.user
  45. user.first_name = request.POST.get('first_name', user.first_name)
  46. user.last_name = request.POST.get('last_name', user.last_name)
  47. if form.is_valid():
  48. form.save()
  49. user.save()
  50. messages.success(request, "Profile Updated")
  51. return redirect('sysadmin:profile') # Redirect to the profile page after saving
  52. else:
  53. messages.error(request, form.errors)
  54. else:
  55. form = UserProfileForm(instance=profile)
  56. return render(request, 'sysadmin/profile.html', {'form': form})
  57. class UserCRUDView(ConfigurableCRUDView):
  58. model = User
  59. list_template_name = 'legacy/datacrud_list.html'
  60. detail_template_name = 'legacy/datacrud_detail.html'
  61. form_template_name = 'sysadmin/user_form.html'
  62. confirm_delete_template_name = 'legacy/datacrud_confirm_delete.html'
  63. filterset_class = UserFilter
  64. page_title = "Users"
  65. # URL name mappings
  66. list_url_name = 'sysadmin:users-list'
  67. create_url_name = 'sysadmin:users-create'
  68. update_url_name = 'sysadmin:users-update'
  69. delete_url_name = 'sysadmin:users-delete'
  70. # excludes = ["splitdata"]
  71. config_fields = ("id", "username", "is_active", "is_staff", "is_superuser", "last_login")
  72. config_field_orders = ["id",] # Display these fields first
  73. form_class = UserCustomForm
  74. config_edit_fields = None
  75. ordering = ["-id"]