update dependencies and upgrade code for django where needed/possible
This commit is contained in:
parent
0f4e699e37
commit
03437a3a40
67 changed files with 331 additions and 207 deletions
|
@ -1 +0,0 @@
|
|||
default_app_config = 'c3nav.mapdata.apps.MapdataConfig'
|
|
@ -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
|
||||
|
|
48
src/c3nav/mapdata/converters.py
Normal file
48
src/c3nav/mapdata/converters.py
Normal 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
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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'))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)') % {
|
||||
|
|
|
@ -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'),
|
||||
]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue