From f0774c912e3706bc1f563dbe1bbafc7a1ef4a145 Mon Sep 17 00:00:00 2001 From: Julio-Oliveira-Encora Date: Wed, 26 Jun 2024 08:39:52 -0300 Subject: [PATCH] Added ngettext to error_handlers and clusters.py --- netbox/utilities/error_handlers.py | 7 +++++-- netbox/virtualization/models/clusters.py | 10 ++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/netbox/utilities/error_handlers.py b/netbox/utilities/error_handlers.py index 386ec6f39..e1e016e71 100644 --- a/netbox/utilities/error_handlers.py +++ b/netbox/utilities/error_handlers.py @@ -7,7 +7,7 @@ from django.db.models import ProtectedError, RestrictedError from django.http import JsonResponse from django.utils.html import escape from django.utils.safestring import mark_safe -from django.utils.translation import gettext_lazy as _ +from django.utils.translation import gettext_lazy as _, ngettext from rest_framework import status __all__ = ( @@ -28,7 +28,10 @@ def handle_protectederror(obj_list, request, e): raise e # Formulate the error message - err_message = _("Unable to delete {objects}. {count} dependent objects were found: ").format( + err_message = _(ngettext( + "Unable to delete {objects}. {count} dependent object was found: ", + "Unable to delete {objects}. {count} dependent objects were found: ", + len(protected_objects),)).format( objects=', '.join(str(obj) for obj in obj_list), count=len(protected_objects) if len(protected_objects) <= 50 else _('More than 50') ) diff --git a/netbox/virtualization/models/clusters.py b/netbox/virtualization/models/clusters.py index f8acc4c36..127d35973 100644 --- a/netbox/virtualization/models/clusters.py +++ b/netbox/virtualization/models/clusters.py @@ -2,7 +2,7 @@ from django.contrib.contenttypes.fields import GenericRelation from django.core.exceptions import ValidationError from django.db import models from django.urls import reverse -from django.utils.translation import gettext_lazy as _ +from django.utils.translation import gettext_lazy as _, ngettext from dcim.models import Device from netbox.models import OrganizationalModel, PrimaryModel @@ -137,7 +137,9 @@ class Cluster(ContactsMixin, PrimaryModel): if self.pk and self.site: if nonsite_devices := Device.objects.filter(cluster=self).exclude(site=self.site).count(): raise ValidationError({ - 'site': _( - "{count} devices are assigned as hosts for this cluster but are not in site {site}" - ).format(count=nonsite_devices, site=self.site) + 'site': _(ngettext( + "{count} device is assigned as hosts for this cluster but is not in site {site}", + "{count} devices are assigned as hosts for this cluster but are not in site {site}", + nonsite_devices, + )).format(count=nonsite_devices, site=self.site) })