diff --git a/combo/apps/maps/manager_views.py b/combo/apps/maps/manager_views.py index c7e82ec5..c9346778 100644 --- a/combo/apps/maps/manager_views.py +++ b/combo/apps/maps/manager_views.py @@ -18,6 +18,7 @@ from django.core.urlresolvers import reverse_lazy from django.views.generic import (TemplateView, ListView, CreateView, UpdateView, DeleteView) +from .models import Map from .models import MapLayer from .forms import MapNewLayerForm, MapLayerForm @@ -30,6 +31,11 @@ class MapLayerMixin(object): class ManagerHomeView(MapLayerMixin, ListView): template_name = 'maps/manager_home.html' + def get_context_data(self, **kwargs): + context = super(ManagerHomeView, self).get_context_data(**kwargs) + context['map_list'] = Map.objects.all() + return context + class LayerAddView(MapLayerMixin, CreateView): form_class = MapNewLayerForm diff --git a/combo/apps/maps/templates/maps/manager_home.html b/combo/apps/maps/templates/maps/manager_home.html index 4531edf8..281dcb1f 100644 --- a/combo/apps/maps/templates/maps/manager_home.html +++ b/combo/apps/maps/templates/maps/manager_home.html @@ -26,4 +26,28 @@ {% endblocktrans %} {% endif %} + +

{% trans 'Maps on site' %}

+ +{% if map_list %} + +{% else %} +
+ {% blocktrans %} + This site doesn't have any map yet. + {% endblocktrans %} +
+{% endif %} {% endblock %} diff --git a/tests/test_maps_manager.py b/tests/test_maps_manager.py index edb95b27..1c54d73f 100644 --- a/tests/test_maps_manager.py +++ b/tests/test_maps_manager.py @@ -5,7 +5,9 @@ import mock from django.contrib.auth.models import User +from combo.apps.maps.models import Map from combo.apps.maps.models import MapLayer +from combo.data.models import Page pytestmark = pytest.mark.django_db @@ -66,6 +68,19 @@ def test_delete_layer(app, admin_user): assert resp.location.endswith('/manage/maps/') assert MapLayer.objects.count() == 0 + +def test_list_layers(app, admin_user): + page = Page.objects.create(title='One', slug='one', template_name='standard') + map1 = Map.objects.create(page=page, placeholder='map 1', order=0) + map2 = Map.objects.create(page=page, placeholder='map 2', order=1) + + test_add_layer(app, admin_user) + app = login(app) + resp = app.get('/manage/maps/', status=200) + assert '/manage/pages/{}/#cell-{}'.format(page.pk, map1.get_reference()) in resp.text + assert '/manage/pages/{}/#cell-{}'.format(page.pk, map2.get_reference()) in resp.text + + @mock.patch('combo.apps.maps.models.requests.get') def test_download_geojson(mock_request, app, admin_user): test_add_layer(app, admin_user)