Replace string_concat() with format_lazy()

On Django 1.11 django.utils.translation.string_concat() is
deprecated in favor of django.utils.text.format_lazy()
and it has been removed on Django 2.1
This commit is contained in:
Santiago L 2021-05-06 12:07:17 +02:00
parent 777a7f6de5
commit d5fce3b6e2
3 changed files with 38 additions and 19 deletions

View File

@ -1,3 +1,7 @@
from django.utils.text import format_lazy
from django.utils.translation import ugettext_lazy
def get_chunks(porders, ini, end, ix=0): def get_chunks(porders, ini, end, ix=0):
if ix >= len(porders): if ix >= len(porders):
return [[ini, end, []]] return [[ini, end, []]]
@ -130,3 +134,16 @@ def compensate(order, compensations):
for __, compensation in ordered_intersections: for __, compensation in ordered_intersections:
remaining_compensations.append(compensation) remaining_compensations.append(compensation)
return remaining_compensations, applied_compensations return remaining_compensations, applied_compensations
def get_rate_methods_help_text(rate_class):
method_help_texts = [
format_lazy('{}' * 4, *['<br>&nbsp;&nbsp;', method.verbose_name, ': ', method.help_text])
for method in rate_class.get_methods().values()
]
prefix = ugettext_lazy("Algorithm used to interprete the rating table.")
help_text_items = [prefix] + method_help_texts
return format_lazy(
'{}' * len(help_text_items),
*help_text_items
)

View File

@ -1,18 +1,20 @@
import calendar import calendar
import decimal import decimal
from orchestra.contrib.services import helpers
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.db import models from django.db import models
from django.apps import apps from django.apps import apps
from django.utils.functional import cached_property from django.utils.functional import cached_property
from django.utils.module_loading import autodiscover_modules from django.utils.module_loading import autodiscover_modules
from django.utils.translation import string_concat, ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from orchestra.core import caches, validators from orchestra.core import caches, validators
from orchestra.utils.python import import_class from orchestra.utils.python import import_class
from . import settings from . import settings
from .handlers import ServiceHandler from .handlers import ServiceHandler
from .helpers import get_rate_methods_help_text
autodiscover_modules('handlers') autodiscover_modules('handlers')
@ -145,13 +147,12 @@ class Service(models.Model):
(ANUAL, _("Anual data")), (ANUAL, _("Anual data")),
), ),
default=BILLING_PERIOD) default=BILLING_PERIOD)
rate_algorithm = models.CharField(_("rate algorithm"), max_length=64, rate_algorithm = models.CharField(
_("rate algorithm"), max_length=64,
choices=rate_class.get_choices(), choices=rate_class.get_choices(),
default=rate_class.get_default(), default=rate_class.get_default(),
help_text=string_concat(_("Algorithm used to interprete the rating table."), *[ help_text=get_rate_methods_help_text(rate_class),
string_concat('<br>&nbsp;&nbsp;', method.verbose_name, ': ', method.help_text) )
for name, method in rate_class.get_methods().items()
]))
on_cancel = models.CharField(_("on cancel"), max_length=16, on_cancel = models.CharField(_("on cancel"), max_length=16,
help_text=_("Defines the cancellation behaviour of this service."), help_text=_("Defines the cancellation behaviour of this service."),
choices=( choices=(

View File

@ -1,4 +1,4 @@
from django.utils.translation import string_concat from django.utils.text import format_lazy
from ..utils.python import AttrDict from ..utils.python import AttrDict
@ -36,7 +36,8 @@ class Register(object):
if 'verbose_name' not in kwargs: if 'verbose_name' not in kwargs:
raise KeyError("%s verbose_name is required for views" % view_name) raise KeyError("%s verbose_name is required for views" % view_name)
if 'verbose_name_plural' not in kwargs: if 'verbose_name_plural' not in kwargs:
kwargs['verbose_name_plural'] = string_concat(kwargs['verbose_name'], 's') kwargs['verbose_name_plural'] = format_lazy('{}' * 2, *[kwargs['verbose_name'], 's'])
self.register(view_name, **kwargs) self.register(view_name, **kwargs)
def get(self, *args): def get(self, *args):