Adds control for moderator to set user group
This commit is contained in:
parent
e1d24577d4
commit
0a37b4665c
|
@ -149,6 +149,11 @@ class LimitedEditUserForm(CustomForm):
|
||||||
]
|
]
|
||||||
help_texts = {f: None for f in fields}
|
help_texts = {f: None for f in fields}
|
||||||
|
|
||||||
|
class UserGroupForm(CustomForm):
|
||||||
|
class Meta:
|
||||||
|
model = models.User
|
||||||
|
fields = ["groups"]
|
||||||
|
|
||||||
|
|
||||||
class TagForm(CustomForm):
|
class TagForm(CustomForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|
|
@ -14,4 +14,29 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
{% if user.local %}
|
||||||
|
<div>
|
||||||
|
<form name="permission" method="post" action="{% url 'settings-user' user.id %}">
|
||||||
|
{% csrf_token %}
|
||||||
|
<label class="label" for="id_user_group">{% trans "Access level:" %}</label>
|
||||||
|
{% if group_form.non_field_errors %}
|
||||||
|
{{ group_form.non_field_errors }}
|
||||||
|
{% endif %}
|
||||||
|
{% with group=user.groups.first %}
|
||||||
|
<div class="select">
|
||||||
|
<select name="groups" id="id_user_group">
|
||||||
|
{% for value, name in group_form.fields.groups.choices %}
|
||||||
|
<option value="{{ value }}" {% if name == group.name %}selected{% endif %}>{{ name|title }}</option>
|
||||||
|
{% endfor %}
|
||||||
|
<option value="" {% if not group %}selected{% endif %}>User</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
{% for error in group_form.groups.errors %}
|
||||||
|
<p class="help is-danger">{{ error | escape }}</p>
|
||||||
|
{% endfor %}
|
||||||
|
{% endwith %}
|
||||||
|
<button class="button">{% trans "Save" %}</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -6,7 +6,7 @@ from django.template.response import TemplateResponse
|
||||||
from django.utils.decorators import method_decorator
|
from django.utils.decorators import method_decorator
|
||||||
from django.views import View
|
from django.views import View
|
||||||
|
|
||||||
from bookwyrm import models
|
from bookwyrm import forms, models
|
||||||
from bookwyrm.settings import PAGE_LENGTH
|
from bookwyrm.settings import PAGE_LENGTH
|
||||||
|
|
||||||
|
|
||||||
|
@ -69,4 +69,14 @@ class UserAdmin(View):
|
||||||
def get(self, request, user):
|
def get(self, request, user):
|
||||||
""" user view """
|
""" user view """
|
||||||
user = get_object_or_404(models.User, id=user)
|
user = get_object_or_404(models.User, id=user)
|
||||||
return TemplateResponse(request, "user_admin/user.html", {"user": user})
|
data = {"user": user, "group_form": forms.UserGroupForm()}
|
||||||
|
return TemplateResponse(request, "user_admin/user.html", data)
|
||||||
|
|
||||||
|
def post(self, request, user):
|
||||||
|
""" update user group """
|
||||||
|
user = get_object_or_404(models.User, id=user)
|
||||||
|
form = forms.UserGroupForm(request.POST, instance=user)
|
||||||
|
if form.is_valid():
|
||||||
|
form.save()
|
||||||
|
data = {"user": user, "group_form": form}
|
||||||
|
return TemplateResponse(request, "user_admin/user.html", data)
|
||||||
|
|
Loading…
Reference in New Issue