Skip to content
This repository was archived by the owner on Sep 12, 2018. It is now read-only.

Commit 8e211dd

Browse files
committed
Upgrade to Django 2.0
1 parent c81972e commit 8e211dd

File tree

15 files changed

+54
-48
lines changed

15 files changed

+54
-48
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,4 @@ build/
1414
*.egg-info
1515
datalayer/
1616
.cache/
17+
.pytest_cache/

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
test:
2-
py.test tests
2+
py.test -vx tests
33
initassets:
44
git submodule update --init
55
assets:

leaflet_storage/decorators.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from functools import wraps
22

3-
from django.core.urlresolvers import reverse_lazy
3+
from django.urls import reverse_lazy
44
from django.shortcuts import get_object_or_404
55
from django.http import HttpResponseForbidden
66
from django.conf import settings
@@ -10,14 +10,15 @@
1010

1111

1212
LOGIN_URL = getattr(settings, "LOGIN_URL", "login")
13-
LOGIN_URL = reverse_lazy(LOGIN_URL) if not LOGIN_URL.startswith("/") else LOGIN_URL
13+
LOGIN_URL = (reverse_lazy(LOGIN_URL) if not LOGIN_URL.startswith("/")
14+
else LOGIN_URL)
1415

1516

1617
def login_required_if_not_anonymous_allowed(view_func):
1718
@wraps(view_func)
1819
def wrapper(request, *args, **kwargs):
1920
if (not getattr(settings, "LEAFLET_STORAGE_ALLOW_ANONYMOUS", False)
20-
and not request.user.is_authenticated()):
21+
and not request.user.is_authenticated):
2122
return simple_json_response(login_required=str(LOGIN_URL))
2223
return view_func(request, *args, **kwargs)
2324
return wrapper
@@ -35,7 +36,7 @@ def wrapper(request, *args, **kwargs):
3536
if map_inst.edit_status >= map_inst.EDITORS:
3637
can_edit = map_inst.can_edit(user=user, request=request)
3738
if not can_edit:
38-
if map_inst.owner and not user.is_authenticated():
39+
if map_inst.owner and not user.is_authenticated:
3940
return simple_json_response(login_required=str(LOGIN_URL))
4041
else:
4142
return HttpResponseForbidden('Action not allowed for user.')

leaflet_storage/fields.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,4 @@ def to_python(self, value):
3030

3131
def value_to_string(self, obj):
3232
"""Return value from object converted to string properly"""
33-
return smart_text(self.get_prep_value(self._get_val_from_obj(obj)))
33+
return smart_text(self.get_prep_value(self.value_from_object(obj)))

leaflet_storage/forms.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def __init__(self, *args, **kwargs):
4848
(Map.OWNER, _('Only editable with secret edit link'))
4949
)
5050

51-
edit_status = forms.ChoiceField(STATUS)
51+
edit_status = forms.ChoiceField(choices=STATUS)
5252

5353
class Meta:
5454
model = Map

leaflet_storage/managers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
from django.contrib.gis.db import models
1+
from django.db.models import Manager
22

33

4-
class PublicManager(models.GeoManager):
4+
class PublicManager(Manager):
55

