maps: fix tiles map layer edition (#40866)

This commit is contained in:
Lauréline Guérin 2020-03-20 16:16:22 +01:00
parent 8d80c2650e
commit d04bb7cc89
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
2 changed files with 11 additions and 1 deletions

View File

@ -63,7 +63,7 @@ class MapLayerForm(forms.ModelForm):
def clean(self):
cleaned_data = super(MapLayerForm, self).clean()
if self.instance.kind == 'tiles':
if self.instance.kind == 'tiles' and cleaned_data.get('tiles_default') is True:
if MapLayer.objects.filter(kind='tiles', tiles_default=True).exclude(pk=self.instance.pk):
raise forms.ValidationError(_('Only one default tiles layer can be defined.'))

View File

@ -111,6 +111,16 @@ def test_add_tiles_layer(app, admin_user):
resp = resp.forms[0].submit()
assert '<li>Only one default tiles layer can be defined.</li>' in resp.text
resp = app.get('/manage/maps/', status=200)
resp = resp.click('New tiles layer')
resp.forms[0]['label'] = 'Test2'
resp.forms[0]['tiles_template_url'] = 'http://somedomain.com/blabla/{z}/{x}/{y}{r}.png'
resp.forms[0]['tiles_attribution'] = 'Foo bar'
resp.forms[0]['tiles_default'] = False
resp = resp.forms[0].submit()
assert resp.location.endswith('/manage/maps/')
assert MapLayer.objects.count() == 2
def test_edit_geojson_layer(app, admin_user, layer):
app = login(app)