diff --git a/apps/userprofile/templates/user/user_list.html b/apps/userprofile/templates/user/user_list.html index ba862a7714cb6ef40c8530d8871e7aa8a5503e80..1b0ee9277dd1ee88d224b6f625af85ace6d23ea6 100644 --- a/apps/userprofile/templates/user/user_list.html +++ b/apps/userprofile/templates/user/user_list.html @@ -43,7 +43,10 @@ {{user.email}} {{user.date_joined | date:'d/m/Y - H:i:s'}} {{user.groups.last.name}} - + + + Edit + {% endfor %} diff --git a/apps/userprofile/templates/user/user_update_form.html b/apps/userprofile/templates/user/user_update_form.html new file mode 100644 index 0000000000000000000000000000000000000000..ea71d663311f70453077d0ad654aa9b6fbd43399 --- /dev/null +++ b/apps/userprofile/templates/user/user_update_form.html @@ -0,0 +1,8 @@ +{% extends "base.html" %} + +{% block content %} +
{% csrf_token %} + {{ form.as_p }} + +
+{% endblock %} diff --git a/apps/userprofile/urls.py b/apps/userprofile/urls.py index 28af44c40effa99cb3ae2501b3219cc3cadad3d7..4f99d72a76e1a2fe41277808e8cdbeb17308609b 100644 --- a/apps/userprofile/urls.py +++ b/apps/userprofile/urls.py @@ -1,11 +1,17 @@ from django.conf.urls import url -from userprofile.views.users import UserListView +from userprofile.views.users import UserEditView, UserListView urlpatterns = [ url( r"^list", UserListView.as_view(), - name="user-list" + name="list" + ), + + url( + r"^edit/(?P\d+)", + UserEditView.as_view(), + name="edit" ) ] diff --git a/apps/userprofile/views/users.py b/apps/userprofile/views/users.py index 8619838ec699ecf30054197d8b1ecf361a516a22..3a0271ee1eebab7455c318348890f64945321e16 100644 --- a/apps/userprofile/views/users.py +++ b/apps/userprofile/views/users.py @@ -1,7 +1,10 @@ +from django.urls import reverse_lazy + from django.contrib.auth.models import User from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMixin from django.views.generic.list import ListView +from django.views.generic.edit import UpdateView class UserListView(LoginRequiredMixin, PermissionRequiredMixin, ListView): model = User @@ -18,3 +21,11 @@ class UserListView(LoginRequiredMixin, PermissionRequiredMixin, ListView): context = super().get_context_data(**kwargs) return context + +class UserEditView(LoginRequiredMixin, PermissionRequiredMixin, UpdateView): + model = User + permission_required = 'userprofile.can_edit_users' + template_name = 'user/user_update_form.html' + + fields = ['groups'] + success_url = reverse_lazy("users:list") diff --git a/project/urls.py b/project/urls.py index bb4cccbe7da1724a7ab15719a6f483a9bd4defe2..4f3d4ecf254899b6c9ab81453e0af3f531246469 100644 --- a/project/urls.py +++ b/project/urls.py @@ -22,7 +22,7 @@ urlpatterns = [ url(r"^feeds/", include("rp.feeds.urls", namespace="feeds")), url(r"^rp/", include("rp.urls", namespace="rp")), url(r'^accounts/', include('allauth.urls')), - url(r"^users/", include('userprofile.urls')) + url(r"^users/", include('userprofile.urls', namespace="users")) ] if settings.DEBUG: