kopia lustrzana https://github.com/wagtail/wagtail
Improve locked_by-filter for locked pages report, fixes #9116
It now only displays users, which have actually locked something.stable/3.0.x
rodzic
054c077c68
commit
f164180d36
|
@ -30,6 +30,16 @@ class TestLockedPagesView(TestCase, WagtailTestUtils):
|
|||
# Initially there should be no locked pages
|
||||
self.assertContains(response, "No locked pages found.")
|
||||
|
||||
# No user locked anything
|
||||
self.assertInHTML(
|
||||
"""
|
||||
<select name="locked_by" id="id_locked_by">
|
||||
<option value="" selected>---------</option>
|
||||
</select>
|
||||
""",
|
||||
response.content.decode(),
|
||||
)
|
||||
|
||||
self.page = Page.objects.first()
|
||||
self.page.locked = True
|
||||
self.page.locked_by = self.user
|
||||
|
@ -43,6 +53,16 @@ class TestLockedPagesView(TestCase, WagtailTestUtils):
|
|||
self.assertNotContains(response, "No locked pages found.")
|
||||
self.assertContains(response, self.page.title)
|
||||
|
||||
self.assertInHTML(
|
||||
f"""
|
||||
<select name="locked_by" id="id_locked_by">
|
||||
<option value="" selected>---------</option>
|
||||
<option value="{self.user.pk}">{self.user}</option>
|
||||
</select>
|
||||
""",
|
||||
response.content.decode(),
|
||||
)
|
||||
|
||||
def test_csv_export(self):
|
||||
|
||||
self.page = Page.objects.first()
|
||||
|
|
|
@ -2,6 +2,7 @@ import datetime
|
|||
|
||||
import django_filters
|
||||
from django.conf import settings
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
@ -11,8 +12,16 @@ from wagtail.models import Page, UserPagePermissionsProxy
|
|||
from .base import PageReportView
|
||||
|
||||
|
||||
def get_users_for_filter():
|
||||
User = get_user_model()
|
||||
return User.objects.filter(locked_pages__isnull=False).order_by(User.USERNAME_FIELD)
|
||||
|
||||
|
||||
class LockedPagesReportFilterSet(WagtailFilterSet):
|
||||
locked_at = django_filters.DateFromToRangeFilter(widget=DateRangePickerWidget)
|
||||
locked_by = django_filters.ModelChoiceFilter(
|
||||
field_name="locked_by", queryset=lambda request: get_users_for_filter()
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = Page
|
||||
|
|
Ładowanie…
Reference in New Issue