maps: fix export/import of map layers defined in cells (#17936)

This commit is contained in:
Frédéric Péters 2017-08-08 16:44:20 +02:00
parent 403a1a400e
commit 78a40f5d98
2 changed files with 22 additions and 1 deletions

View File

@ -54,7 +54,14 @@ ZOOM_LEVELS = [ ('0', _('Whole world')),
('19', _('Ant')),]
class MapLayerManager(models.Manager):
def get_by_natural_key(self, slug):
return self.get(slug=slug)
class MapLayer(models.Model):
objects = MapLayerManager()
label = models.CharField(_('Label'), max_length=128)
slug = models.SlugField(_('Identifier'))
geojson_url = models.URLField(_('Geojson URL'), max_length=1024)

View File

@ -9,7 +9,7 @@ import tempfile
import pytest
from django.core.management import call_command
from combo.apps.maps.models import MapLayer
from combo.apps.maps.models import MapLayer, Map
from combo.data.models import Page, TextCell
from combo.data.utils import export_site, import_site
@ -109,3 +109,17 @@ def test_import_export_map_layers(app, some_map_layers):
import_site(data={}, if_empty=True)
assert MapLayer.objects.count() == 2
def test_import_export_map_cells(app, some_data, some_map_layers):
page = Page.objects.get(slug='one')
cell = Map(page=page, order=0)
cell.save()
cell.layers.add(MapLayer.objects.get(slug='foo'))
cell.save()
site_export = get_output_of_command('export_site')
import_site(data={}, clean=True)
assert Map.objects.count() == 0
import_site(data=json.loads(site_export), clean=True)
assert Map.objects.count() == 1
assert Map.objects.all()[0].layers.all()[0].slug == 'foo'