From c540e182b0631730252b397bfc0d799f6e3846d7 Mon Sep 17 00:00:00 2001 From: Agate Berriot Date: Wed, 31 Aug 2022 17:25:02 +0200 Subject: [PATCH 3/4] django4: replaced force_text with equivalent force_str (#68593) --- chrono/agendas/models.py | 12 ++++++------ chrono/api/views.py | 4 ++-- chrono/manager/forms.py | 6 +++--- chrono/manager/views.py | 18 +++++++++--------- tests/manager/test_import_export.py | 6 +++--- tests/test_time_periods.py | 10 +++++----- 6 files changed, 28 insertions(+), 28 deletions(-) diff --git a/chrono/agendas/models.py b/chrono/agendas/models.py index 3555448..35feb94 100644 --- a/chrono/agendas/models.py +++ b/chrono/agendas/models.py @@ -43,7 +43,7 @@ from django.template import Context, Template, TemplateSyntaxError, VariableDoes from django.urls import reverse from django.utils import functional from django.utils.dates import WEEKDAYS -from django.utils.encoding import force_text +from django.utils.encoding import force_str from django.utils.formats import date_format from django.utils.functional import cached_property from django.utils.html import escape @@ -1088,7 +1088,7 @@ class WeekTime(collections.namedtuple('WeekTime', ['weekday', 'time'])): def __repr__(self): return '%s / %s' % ( - force_text(WEEKDAYS[self.weekday]), + force_str(WEEKDAYS[self.weekday]), date_format(self.time, 'TIME_FORMAT'), ) @@ -1121,7 +1121,7 @@ class TimePeriod(models.Model): ordering = ['weekday', 'start_time'] def __str__(self): - label = force_text(WEEKDAYS[self.weekday]) + label = force_str(WEEKDAYS[self.weekday]) if self.weekday_indexes: label = _('%(weekday)s (%(ordinals)s of the month)') % { 'weekday': label, @@ -1218,7 +1218,7 @@ class SharedTimePeriod: def __str__(self): return '%s / %s → %s' % ( - force_text(WEEKDAYS[self.weekday]), + force_str(WEEKDAYS[self.weekday]), date_format(self.start_time, 'TIME_FORMAT'), date_format(self.end_time, 'TIME_FORMAT'), ) @@ -2480,7 +2480,7 @@ class TimePeriodExceptionSource(models.Model): pass data = response.text else: - data = force_text(self.ics_file.read()) + data = force_str(self.ics_file.read()) try: parsed = vobject.readOne(data) @@ -2501,7 +2501,7 @@ class TimePeriodExceptionSource(models.Model): def _get_summary_from_vevent(self, vevent): if 'summary' in vevent.contents: - return force_text(vevent.contents['summary'][0].value) + return force_str(vevent.contents['summary'][0].value) return _('Exception') def refresh_timeperiod_exceptions(self, data=None): diff --git a/chrono/api/views.py b/chrono/api/views.py index 9b3409c..2302e5b 100644 --- a/chrono/api/views.py +++ b/chrono/api/views.py @@ -30,7 +30,7 @@ from django.shortcuts import get_object_or_404 from django.template import Context, Template, TemplateSyntaxError, VariableDoesNotExist from django.urls import reverse from django.utils.dates import WEEKDAYS -from django.utils.encoding import force_text +from django.utils.encoding import force_str from django.utils.formats import date_format from django.utils.timezone import localtime, make_aware, now from django.utils.translation import gettext @@ -450,7 +450,7 @@ def is_event_disabled(event, min_places=1, disable_booked=True, bookable_events= def get_event_text(event, agenda, day=None): - event_text = force_text(event) + event_text = force_str(event) if agenda.event_display_template: try: event_text = Template(agenda.event_display_template).render( diff --git a/chrono/manager/forms.py b/chrono/manager/forms.py index 1e8a830..62d1c95 100644 --- a/chrono/manager/forms.py +++ b/chrono/manager/forms.py @@ -33,7 +33,7 @@ from django.db import transaction from django.db.models import DurationField, ExpressionWrapper, F from django.forms import ValidationError, formset_factory from django.template import Context, Template, TemplateSyntaxError, VariableDoesNotExist -from django.utils.encoding import force_text +from django.utils.encoding import force_str from django.utils.formats import date_format from django.utils.timezone import localtime, make_aware, now from django.utils.translation import gettext_lazy as _ @@ -1099,13 +1099,13 @@ class ImportEventsForm(forms.Form): # label needed to generate a slug label = None if len(csvline) >= 5: - label = force_text(csvline[4]) + label = force_str(csvline[4]) # get or create event event = None slug = None if len(csvline) >= 6: - slug = force_text(csvline[5]) if csvline[5] else None + slug = force_str(csvline[5]) if csvline[5] else None # get existing event if relevant if slug and slug in seen_slugs: event = events_by_slug[slug] diff --git a/chrono/manager/views.py b/chrono/manager/views.py index 6ebb2c1..76c380d 100644 --- a/chrono/manager/views.py +++ b/chrono/manager/views.py @@ -39,7 +39,7 @@ from django.template.loader import render_to_string from django.urls import reverse, reverse_lazy from django.utils import lorem_ipsum from django.utils.dates import MONTHS -from django.utils.encoding import force_text +from django.utils.encoding import force_str from django.utils.formats import date_format from django.utils.html import format_html from django.utils.timezone import localtime, make_aware, make_naive, now @@ -794,7 +794,7 @@ class AgendasImportView(FormView): def form_valid(self, form): try: - agendas_json = json.loads(force_text(self.request.FILES['agendas_json'].read())) + agendas_json = json.loads(force_str(self.request.FILES['agendas_json'].read())) except ValueError: form.add_error('agendas_json', _('File is not in the expected JSON format.')) return self.form_invalid(form) @@ -3026,14 +3026,14 @@ class DeskImportTimePeriodExceptionsView(ManagedAgendaSubobjectMixin, UpdateView else: sources.append(self.import_file(desk, form)) except ICSError as e: - form.add_error(None, force_text(e)) + form.add_error(None, force_str(e)) return self.form_invalid(form) try: for source in sources: source.refresh_timeperiod_exceptions(data=source._parsed) except ICSError as e: - form.add_error(None, force_text(e)) + form.add_error(None, force_str(e)) return self.form_invalid(form) messages.info(self.request, _('Exceptions will be imported in a few minutes.')) @@ -3093,7 +3093,7 @@ class TimePeriodExceptionSourceReplaceView(ManagedTimePeriodExceptionMixin, Upda else: self.import_file(self.desk or self.unavailability_calendar, form) except ICSError as e: - form.add_error(None, force_text(e)) + form.add_error(None, force_str(e)) return self.form_invalid(form) messages.info(self.request, _('Exceptions will be synchronized in a few minutes.')) @@ -3124,7 +3124,7 @@ class TimePeriodExceptionSourceRefreshView(ManagedTimePeriodExceptionMixin, Deta else: self.import_file(self.desk or self.unavailability_calendar) except ICSError as e: - messages.error(self.request, force_text(e)) + messages.error(self.request, force_str(e)) messages.info(self.request, _('Exceptions will be synchronized in a few minutes.')) # redirect to settings @@ -3601,13 +3601,13 @@ class UnavailabilityCalendarImportUnavailabilitiesView(ManagedUnavailabilityCale with transaction.atomic(): source = self.import_file(form) except ICSError as e: - form.add_error(None, force_text(e)) + form.add_error(None, force_str(e)) return self.form_invalid(form) try: source.refresh_timeperiod_exceptions(data=source._parsed) except ICSError as e: - form.add_error(None, force_text(e)) + form.add_error(None, force_str(e)) return self.form_invalid(form) messages.info(self.request, _('Exceptions will be imported in a few minutes.')) @@ -3868,7 +3868,7 @@ def menu_json(request): json_str = json.dumps( [ { - 'label': force_text(label), + 'label': force_str(label), 'slug': 'calendar', 'url': request.build_absolute_uri(reverse('chrono-manager-homepage')), } diff --git a/tests/manager/test_import_export.py b/tests/manager/test_import_export.py index be627f8..698b13f 100644 --- a/tests/manager/test_import_export.py +++ b/tests/manager/test_import_export.py @@ -3,7 +3,7 @@ import json import freezegun import pytest -from django.utils.encoding import force_text +from django.utils.encoding import force_str from django.utils.timezone import now from webtest import Upload @@ -154,7 +154,7 @@ def test_import_agenda(app, admin_user): assert Agenda.objects.count() == 3 # reference to unknown group - agenda_export_dict = json.loads(force_text(agenda_export)) + agenda_export_dict = json.loads(force_str(agenda_export)) agenda_export_dict['agendas'][0]['permissions']['view'] = 'gé1' agenda_export = json.dumps(agenda_export_dict).encode('utf-8') Agenda.objects.all().delete() @@ -276,7 +276,7 @@ def test_import_unavailability_calendar(app, admin_user): assert UnavailabilityCalendar.objects.count() == 3 # reference to unknown group - calendar_export_dict = json.loads(force_text(calendar_export)) + calendar_export_dict = json.loads(force_str(calendar_export)) calendar_export_dict['unavailability_calendars'][0]['permissions']['view'] = 'gé1' calendar_export = json.dumps(calendar_export_dict).encode('utf-8') UnavailabilityCalendar.objects.all().delete() diff --git a/tests/test_time_periods.py b/tests/test_time_periods.py index 774b947..50748e8 100644 --- a/tests/test_time_periods.py +++ b/tests/test_time_periods.py @@ -3,7 +3,7 @@ import datetime import pytest from django.db.models import Q from django.test import override_settings -from django.utils.encoding import force_text +from django.utils.encoding import force_str from django.utils.timezone import localtime, make_aware from chrono.agendas.models import Agenda, Desk, MeetingType, TimePeriod, TimePeriodException @@ -118,7 +118,7 @@ def test_timeperiod_time_slots(): def test_time_period_exception_as_string(): # single day assert ( - force_text( + force_str( TimePeriodException( start_datetime=make_aware(datetime.datetime(2018, 1, 18)), end_datetime=make_aware(datetime.datetime(2018, 1, 19)), @@ -129,7 +129,7 @@ def test_time_period_exception_as_string(): # multiple full days assert ( - force_text( + force_str( TimePeriodException( start_datetime=make_aware(datetime.datetime(2018, 1, 18)), end_datetime=make_aware(datetime.datetime(2018, 1, 20)), @@ -140,7 +140,7 @@ def test_time_period_exception_as_string(): # a few hours in a day assert ( - force_text( + force_str( TimePeriodException( start_datetime=make_aware(datetime.datetime(2018, 1, 18, 10, 0)), end_datetime=make_aware(datetime.datetime(2018, 1, 18, 12, 0)), @@ -151,7 +151,7 @@ def test_time_period_exception_as_string(): # multiple days and different times assert ( - force_text( + force_str( TimePeriodException( start_datetime=make_aware(datetime.datetime(2018, 1, 18, 10, 0)), end_datetime=make_aware(datetime.datetime(2018, 1, 20, 12, 0)), -- 2.37.2