Initial commit
This commit is contained in:
5
env/lib/python3.10/site-packages/wagtail/users/views/bulk_actions/__init__.py
vendored
Normal file
5
env/lib/python3.10/site-packages/wagtail/users/views/bulk_actions/__init__.py
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
from .assign_role import AssignRoleBulkAction
|
||||
from .delete import DeleteBulkAction
|
||||
from .set_active_state import SetActiveStateBulkAction
|
||||
|
||||
__all__ = ["AssignRoleBulkAction", "DeleteBulkAction", "SetActiveStateBulkAction"]
|
||||
Binary file not shown.
Binary file not shown.
BIN
env/lib/python3.10/site-packages/wagtail/users/views/bulk_actions/__pycache__/delete.cpython-310.pyc
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/users/views/bulk_actions/__pycache__/delete.cpython-310.pyc
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
46
env/lib/python3.10/site-packages/wagtail/users/views/bulk_actions/assign_role.py
vendored
Normal file
46
env/lib/python3.10/site-packages/wagtail/users/views/bulk_actions/assign_role.py
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
from django import forms
|
||||
from django.contrib.auth.models import Group
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.utils.translation import ngettext
|
||||
|
||||
from wagtail.users.views.bulk_actions.user_bulk_action import UserBulkAction
|
||||
from wagtail.users.views.users import change_user_perm
|
||||
|
||||
|
||||
class RoleForm(forms.Form):
|
||||
role = forms.ModelChoiceField(queryset=Group.objects.all())
|
||||
|
||||
|
||||
class AssignRoleBulkAction(UserBulkAction):
|
||||
display_name = _("Assign role")
|
||||
action_type = "assign_role"
|
||||
aria_label = _("Assign role to selected users")
|
||||
template_name = "wagtailusers/bulk_actions/confirm_bulk_assign_role.html"
|
||||
action_priority = 30
|
||||
form_class = RoleForm
|
||||
|
||||
def check_perm(self, obj):
|
||||
return self.request.user.has_perm(change_user_perm)
|
||||
|
||||
def get_execution_context(self):
|
||||
return {
|
||||
"role": self.cleaned_form.cleaned_data["role"],
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def execute_action(cls, objects, role=None, **kwargs):
|
||||
if role is None:
|
||||
return
|
||||
role.user_set.add(*objects)
|
||||
num_parent_objects = len(objects)
|
||||
return num_parent_objects, 0
|
||||
|
||||
def get_success_message(self, num_parent_objects, num_child_objects):
|
||||
return ngettext(
|
||||
"%(num_parent_objects)d user has been assigned as %(role)s",
|
||||
"%(num_parent_objects)d users have been assigned as %(role)s",
|
||||
num_parent_objects,
|
||||
) % {
|
||||
"num_parent_objects": num_parent_objects,
|
||||
"role": self.cleaned_form.cleaned_data["role"].name,
|
||||
}
|
||||
34
env/lib/python3.10/site-packages/wagtail/users/views/bulk_actions/delete.py
vendored
Normal file
34
env/lib/python3.10/site-packages/wagtail/users/views/bulk_actions/delete.py
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.utils.translation import ngettext
|
||||
|
||||
from wagtail.users.utils import user_can_delete_user
|
||||
from wagtail.users.views.bulk_actions.user_bulk_action import UserBulkAction
|
||||
|
||||
|
||||
class DeleteBulkAction(UserBulkAction):
|
||||
display_name = _("Delete")
|
||||
action_type = "delete"
|
||||
aria_label = _("Delete selected users")
|
||||
template_name = "wagtailusers/bulk_actions/confirm_bulk_delete.html"
|
||||
action_priority = 10
|
||||
classes = {"serious"}
|
||||
|
||||
def check_perm(self, obj):
|
||||
return user_can_delete_user(self.request.user, obj)
|
||||
|
||||
def get_execution_context(self):
|
||||
return {**super().get_execution_context(), "model": self.model}
|
||||
|
||||
@classmethod
|
||||
def execute_action(cls, objects, model=None, **kwargs):
|
||||
if model is None:
|
||||
model = cls.get_default_model()
|
||||
model.objects.filter(pk__in=[obj.pk for obj in objects]).delete()
|
||||
return len(objects), 0
|
||||
|
||||
def get_success_message(self, num_parent_objects, num_child_objects):
|
||||
return ngettext(
|
||||
"%(num_parent_objects)d user has been deleted",
|
||||
"%(num_parent_objects)d users have been deleted",
|
||||
num_parent_objects,
|
||||
) % {"num_parent_objects": num_parent_objects}
|
||||
72
env/lib/python3.10/site-packages/wagtail/users/views/bulk_actions/set_active_state.py
vendored
Normal file
72
env/lib/python3.10/site-packages/wagtail/users/views/bulk_actions/set_active_state.py
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
from django import forms
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.utils.translation import ngettext
|
||||
|
||||
from wagtail.users.views.bulk_actions.user_bulk_action import UserBulkAction
|
||||
from wagtail.users.views.users import change_user_perm
|
||||
|
||||
|
||||
class ActivityForm(forms.Form):
|
||||
mark_as_active = forms.TypedChoiceField(
|
||||
choices=((True, _("Active")), (False, _("Inactive"))),
|
||||
label=_("Mark as active"),
|
||||
widget=forms.RadioSelect,
|
||||
coerce=lambda x: x == "True",
|
||||
)
|
||||
|
||||
|
||||
class SetActiveStateBulkAction(UserBulkAction):
|
||||
display_name = _("Set active state")
|
||||
action_type = "set_active_state"
|
||||
aria_label = _("Change the active state for selected users")
|
||||
template_name = "wagtailusers/bulk_actions/confirm_bulk_set_active_state.html"
|
||||
action_priority = 20
|
||||
form_class = ActivityForm
|
||||
|
||||
def check_perm(self, obj):
|
||||
return self.request.user.has_perm(change_user_perm)
|
||||
|
||||
def get_execution_context(self):
|
||||
return {
|
||||
"mark_as_active": self.cleaned_form.cleaned_data["mark_as_active"],
|
||||
"user": self.request.user,
|
||||
"model": self.model,
|
||||
}
|
||||
|
||||
def get_actionable_objects(self):
|
||||
objects, objects_without_access = super().get_actionable_objects()
|
||||
user = self.request.user
|
||||
users = list(filter(lambda x: x.pk != user.pk, objects))
|
||||
if len(objects) != len(users):
|
||||
objects_without_access["mark_self_as_inactive"] = [user]
|
||||
return users, objects_without_access
|
||||
|
||||
@classmethod
|
||||
def execute_action(cls, objects, mark_as_active=False, model=None, **kwargs):
|
||||
if model is None:
|
||||
model = cls.get_default_model()
|
||||
user = kwargs.get("user", None)
|
||||
if user is not None:
|
||||
objects = list(filter(lambda x: x.pk != user.pk, objects))
|
||||
num_parent_objects = model.objects.filter(
|
||||
pk__in=[obj.pk for obj in objects]
|
||||
).update(is_active=mark_as_active)
|
||||
return num_parent_objects, 0
|
||||
|
||||
def get_success_message(self, num_parent_objects, num_child_objects):
|
||||
if self.cleaned_form.cleaned_data["mark_as_active"]:
|
||||
return ngettext(
|
||||
"%(num_parent_objects)d user has been marked as active",
|
||||
"%(num_parent_objects)d users have been marked as active",
|
||||
num_parent_objects,
|
||||
) % {
|
||||
"num_parent_objects": num_parent_objects,
|
||||
}
|
||||
else:
|
||||
return ngettext(
|
||||
"%(num_parent_objects)d user has been marked as inactive",
|
||||
"%(num_parent_objects)d users have been marked as inactive",
|
||||
num_parent_objects,
|
||||
) % {
|
||||
"num_parent_objects": num_parent_objects,
|
||||
}
|
||||
25
env/lib/python3.10/site-packages/wagtail/users/views/bulk_actions/user_bulk_action.py
vendored
Normal file
25
env/lib/python3.10/site-packages/wagtail/users/views/bulk_actions/user_bulk_action.py
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
from django.contrib.auth import get_user_model
|
||||
|
||||
from wagtail.admin.views.bulk_action import BulkAction
|
||||
from wagtail.admin.views.generic.permissions import PermissionCheckedMixin
|
||||
from wagtail.permission_policies import ModelPermissionPolicy
|
||||
from wagtail.users.views.users import get_users_filter_query
|
||||
|
||||
User = get_user_model()
|
||||
|
||||
|
||||
class UserBulkAction(PermissionCheckedMixin, BulkAction):
|
||||
models = [User]
|
||||
permission_policy = ModelPermissionPolicy(User)
|
||||
any_permission_required = ["add", "change", "delete"]
|
||||
|
||||
def get_all_objects_in_listing_query(self, parent_id):
|
||||
listing_objects = self.model.objects.all().values_list("pk", flat=True)
|
||||
if "q" in self.request.GET:
|
||||
q = self.request.GET.get("q")
|
||||
model_fields = {f.name for f in self.model._meta.get_fields()}
|
||||
conditions = get_users_filter_query(q, model_fields)
|
||||
|
||||
listing_objects = listing_objects.filter(conditions)
|
||||
|
||||
return listing_objects
|
||||
Reference in New Issue
Block a user