66
def get_queryset(self):
77
return super(PublicManager, self).get_queryset().filter(

leaflet_storage/migrations/0001_initial.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ class Migration(migrations.Migration):
5858
('settings', leaflet_storage.fields.DictField(null=True, verbose_name='settings', blank=True)),
5959
('editors', models.ManyToManyField(to=settings.AUTH_USER_MODEL, verbose_name='editors', blank=True)),
6060
('licence', models.ForeignKey(on_delete=django.db.models.deletion.SET_DEFAULT, default=leaflet_storage.models.get_default_licence, verbose_name='licence', to='leaflet_storage.Licence', help_text='Choose the map licence.')),
61-
('owner', models.ForeignKey(related_name='owned_maps', verbose_name='owner', blank=True, to=settings.AUTH_USER_MODEL, null=True)),
61+
('owner', models.ForeignKey(related_name='owned_maps', verbose_name='owner', blank=True, to=settings.AUTH_USER_MODEL, null=True, on_delete=django.db.models.deletion.PROTECT)),
6262
],
6363
options={
6464
'ordering': ('name',),
@@ -96,11 +96,11 @@ class Migration(migrations.Migration):
9696
migrations.AddField(
9797
model_name='map',
9898
name='tilelayer',
99-
field=models.ForeignKey(related_name='maps', verbose_name='background', blank=True, to='leaflet_storage.TileLayer', null=True),
99+
field=models.ForeignKey(related_name='maps', verbose_name='background', blank=True, to='leaflet_storage.TileLayer', null=True, on_delete=django.db.models.deletion.SET_DEFAULT),
100100
),
101101
migrations.AddField(
102102
model_name='datalayer',
103103
name='map',
104-
field=models.ForeignKey(to='leaflet_storage.Map'),
104+
field=models.ForeignKey(to='leaflet_storage.Map', on_delete=django.db.models.deletion.CASCADE),
105105
),
106106
]

leaflet_storage/models.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from django.contrib.gis.db import models
77
from django.conf import settings
8-
from django.core.urlresolvers import reverse
8+
from django.urls import reverse
99
from django.utils.translation import ugettext_lazy as _
1010
from django.core.signing import Signer
1111
from django.contrib import messages
@@ -135,14 +135,14 @@ class Map(NamedModel):
135135
default=get_default_licence
136136
)
137137
modified_at = models.DateTimeField(auto_now=True)
138-
tilelayer = models.ForeignKey(TileLayer, blank=True, null=True, related_name="maps", verbose_name=_("background"))
139-
owner = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True, related_name="owned_maps", verbose_name=_("owner"))
138+
tilelayer = models.ForeignKey(TileLayer, blank=True, null=True, related_name="maps", verbose_name=_("background"), on_delete=models.PROTECT)
139+
owner = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True, related_name="owned_maps", verbose_name=_("owner"), on_delete=models.PROTECT)
140140
editors = models.ManyToManyField(settings.AUTH_USER_MODEL, blank=True, verbose_name=_("editors"))
141141
edit_status = models.SmallIntegerField(choices=EDIT_STATUS, default=OWNER, verbose_name=_("edit status"))
142142
share_status = models.SmallIntegerField(choices=SHARE_STATUS, default=PUBLIC, verbose_name=_("share status"))
143143
settings = DictField(blank=True, null=True, verbose_name=_("settings"))
144144

145-
objects = models.GeoManager()
145+
objects = models.Manager()
146146
public = PublicManager()
147147

