update dependencies and upgrade code for django where needed/possible

This commit is contained in:
Laura Klünder 2022-04-03 16:33:43 +02:00
parent 0f4e699e37
commit 03437a3a40
67 changed files with 331 additions and 207 deletions

View file

@ -1 +0,0 @@
default_app_config = 'c3nav.mapdata.apps.MapdataConfig'

View file

@ -11,7 +11,7 @@ from django.shortcuts import redirect
from django.utils.cache import get_conditional_response
from django.utils.http import http_date, quote_etag, urlsafe_base64_encode
from django.utils.translation import get_language
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from rest_framework.decorators import action
from rest_framework.exceptions import NotFound, ValidationError
from rest_framework.generics import get_object_or_404

View file

@ -0,0 +1,48 @@
class SignedIntConverter:
regex = r'-?\d+'
def to_python(self, value):
return int(value)
def to_url(self, value):
return str(value)
class AccessPermissionsConverter:
regex = r'\d+(-\d+)*'
def to_python(self, value):
return set(int(i) for i in value.split('-'))
def to_url(self, value):
return '-'.join(str(i) for i in value)
class HistoryModeConverter:
regex = '(base|composite)'
def to_python(self, value):
return value
def to_url(self, value):
return value
class HistoryFileExtConverter:
regex = '(png|data)'
def to_python(self, value):
return value
def to_url(self, value):
return value
class ArchiveFileExtConverter:
regex = r'(tar|tar\.gz|tar\.xz)'
def to_python(self, value):
return value
def to_url(self, value):
return value

View file

@ -9,7 +9,7 @@ from django.db import models
from django.utils.functional import cached_property, lazy
from django.utils.text import format_lazy
from django.utils.translation import get_language
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from shapely import validation
from shapely.geometry import LineString, MultiPolygon, Point, Polygon, mapping, shape
from shapely.geometry.base import BaseGeometry

View file

@ -6,7 +6,7 @@ from django.forms import CharField, ModelForm
from django.utils import timezone
from django.utils.text import capfirst, format_lazy
from django.utils.translation import get_language_info
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from c3nav.mapdata.fields import I18nField
from c3nav.mapdata.models.locations import Position

View file

@ -4,7 +4,7 @@ import os
from django.conf import settings
from django.core.management.base import BaseCommand
from django.db import DatabaseError
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from c3nav.mapdata.tasks import process_map_updates

View file

@ -5,7 +5,7 @@ import socket
import dateutil
from django.conf import settings
from django.core.management.base import BaseCommand
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from c3nav.mapdata.utils.cache.stats import convert_stats

View file

@ -4,7 +4,7 @@ import re
from xml.etree import ElementTree
from django.core.management.base import BaseCommand, CommandError
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from shapely.affinity import scale, translate
from shapely.geometry import Polygon

View file

@ -3,7 +3,7 @@ import logging
from django.conf import settings
from django.core.management.base import BaseCommand
from django.db import DatabaseError
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from c3nav.mapdata.tasks import process_map_updates

View file

@ -3,8 +3,8 @@ import os
from django.conf import settings
from django.core.management.base import BaseCommand, CommandError
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ungettext_lazy
from django.utils.translation import gettext_lazy as _
from django.utils.translation import ngettext_lazy
from c3nav.mapdata.models import AccessRestriction, Level, Source
from c3nav.mapdata.render.engines import get_engine, get_engine_filetypes
@ -25,7 +25,7 @@ class Command(BaseCommand):
not_found = values - set(level.short_label for level in levels)
if not_found:
raise argparse.ArgumentTypeError(
ungettext_lazy('Unknown level: %s', 'Unknown levels: %s', len(not_found)) % ', '.join(not_found)
ngettext_lazy('Unknown level: %s', 'Unknown levels: %s', len(not_found)) % ', '.join(not_found)
)
return levels
@ -43,8 +43,8 @@ class Command(BaseCommand):
not_found = values - set(str(permission.pk) for permission in permissions)
if not_found:
raise argparse.ArgumentTypeError(
ungettext_lazy('Unknown access restriction: %s',
'Unknown access restrictions: %s', len(not_found)) % ', '.join(not_found)
ngettext_lazy('Unknown access restriction: %s',
'Unknown access restrictions: %s', len(not_found)) % ', '.join(not_found)
)
return permissions

View file

@ -3,7 +3,7 @@ import os
from django.conf import settings
from django.core.management.base import BaseCommand
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from c3nav.mapdata.utils.cache.stats import stats_snapshot

View file

@ -9,8 +9,8 @@ from django.core.cache import cache
from django.db import models, transaction
from django.db.models import Q
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ungettext_lazy
from django.utils.translation import gettext_lazy as _
from django.utils.translation import ngettext_lazy
from c3nav.mapdata.models import MapUpdate
from c3nav.mapdata.models.base import SerializableMixin, TitledMixin
@ -130,7 +130,7 @@ class AccessPermissionToken(models.Model):
@property
def redeem_success_message(self):
return ungettext_lazy('Area successfully unlocked.', 'Areas successfully unlocked.', len(self.restrictions))
return ngettext_lazy('Area successfully unlocked.', 'Areas successfully unlocked.', len(self.restrictions))
class AccessPermission(models.Model):

View file

@ -4,7 +4,7 @@ from django.core.cache import cache
from django.db import models
from django.db.models import Q
from django.utils.translation import get_language, get_language_info
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from c3nav.mapdata.fields import I18nField
from c3nav.mapdata.models import MapUpdate

View file

@ -3,7 +3,7 @@ from contextlib import contextmanager
from django.db import models
from django.utils.functional import cached_property
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from shapely.geometry import Point, box
from shapely.ops import unary_union

View file

@ -10,7 +10,7 @@ from django.db import models
from django.urls import reverse
from django.utils.functional import cached_property
from django.utils.text import format_lazy
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from scipy.sparse.csgraph._shortest_path import dijkstra
from shapely import prepared
from shapely.affinity import scale

View file

@ -7,7 +7,7 @@ from django.db import models
from django.urls import reverse
from django.utils.functional import cached_property
from django.utils.text import format_lazy
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from shapely.geometry import CAP_STYLE, JOIN_STYLE, mapping
from c3nav.mapdata.fields import GeometryField, I18nField, JSONField

View file

@ -2,7 +2,7 @@ from decimal import Decimal
from django.core.validators import MinValueValidator
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from c3nav.mapdata.fields import GeometryField, I18nField
from c3nav.mapdata.models.access import AccessRestrictionMixin

View file

@ -6,7 +6,7 @@ from django.core.validators import MinValueValidator
from django.db import models
from django.urls import reverse
from django.utils.functional import cached_property
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from shapely.ops import cascaded_union
from c3nav.mapdata.models.locations import SpecificLocation

View file

@ -6,16 +6,16 @@ from operator import attrgetter
from django.conf import settings
from django.core.cache import cache
from django.core.exceptions import FieldDoesNotExist
from django.core.validators import MaxValueValidator, MinValueValidator, RegexValidator
from django.db import models, transaction
from django.db.models import FieldDoesNotExist, Prefetch
from django.db.models import Prefetch
from django.urls import reverse
from django.utils import timezone
from django.utils.crypto import get_random_string
from django.utils.functional import cached_property
from django.utils.text import format_lazy
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ungettext_lazy
from django.utils.translation import gettext_lazy as _, ngettext_lazy
from c3nav.mapdata.fields import I18nField
from c3nav.mapdata.grid import grid
@ -396,7 +396,7 @@ class LocationGroup(Location, models.Model):
if hasattr(self, 'locations'):
return format_lazy(_('{category_title}, {num_locations}'),
category_title=result,
num_locations=(ungettext_lazy('%(num)d location', '%(num)d locations', 'num') %
num_locations=(ngettext_lazy('%(num)d location', '%(num)d locations', 'num') %
{'num': len(self.locations)}))
return result

View file

@ -8,7 +8,7 @@ from django.db.models import Q
from django.urls import reverse
from django.utils.crypto import get_random_string
from django.utils.functional import cached_property
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from c3nav.mapdata.fields import I18nField
from c3nav.mapdata.models.geometry.level import LevelGeometryMixin
@ -172,7 +172,7 @@ class ReportUpdate(models.Model):
report = models.ForeignKey(Report, on_delete=models.CASCADE, related_name='updates')
datetime = models.DateTimeField(auto_now_add=True, verbose_name=_('datetime'))
author = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.PROTECT, verbose_name=_('author'))
open = models.NullBooleanField(verbose_name=_('open'))
open = models.BooleanField(null=True, verbose_name=_('open'))
comment = models.TextField(verbose_name=_('comment'), blank=True)
assigned_to = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.PROTECT,
related_name='report_update_assigns', verbose_name=_('assigned to'))

