maps: add link to existing maps on manager map page (#16908)
This commit is contained in:
parent
992f6fc71a
commit
63a4bf975f
|
@ -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
|
||||
|
|
|
@ -26,4 +26,28 @@
|
|||
{% endblocktrans %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<h2>{% trans 'Maps on site' %}</h2>
|
||||
|
||||
{% if map_list %}
|
||||
<ul class="objects-list single-links maps">
|
||||
{% for map in map_list %}
|
||||
<li>
|
||||
<a href="{% url 'combo-manager-page-view' pk=map.page_id %}#cell-{{ map.get_reference }}">
|
||||
{% if map.title %}
|
||||
{% blocktrans with map_title=map.title page_title=map.page.title %}Map "{{ map_title }}" on page "{{ page_title }}"{% endblocktrans %}
|
||||
{% else %}
|
||||
{% blocktrans with page_title=map.page.title %}Unnamed map on page "{{ page_title }}"{% endblocktrans %}
|
||||
{% endif %}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% else %}
|
||||
<div class="big-msg-info">
|
||||
{% blocktrans %}
|
||||
This site doesn't have any map yet.
|
||||
{% endblocktrans %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue