Replaced ugettext and ugettext_lazy with gettext and gettext_lazy

ugettext and ugettext_lazy were deprecated in Django 3 and will be
removed in Django 4.
This commit is contained in:
2025-04-10 11:33:06 +02:00
parent 14c2a50503
commit d7e2acff34
26 changed files with 86 additions and 86 deletions

View File

@@ -2,7 +2,7 @@ from django.contrib import admin
from django.contrib.auth.admin import GroupAdmin as _GroupAdmin
from django.contrib.auth.models import Group
from django.contrib.auth.models import Permission
from django.utils.translation import ugettext as _
from django.utils.translation import gettext as _
admin.site.unregister(Group)

View File

@@ -2,7 +2,7 @@
import logging
from django import forms
from django.contrib.auth import forms as auth_forms, password_validation
from django.utils.translation import ugettext, ugettext_lazy as _
from django.utils.translation import gettext, gettext_lazy as _
logger = logging.getLogger(__name__)
@@ -48,7 +48,7 @@ class SetPasswordForm(forms.Form):
if password1 and password2:
if password1 != password2:
raise forms.ValidationError(
ugettext('Passwörter stimmen nicht überein'),
gettext('Passwörter stimmen nicht überein'),
code='password_mismatch',
)
return password2

View File

@@ -2,7 +2,7 @@
from unittest import skip
from django.contrib.auth import get_user_model
from django.core import mail as django_mail
from django.utils.translation import ugettext
from django.utils.translation import gettext
from dav_base.tests.generic import FormDataSet, FormsTestCase
@@ -25,8 +25,8 @@ class LoginFormTestCase(FormsTestCase):
def test_labels(self):
form = self.form_class()
self.assertEqual(form.fields['username'].label, ugettext('E-Mail-Adresse'))
self.assertEqual(form.fields['password'].label, ugettext('Password'))
self.assertEqual(form.fields['username'].label, gettext('E-Mail-Adresse'))
self.assertEqual(form.fields['password'].label, gettext('Password'))
def test_required(self):
form = self.form_class()
@@ -193,7 +193,7 @@ class CreateAndSendPasswordFormTestCase(FormsTestCase):
def test_labels(self):
form = self.form_class()
self.assertEqual(form.fields['username'].label, ugettext('E-Mail-Adresse'))
self.assertEqual(form.fields['username'].label, gettext('E-Mail-Adresse'))
def test_required(self):
form = self.form_class()

View File

@@ -2,7 +2,7 @@
from django.contrib.auth import get_user_model
from django.test import tag
from django.urls import reverse
from django.utils.translation import ugettext
from django.utils.translation import gettext
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
@@ -105,7 +105,7 @@ class TestCase(ScreenshotTestCase):
# Click on 'set password' -> save set password page
user_menu = c.find_element(By.CSS_SELECTOR, '#login-widget ul')
link = user_menu.find_element(By.PARTIAL_LINK_TEXT, ugettext('Passwort ändern'))
link = user_menu.find_element(By.PARTIAL_LINK_TEXT, gettext('Passwort ändern'))
link.click()
password_field = self.wait_on_presence(c, (By.ID, 'id_new_password'))
self.save_screenshot('empty_set_password_form', sequence=sequence_name)
@@ -189,7 +189,7 @@ class TestCase(ScreenshotTestCase):
dropdown_button = self.wait_on_presence(c, (By.ID, 'user_dropdown_button'))
dropdown_button.click()
user_menu = c.find_element(By.CSS_SELECTOR, '#login-widget ul')
link = user_menu.find_element(By.PARTIAL_LINK_TEXT, ugettext('Logout'))
link = user_menu.find_element(By.PARTIAL_LINK_TEXT, gettext('Logout'))
link.click()
self.wait_until_stale(c, user_menu)
self.save_screenshot('logout_succeed', sequence=sequence_name)
@@ -200,7 +200,7 @@ class TestCase(ScreenshotTestCase):
self.wait_on_presence(c, (By.ID, 'id_username'))
# Locate password recreate link, click it -> save password recreate form
link = c.find_element(By.PARTIAL_LINK_TEXT, ugettext('Passwort vergessen'))
link = c.find_element(By.PARTIAL_LINK_TEXT, gettext('Passwort vergessen'))
link.click()
username_field = self.wait_on_presence(c, (By.ID, 'id_username'))
self.save_screenshot('empty_recreate_password_form', sequence=sequence_name)
@@ -212,7 +212,7 @@ class TestCase(ScreenshotTestCase):
self.save_screenshot('recreate_password_invalid_user', sequence=sequence_name)
# Locate password recreate link, click it
link = c.find_element(By.PARTIAL_LINK_TEXT, ugettext('Passwort vergessen'))
link = c.find_element(By.PARTIAL_LINK_TEXT, gettext('Passwort vergessen'))
link.click()
username_field = self.wait_on_presence(c, (By.ID, 'id_username'))

View File

@@ -2,7 +2,7 @@
from __future__ import unicode_literals
from django.contrib.auth import get_user_model
from django.test import SimpleTestCase, tag
from django.utils.translation import ugettext
from django.utils.translation import gettext
from django.urls import reverse
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By
@@ -20,7 +20,7 @@ class TemplatesTestCase(SimpleTestCase):
def test_recreate_link_in_login_form(self):
login_url = reverse('dav_auth:login')
recreate_url = reverse('dav_auth:recreate_password')
text = ugettext('Passwort vergessen?')
text = gettext('Passwort vergessen?')
html = '<a href="{url}">{text}</a>'.format(url=recreate_url, text=text)
response = self.client.get(login_url)
self.assertInHTML(html, response.content.decode('utf-8'))

View File

@@ -4,7 +4,7 @@ from django.contrib.auth import get_user_model
from django.core import mail as django_mail
from django.shortcuts import resolve_url
from django.test import TestCase
from django.utils.translation import ugettext
from django.utils.translation import gettext
from django.urls import reverse
from ..forms import LoginForm, SetPasswordForm, CreateAndSendPasswordForm
@@ -30,9 +30,9 @@ class ViewsTestCase(TestCase):
cls.recreate_password_url = reverse('dav_auth:recreate_password')
# Some messages
cls.wrong_credentials_message = ugettext('Benutzername oder Passwort falsch.')
cls.logout_message = ugettext('Benutzer abgemeldet.')
cls.set_password_message = ugettext('Passwort gespeichert.')
cls.wrong_credentials_message = gettext('Benutzername oder Passwort falsch.')
cls.logout_message = gettext('Benutzer abgemeldet.')
cls.set_password_message = gettext('Passwort gespeichert.')
def setUp(self):
super().setUp()
@@ -74,7 +74,7 @@ class ViewsTestCase(TestCase):
def test_integrated_login_succeed(self):
username = self.user.username
message = ugettext('Benutzer angemeldet: %(username)s') % {'username': username}
message = gettext('Benutzer angemeldet: %(username)s') % {'username': username}
response = self.client.post(self.login_url, {'username': username, 'password': self.test_password})
self.assertEqual(response.status_code, 302)

View File

@@ -9,7 +9,7 @@ from django.http import HttpResponseRedirect
from django.shortcuts import resolve_url
from django.urls import reverse_lazy, reverse
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext as _
from django.utils.translation import gettext as _
from django.views import generic
from . import emails

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
from django.core.validators import RegexValidator
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
DAVNumberValidator = RegexValidator(r'^'

View File

@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from django_countries import Countries
CHOICE_FIELD_MAX_LENGTH = 25

View File

@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from dav_events.config import FieldInitial
# E-Mails

View File

@@ -6,7 +6,7 @@ import re
from babel.dates import format_date
from django import forms
from django.apps import apps
from django.utils.translation import get_language, ugettext, ugettext_lazy as _
from django.utils.translation import get_language, gettext, gettext_lazy as _
from django_countries.fields import Country, LazyTypedChoiceField
from datetimewidget.widgets import DateWidget, TimeWidget, DateTimeWidget
from six import string_types
@@ -840,7 +840,7 @@ class ChargesForm(EventCreateForm):
additional_costs_text = u''
if transport != 'coach':
additional_costs_text += ugettext(u'Fahrtkosten')
additional_costs_text += gettext(u'Fahrtkosten')
if transport == 'public':
pubtrans_planned = True
else:
@@ -852,7 +852,7 @@ class ChargesForm(EventCreateForm):
if accommodation != 'NONE':
if additional_costs_text:
additional_costs_text += u', '
additional_costs_text += ugettext(u'Unterkunft und Verpflegung')
additional_costs_text += gettext(u'Unterkunft und Verpflegung')
else:
ndays = 1
@@ -901,7 +901,7 @@ class ChargesForm(EventCreateForm):
self.fields['trainer1_reward'].initial = trainer1_reward
self.fields['trainer23_reward'].initial = trainer23_reward
self.fields['pubtrans_bonus'].widget.attrs['title'] = ugettext(u'Der Bonus wird nachträglich'
self.fields['pubtrans_bonus'].widget.attrs['title'] = gettext(u'Der Bonus wird nachträglich'
u' auf Meldung der Tourenleitung'
u' verrechnet und ist noch nicht'
u' in den hier dargestellten Zahlen enthalten.')
@@ -941,7 +941,7 @@ class ChargesForm(EventCreateForm):
)
)
self.fields['additional_costs'].widget.attrs['placeholder'] = ugettext(u'Kann freigelassen werden')
self.fields['additional_costs'].widget.attrs['placeholder'] = gettext(u'Kann freigelassen werden')
self.fields['additional_costs'].initial = additional_costs_text
@@ -1011,32 +1011,32 @@ class DescriptionForm(EventCreateForm):
if mode == 'training':
# Titelprefix für Kurse
if level == 'family':
value += u'%s' % ugettext(u'Familienkurs')
value += u'%s' % gettext(u'Familienkurs')
elif level == 'beginner':
value += u'%s' % ugettext(u'Grundkurs')
value += u'%s' % gettext(u'Grundkurs')
else:
value += u'%s' % ugettext(u'Aufbaukurs')
value += u'%s' % gettext(u'Aufbaukurs')
if sport == 'B':
value += u' %s' % ugettext(u'Alpin')
value += u' %s' % gettext(u'Alpin')
elif sport == 'K':
if terrain == 'gym':
value += u' %s' % ugettext(u'Indoorklettern')
value += u' %s' % gettext(u'Indoorklettern')
elif terrain == 'crag':
value += u' %s' % ugettext(u'Fels')
value += u' %s' % gettext(u'Fels')
elif terrain == 'alpine':
value += u' %s' % ugettext(u'Alpinklettern')
value += u' %s' % gettext(u'Alpinklettern')
value += u': ...'
elif sport == 'W':
# Titelprefix für Wanderungen
if level == 'family':
value += u'%s ...' % ugettext(u'Familienwanderung')
value += u'%s ...' % gettext(u'Familienwanderung')
elif not last_day:
value += u'%s ...' % ugettext(u'Tageswanderung')
value += u'%s ...' % gettext(u'Tageswanderung')
elif level == 'family':
# Titelprefix für sonstige Familientouren
value += u'%s: ...' % ugettext(u'Familientour')
value += u'%s: ...' % gettext(u'Familientour')
if app_config.settings.forms_development_init:
if not value:

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
from django import forms
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
class RegistrationResponseForm(forms.Form):

View File

@@ -13,7 +13,7 @@ from django.contrib.auth import get_user_model
from django.urls import reverse
from django.db import models
from django.template.loader import get_template
from django.utils.translation import get_language, ugettext_lazy as _
from django.utils.translation import get_language, gettext_lazy as _
from django_countries.fields import Country, CountryField
from .. import choices

View File

@@ -1,6 +1,6 @@
from __future__ import unicode_literals
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from ..validators import IdStringValidator

View File