View file

@ -2,7 +2,7 @@ import os
from django.conf import settings
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from c3nav.mapdata.models.access import AccessRestrictionMixin
from c3nav.mapdata.models.base import BoundsMixin

View file

@ -10,7 +10,7 @@ from django.core.cache import cache
from django.db import models, transaction
from django.utils.http import int_to_base36
from django.utils.timezone import make_naive
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from c3nav.mapdata.tasks import process_map_updates

View file

@ -4,8 +4,8 @@ import time
from celery.exceptions import MaxRetriesExceededError
from django.core.cache import cache
from django.utils.formats import date_format
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ungettext_lazy
from django.utils.translation import gettext_lazy as _
from django.utils.translation import ngettext_lazy
from c3nav.celery import app
@ -40,7 +40,7 @@ def process_map_updates(self):
if updates:
print()
logger.info(ungettext_lazy('%d map update processed.', '%d map updates processed.', len(updates)) % len(updates))
logger.info(ngettext_lazy('%d map update processed.', '%d map updates processed.', len(updates)) % len(updates))
if updates:
logger.info(_('Last processed update: %(date)s (#%(id)d)') % {

View file

@ -1,12 +1,18 @@
from django.conf.urls import url
from django.urls import path, register_converter
from c3nav.mapdata.converters import SignedIntConverter, AccessPermissionsConverter, HistoryModeConverter, \
HistoryFileExtConverter, ArchiveFileExtConverter
from c3nav.mapdata.views import get_cache_package, map_history, tile
register_converter(SignedIntConverter, 'sint')
register_converter(AccessPermissionsConverter, 'a_perms')
register_converter(HistoryModeConverter, 'h_mode')
register_converter(HistoryFileExtConverter, 'h_fileext')
register_converter(ArchiveFileExtConverter, 'archive_fileext')
urlpatterns = [
url(r'^(?P<level>\d+)/(?P<zoom>-?\d+)/(?P<x>-?\d+)/(?P<y>-?\d+).png$', tile, name='mapdata.tile'),
url(r'^(?P<level>\d+)/(?P<zoom>-?\d+)/(?P<x>-?\d+)/(?P<y>-?\d+)/(?P<access_permissions>\d+(-\d+)*).png$', tile,
name='mapdata.tile'),
url(r'^history/(?P<level>\d+)/(?P<mode>base|composite)\.(?P<filetype>png|data)$', map_history,
name='mapdata.map_history'),
url(r'^cache/package\.(?P<filetype>tar|tar\.gz|tar\.xz)$', get_cache_package, name='mapdata.cache_package'),
path('<int:level>/<sint:zoom>/<sint:x>/<sint:y>.png', tile, name='mapdata.tile'),
path('<int:level>/<sint:zoom>/<sint:x>/<sint:Y>/<a_perms:access_permissions>.png', tile, name='mapdata.tile'),
path('history/<int:level>/<h_mode:mode>.<h_fileext:filetype>', map_history, name='mapdata.map_history'),
path('cache/package.<archive_fileext:filetype>', get_cache_package, name='mapdata.cache_package'),
]

View file

@ -9,7 +9,7 @@ from typing import List, Mapping, Optional, Union
from django.apps import apps
from django.db.models import Prefetch, Q
from django.utils.functional import cached_property
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from shapely.ops import cascaded_union
from c3nav.mapdata.grid import grid

View file

@ -1,7 +1,7 @@
from django.conf import settings
from django.utils.functional import lazy
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ungettext_lazy
from django.utils.translation import gettext_lazy as _
from django.utils.translation import ngettext_lazy
from c3nav.mapdata.models.access import AccessPermission
from c3nav.mapdata.models.locations import Position
@ -18,7 +18,7 @@ def get_user_data(request):
if permissions:
result.update({
'title': _('not logged in'),
'subtitle': ungettext_lazy('%d area unlocked', '%d areas unlocked', len(permissions)) % len(permissions),
'subtitle': ngettext_lazy('%d area unlocked', '%d areas unlocked', len(permissions)) % len(permissions),
'permissions': tuple(permissions),
})
else: