Skip to content
Snippets Groups Projects
views.py 1.63 KiB
Newer Older
from django.contrib.auth.decorators import login_required, permission_required
from django.contrib.auth.models import User
from django.shortcuts import get_object_or_404, render, redirect
from django.utils.translation import gettext_lazy as _

from users.forms import UserForm, UserProfileForm


@permission_required('users.view_user')
def user_list(request):
    return render(request, 'user_list.html', {'users': User.objects.order_by('username')})


@login_required
def user_profile(request):
    if request.method == 'POST':
        form = UserProfileForm(instance=request.user, data=request.POST)
        if form.is_valid():
            form.save()
            return redirect('dash')
    else:
        form = UserProfileForm(instance=request.user)
    return render(request, 'user_profile.html', {'form': form})


@permission_required('users.add_user')
def user_add(request):
    if request.method == 'POST':
        form = UserForm(instance=User(), data=request.POST)
        if form.is_valid():
            form.save()
            return redirect('users:user_list')
    else:
        form = UserForm(instance=User())
    return render(request, 'user_form.html', {'form': form, 'title': _('Dodaj użytkownika')})


@permission_required('users.change_user')
def user_edit(request, pk):
    user = get_object_or_404(User, pk=pk)
    if request.method == 'POST':
        form = UserForm(instance=user, data=request.POST)
        if form.is_valid():
            form.save()
            return redirect('users:user_list')
    else:
        form = UserForm(instance=user)
    return render(request, 'user_form.html', {'form': form, 'title': _('Edytuj użytkownika')})