maps: fix export/import of map layers defined in cells (#17936)
This commit is contained in:
parent
403a1a400e
commit
78a40f5d98
|
@ -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)
|
||||
|
|
|
@ -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'
|
||||
|
|
Loading…
Reference in New Issue