mirror of
https://github.com/wagtail/wagtail.git
synced 2024-11-22 11:07:57 +01:00
Run permission labels through translation on the permission management template (#11923)
Since `{% trans some_variable %}` cannot be handled by makemessages, we also need to ensure that any string that arises from Wagtail's native permissions, such as "Can access Wagtail admin" or "Can view", exists somewhere in the python code as a `_("...")` value. Fixes #5341
This commit is contained in:
parent
538365fcfc
commit
8aaa579bef
@ -9,6 +9,7 @@ Changelog
|
||||
* Refactor redirects edit view to use the generic `EditView` and breadcrumbs (Rohit Sharma)
|
||||
* Fix: Make `WAGTAILIMAGES_CHOOSER_PAGE_SIZE` setting functional again (Rohit Sharma)
|
||||
* Fix: Enable `richtext` template tag to convert lazy translation values (Benjamin Bach)
|
||||
* Fix: Ensure permission labels on group permissions page are translated where available (Matt Westcott)
|
||||
* Docs: Remove duplicate section on frontend caching proxies from performance page (Jake Howard)
|
||||
* Maintenance: Use `DjangoJSONEncoder` instead of custom `LazyStringEncoder` to serialize Draftail config (Sage Abdullah)
|
||||
|
||||
|
@ -22,6 +22,7 @@ depth: 1
|
||||
|
||||
* Make `WAGTAILIMAGES_CHOOSER_PAGE_SIZE` setting functional again (Rohit Sharma)
|
||||
* Enable `richtext` template tag to convert lazy translation values (Benjamin Bach)
|
||||
* Ensure permission labels on group permissions page are translated where available (Matt Westcott)
|
||||
|
||||
|
||||
### Documentation
|
||||
|
@ -1,5 +1,6 @@
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.db.models import Count, Model
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from modelcluster.fields import ParentalKey
|
||||
from taggit.models import Tag
|
||||
|
||||
@ -18,7 +19,7 @@ class Admin(Model):
|
||||
class Meta:
|
||||
default_permissions = [] # don't create the default add / change / delete / view perms
|
||||
permissions = [
|
||||
("access_admin", "Can access Wagtail admin"),
|
||||
("access_admin", _("Can access Wagtail admin")),
|
||||
]
|
||||
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
from django.conf import settings
|
||||
from django.db.models import Model
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from wagtail import hooks
|
||||
from wagtail.models import Locale
|
||||
@ -17,7 +18,7 @@ class SimpleTranslation(Model):
|
||||
class Meta:
|
||||
default_permissions = []
|
||||
permissions = [
|
||||
("submit_translation", "Can submit translations"),
|
||||
("submit_translation", _("Can submit translations")),
|
||||
]
|
||||
|
||||
|
||||
|
@ -96,7 +96,8 @@
|
||||
<fieldset class="w-p-0">
|
||||
<legend class="w-sr-only">{% trans "Custom permissions" %}</legend>
|
||||
{% for custom_perm in content_perms_dict.custom %}
|
||||
{% include "wagtailadmin/shared/forms/single_checkbox.html" with name="permissions" value=custom_perm.perm.id checked=custom_perm.selected text=custom_perm.name attrs=custom_perm.attrs %}
|
||||
{% trans custom_perm.name as custom_perm_label %}
|
||||
{% include "wagtailadmin/shared/forms/single_checkbox.html" with name="permissions" value=custom_perm.perm.id checked=custom_perm.selected text=custom_perm_label attrs=custom_perm.attrs %}
|
||||
{% endfor %}
|
||||
</fieldset>
|
||||
{% endif %}
|
||||
@ -170,7 +171,7 @@
|
||||
<tbody>
|
||||
{% for perm_tuple in other_perms %}
|
||||
<tr>
|
||||
<td class="title"><label for="{{ perm_tuple.1.id_for_label }}" class="w-label-3">{{ perm_tuple.0.name }}</label></td>
|
||||
<td class="title"><label for="{{ perm_tuple.1.id_for_label }}" class="w-label-3">{% trans perm_tuple.0.name %}</label></td>
|
||||
<td>
|
||||
{{ perm_tuple.1.tag }}
|
||||
</td>
|
||||
|
@ -6,6 +6,7 @@ from django.contrib.auth import get_permission_codename
|
||||
from django.contrib.auth.models import Permission
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.utils.text import camel_case_to_spaces
|
||||
from django.utils.translation import gettext_noop
|
||||
|
||||
from wagtail import hooks
|
||||
from wagtail.admin.models import Admin
|
||||
@ -55,6 +56,14 @@ def normalize_permission_label(permission: Permission):
|
||||
return label
|
||||
|
||||
|
||||
# normalize_permission_label will return "Can view" for Django's standard "Can view X" permission.
|
||||
# formatted_permissions.html passes these labels through {% trans %} - since this is a variable
|
||||
# within the template it will not be picked up by makemessages, so we define a translation here
|
||||
# instead.
|
||||
|
||||
VIEW_PERMISSION_LABEL = gettext_noop("Can view")
|
||||
|
||||
|
||||
@register.inclusion_tag("wagtailusers/groups/includes/formatted_permissions.html")
|
||||
def format_permissions(permission_bound_field):
|
||||
"""
|
||||
|
Loading…
Reference in New Issue
Block a user