@@ -6,7 +6,7 @@ from django.contrib.auth import get_user_model
from django.urls import reverse
from django.db import models
from django.utils import timezone
from django.utils.translation import ugettext, ugettext_lazy as _
from django.utils.translation import gettext, gettext_lazy as _
from .event import Event
@@ -51,7 +51,7 @@ class OneClickAction(models.Model):
if self.done and not self.allow_repeat:
result['context'] = {
'status': 'warning',
'message': ugettext('Diese Aktion hast du bereits ausgeführt.'),
'message': gettext('Diese Aktion hast du bereits ausgeführt.'),
}
return result
@@ -78,7 +78,7 @@ class OneClickAction(models.Model):
flag = event.flags.filter(status__code=status_code).first()
if flag:
message = (ugettext('Der Status wurde bereits'
message = (gettext('Der Status wurde bereits'
' am %(date)s'
' von %(user)s'
' auf \'%(status)s\' gesetzt.') % {
@@ -88,7 +88,7 @@ class OneClickAction(models.Model):
})
else:
flag = event.workflow.update_status(status_code, user)
message = (ugettext('Der Status wurde auf \'%(status)s\' gesetzt.') %
message = (gettext('Der Status wurde auf \'%(status)s\' gesetzt.') %
{'status': flag.status.label})
result['context'] = {
@@ -109,7 +109,7 @@ class OneClickAction(models.Model):
else:
result['context'] = {
'status': 'danger',
'message': ugettext('Invalid Command. Code on fire!'),
'message': gettext('Invalid Command. Code on fire!'),
}
return result

View File

@@ -4,7 +4,7 @@ import datetime
from django.core.exceptions import ValidationError
from django.db import models
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from dav_base.validators import DAVNumberValidator

View File

@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from ..participant import AbstractParticipant

View File

@@ -4,7 +4,7 @@ from django import template
from django.utils.html import format_html
from django.utils.safestring import mark_safe
from django.utils import timezone
from django.utils.translation import ugettext as _
from django.utils.translation import gettext as _
from ..models.eventchange import EventChange
from ..models.eventstatus import EventStatus, get_or_create_event_status

View File

@@ -5,7 +5,7 @@ import re
from django.apps import apps
from django.test import TestCase
from django.urls import reverse
from django.utils.translation import ugettext
from django.utils.translation import gettext
from dav_base.tests.generic import EmailTestMixin
@@ -80,7 +80,7 @@ class ActionTestCase(EmailTestMixin, RoleMixin, EventMixin, TestCase):
content = response.content.decode('utf-8')
status_label = self.get_status_label(status_code)
message = ugettext('Der Status wurde auf \'%(status)s\' gesetzt.') % {'status': status_label}
message = gettext('Der Status wurde auf \'%(status)s\' gesetzt.') % {'status': status_label}
html = message.replace('\'', '&#39;')
self.assertInHTML(html, content)
self.assertRegex(content, r'alert-success')
@@ -103,7 +103,7 @@ class ActionTestCase(EmailTestMixin, RoleMixin, EventMixin, TestCase):
self.assertEqual(response.status_code, 200)
content = response.content.decode('utf-8')
html = ugettext('Diese Aktion hast du bereits ausgeführt.')
html = gettext('Diese Aktion hast du bereits ausgeführt.')
self.assertInHTML(html, content)
self.assertRegex(content, r'alert-warning')
@@ -112,7 +112,7 @@ class ActionTestCase(EmailTestMixin, RoleMixin, EventMixin, TestCase):
content = response.content.decode('utf-8')
status_label = self.get_status_label(status_code)
message = (ugettext('Der Status wurde bereits'
message = (gettext('Der Status wurde bereits'
' am %(date)s'
' von %(user)s'
' auf \'%(status)s\' gesetzt.') % {

View File

@@ -2,7 +2,7 @@
import time
from django.test import tag
from django.urls import reverse
from django.utils.translation import ugettext
from django.utils.translation import gettext
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
@@ -528,7 +528,7 @@ class TestCase(SeleniumAuthMixin, RoleMixin, ScreenshotTestCase):
self.wait_until_stale(c, link)
action_tabs = c.find_element(By.CSS_SELECTOR, '.action-tabs > ul.nav-tabs')
tab = action_tabs.find_element(By.LINK_TEXT, ugettext(u'Ändern'))
tab = action_tabs.find_element(By.LINK_TEXT, gettext(u'Ändern'))
tab.click()
self.wait_until_stale(c, tab)
@@ -537,7 +537,7 @@ class TestCase(SeleniumAuthMixin, RoleMixin, ScreenshotTestCase):
if screenshots:
self.save_screenshot('edit-form', sequence=sequence_name)
button = panel.find_element(By.PARTIAL_LINK_TEXT, ugettext(u'Nächster Abschnitt'))
button = panel.find_element(By.PARTIAL_LINK_TEXT, gettext(u'Nächster Abschnitt'))
button.click()
time.sleep(.5)
@@ -580,7 +580,7 @@ class TestCase(SeleniumAuthMixin, RoleMixin, ScreenshotTestCase):
if screenshots:
self.save_screenshot('accepted', sequence=sequence_name)
link = c.find_element(By.LINK_TEXT, ugettext('Veranstaltungsliste'))
link = c.find_element(By.LINK_TEXT, gettext('Veranstaltungsliste'))
link.click()
self.wait_until_stale(c, link)
if screenshots:
@@ -618,7 +618,7 @@ class TestCase(SeleniumAuthMixin, RoleMixin, ScreenshotTestCase):
if screenshots:
self.save_screenshot('confirmed_{}'.format(channel), sequence=sequence_name)
link = c.find_element(By.LINK_TEXT, ugettext('Veranstaltungsliste'))
link = c.find_element(By.LINK_TEXT, gettext('Veranstaltungsliste'))
link.click()
self.wait_until_stale(c, link)
if screenshots:
@@ -650,7 +650,7 @@ class TestCase(SeleniumAuthMixin, RoleMixin, ScreenshotTestCase):
if screenshots:
self.save_screenshot('confirmed_clearance', sequence=sequence_name)
link = c.find_element(By.LINK_TEXT, ugettext('Veranstaltungsliste'))
link = c.find_element(By.LINK_TEXT, gettext('Veranstaltungsliste'))
link.click()
self.wait_until_stale(c, link)
if screenshots:
@@ -730,7 +730,7 @@ class TestCase(SeleniumAuthMixin, RoleMixin, ScreenshotTestCase):
button.click()
self.wait_until_stale(c, button)
link = c.find_element(By.PARTIAL_LINK_TEXT, ugettext(u'Veranstaltungsliste herunterladen'))
link = c.find_element(By.PARTIAL_LINK_TEXT, gettext(u'Veranstaltungsliste herunterladen'))
link.click()
self.wait_until_stale(c, link)
self.save_screenshot('event_export_form')

View File

@@ -2,7 +2,7 @@ import logging
from django.contrib import messages
from django.contrib.auth import login
from django.http import HttpResponseRedirect
from django.utils.translation import ugettext as _
from django.utils.translation import gettext as _
from django.views import generic
from .. import models

View File

@@ -14,7 +14,7 @@ from django.shortcuts import get_object_or_404
from django.urls import reverse, reverse_lazy
from django.utils.decorators import method_decorator
from django.utils.text import normalize_newlines
from django.utils.translation import ugettext as _
from django.utils.translation import gettext as _
from django.views import generic
from .. import choices

View File

@@ -5,7 +5,7 @@ import re
from django.apps import apps
from django.db.models.functions import Length
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from . import emails
from . import signals

View File

@@ -2,7 +2,7 @@
import datetime
import logging
from django import forms
from django.utils.translation import ugettext, ugettext_lazy as _
from django.utils.translation import gettext, gettext_lazy as _
from .models import Registration
@@ -40,14 +40,14 @@ class RegistrationForm(forms.ModelForm):
val = self.cleaned_data.get('year_of_birth')
if val > year_now:
raise forms.ValidationError(
ugettext('Dein Geburtsjahr liegt in der Zukunft?'
gettext('Dein Geburtsjahr liegt in der Zukunft?'
' Das finden wir gut,'
' aber bitte melde dich besser mal per E-Mail bei uns.'),
code='to_young',
)
elif val < (year_now - max_age):
raise forms.ValidationError(
ugettext('Du bist schon über %(max_age)d Jahre alt?'
gettext('Du bist schon über %(max_age)d Jahre alt?'
' Das finden wir gut,'
' aber bitte melde dich besser mal per E-Mail bei uns.'),
params={'max_age': max_age},
@@ -63,7 +63,7 @@ class RegistrationForm(forms.ModelForm):
need_experience = False
if need_experience:
raise forms.ValidationError(
ugettext('Die Tourenleiter*innen brauchen ein paar Angaben,'
gettext('Die Tourenleiter*innen brauchen ein paar Angaben,'
' was du bereits kannst oder wie fit du bist.'),
code='need_experience',
)
@@ -73,7 +73,7 @@ class RegistrationForm(forms.ModelForm):
val = self.cleaned_data.get('privacy_policy_accepted')
if not val and self.instance.privacy_policy:
raise forms.ValidationError(
ugettext('Wir müssen deine Daten leider speichern können,'
gettext('Wir müssen deine Daten leider speichern können,'
' damit wir wissen, dass du teilnehmen möchtest.'),
code='privacy_policy_not_accepted',
)
@@ -84,7 +84,7 @@ class RegistrationForm(forms.ModelForm):
dav_member = self.cleaned_data.get('dav_member')
dav_number = self.cleaned_data.get('dav_number')
if dav_member and not dav_number:
error_msg = ugettext('Wenn du DAV Mitglied bist, brauchen wir deine Mitgliedsnummer.')
error_msg = gettext('Wenn du DAV Mitglied bist, brauchen wir deine Mitgliedsnummer.')
self.add_error('not_dav_member', error_msg)
raise forms.ValidationError(error_msg, code='dav_number_missing')
return self.cleaned_data

View File

@@ -6,7 +6,7 @@ from django.core.exceptions import ValidationError
from django.db import models
from django.urls import reverse
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from dav_base.validators import DAVNumberValidator
from dav_events.models.event import Event

View File

@@ -6,7 +6,7 @@ from django.contrib import messages
from django.db.models import Q
from django.http import JsonResponse
from django.urls import reverse_lazy
from django.utils.translation import ugettext as _
from django.utils.translation import gettext as _
from django.views import generic
from dav_events.choices import SPORT_CHOICES, LEVEL_CHOICES