mirror of
https://github.com/kjanat/livegraphs-django.git
synced 2026-01-16 13:02:08 +01:00
Initial commit
This commit is contained in:
72
dashboard_project/accounts/views.py
Normal file
72
dashboard_project/accounts/views.py
Normal file
@ -0,0 +1,72 @@
|
||||
# accounts/views.py
|
||||
|
||||
from django.contrib import messages
|
||||
from django.contrib.admin.views.decorators import staff_member_required
|
||||
from django.contrib.auth import login
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.shortcuts import redirect, render
|
||||
|
||||
from .forms import CompanyForm, CustomUserCreationForm
|
||||
from .models import Company, CustomUser
|
||||
|
||||
|
||||
def register_view(request):
|
||||
"""View for user registration"""
|
||||
if request.method == "POST":
|
||||
form = CustomUserCreationForm(request.POST)
|
||||
if form.is_valid():
|
||||
user = form.save()
|
||||
login(request, user)
|
||||
messages.success(request, "Registration successful.")
|
||||
return redirect("dashboard")
|
||||
else:
|
||||
messages.error(request, "Registration failed. Please correct the errors.")
|
||||
else:
|
||||
form = CustomUserCreationForm()
|
||||
|
||||
return render(request, "accounts/register.html", {"form": form})
|
||||
|
||||
|
||||
@login_required
|
||||
def profile_view(request):
|
||||
"""View for user profile"""
|
||||
user = request.user
|
||||
company = user.company
|
||||
|
||||
context = {
|
||||
"user": user,
|
||||
"company": company,
|
||||
}
|
||||
|
||||
return render(request, "accounts/profile.html", context)
|
||||
|
||||
|
||||
@staff_member_required
|
||||
def company_create_view(request):
|
||||
"""View for creating companies (admin only)"""
|
||||
if request.method == "POST":
|
||||
form = CompanyForm(request.POST)
|
||||
if form.is_valid():
|
||||
company = form.save()
|
||||
messages.success(request, f"Company '{company.name}' created successfully.")
|
||||
return redirect("admin:accounts_company_changelist")
|
||||
else:
|
||||
messages.error(request, "Failed to create company. Please correct the errors.")
|
||||
else:
|
||||
form = CompanyForm()
|
||||
|
||||
return render(request, "admin/accounts/company/create.html", {"form": form})
|
||||
|
||||
|
||||
@staff_member_required
|
||||
def company_users_view(request, company_id):
|
||||
"""View for managing users in a company (admin only)"""
|
||||
company = Company.objects.get(pk=company_id)
|
||||
users = CustomUser.objects.filter(company=company)
|
||||
|
||||
context = {
|
||||
"company": company,
|
||||
"users": users,
|
||||
}
|
||||
|
||||
return render(request, "admin/accounts/company/users.html", context)
|
||||
Reference in New Issue
Block a user