148148
def get_absolute_url(self):
@@ -174,15 +174,15 @@ def can_edit(self, user=None, request=None):
174174
if (getattr(settings, "LEAFLET_STORAGE_ALLOW_ANONYMOUS", False)
175175
and self.is_anonymous_owner(request)):
176176
can = True
177-
if user and user.is_authenticated():
177+
if user and user.is_authenticated:
178178
# if user is authenticated, attach as owner
179179
self.owner = user
180180
self.save()
181181
msg = _("Your anonymous map has been attached to your account %s" % user)
182182
messages.info(request, msg)
183183
if self.edit_status == self.ANONYMOUS:
184184
can = True
185-
elif not user.is_authenticated():
185+
elif not user.is_authenticated:
186186
pass
187187
elif user == self.owner:
188188
can = True
@@ -253,7 +253,7 @@ class DataLayer(NamedModel):
253253
"""
254254
Layer to store Features in.
255255
"""
256-
map = models.ForeignKey(Map)
256+
map = models.ForeignKey(Map, on_delete=models.CASCADE)
257257
description = models.TextField(
258258
blank=True,
259259
null=True,

leaflet_storage/utils.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import gzip
22

3-
from django.core.urlresolvers import get_resolver
4-
from django.core.urlresolvers import RegexURLPattern, RegexURLResolver
3+
from django.urls import get_resolver
4+
from django.urls import URLPattern, URLResolver
55

66

77
def get_uri_template(urlname, args=None, prefix=""):
@@ -59,10 +59,10 @@ def _convert(template, args=None):
5959
return None
6060

6161

62-
class DecoratedURLPattern(RegexURLPattern):
62+
class DecoratedURLPattern(URLPattern):
6363

6464
def resolve(self, *args, **kwargs):
65-
result = RegexURLPattern.resolve(self, *args, **kwargs)
65+
result = URLPattern.resolve(self, *args, **kwargs)
6666
if result:
6767
for func in self._decorate_with:
6868
result.func = func(result.func)
@@ -84,14 +84,14 @@ def decorated_patterns(func, *urls):
8484

8585
def decorate(urls, func):
8686
for url in urls:
87-
if isinstance(url, RegexURLPattern):
87+
if isinstance(url, URLPattern):
8888
url.__class__ = DecoratedURLPattern
8989
if not hasattr(url, "_decorate_with"):
9090
setattr(url, "_decorate_with", [])
9191
url._decorate_with.append(func)
92-
elif isinstance(url, RegexURLResolver):
92+
elif isinstance(url, URLResolver):
9393
for pp in url.url_patterns:
94-
if isinstance(pp, RegexURLPattern):
94+
if isinstance(pp, URLPattern):
9595
pp.__class__ = DecoratedURLPattern
9696
if not hasattr(pp, "_decorate_with"):
9797
setattr(pp, "_decorate_with", [])

leaflet_storage/views.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from django.contrib.auth import logout as do_logout
1010
from django.contrib.auth import get_user_model
1111
from django.core.signing import Signer, BadSignature
12-
from django.core.urlresolvers import reverse_lazy, reverse
12+
from django.urls import reverse_lazy, reverse
1313
from django.http import (HttpResponse, HttpResponseForbidden,
1414
HttpResponseRedirect, HttpResponsePermanentRedirect)
1515
from django.shortcuts import get_object_or_404
@@ -222,10 +222,10 @@ class MapCreate(FormLessEditMixin, CreateView):
222222
form_class = MapSettingsForm
223223

224224
def form_valid(self, form):
225-
if self.request.user.is_authenticated():
225+
if self.request.user.is_authenticated:
226226
form.instance.owner = self.request.user
227227
self.object = form.save()
228-
if not self.request.user.is_authenticated():
228+
if not self.request.user.is_authenticated:
229229
anonymous_url = "%s%s" % (
230230
settings.SITE_URL,
231231
self.object.get_anonymous_edit_url()
@@ -242,7 +242,7 @@ def form_valid(self, form):
242242
url=self.object.get_absolute_url(),
243243
info=msg
244244
)
245-
if not self.request.user.is_authenticated():
245+
if not self.request.user.is_authenticated:
246246
key, value = self.object.signed_cookie_elements
247247
response.set_signed_cookie(
248248
key=key,
@@ -317,12 +317,12 @@ class MapClone(View):
317317

318318
def post(self, *args, **kwargs):
319319
if not getattr(settings, "LEAFLET_STORAGE_ALLOW_ANONYMOUS", False) \
320-
and not self.request.user.is_authenticated():
320+
and not self.request.user.is_authenticated:
321321
return HttpResponseForbidden('Forbidden')
322-
owner = self.request.user if self.request.user.is_authenticated() else None
322+
owner = self.request.user if self.request.user.is_authenticated else None
323323
self.object = kwargs['map_inst'].clone(owner=owner)
324324
response = simple_json_response(redirect=self.object.get_absolute_url())
325-
if not self.request.user.is_authenticated():
325+
if not self.request.user.is_authenticated:
326326
key, value = self.object.signed_cookie_elements
327327
response.set_signed_cookie(
328328
key=key,

0 commit comments

Comments
 (0)