Projet

Général

Profil

0001-maps-add-link-to-existing-maps-on-manager-map-page-1.patch

Lauréline Guérin, 21 octobre 2019 15:33

Télécharger (3,65 ko)

Voir les différences:

Subject: [PATCH] maps: add link to existing maps on manager map page (#16908)

 combo/apps/maps/manager_views.py              |  6 +++++
 .../maps/templates/maps/manager_home.html     | 24 +++++++++++++++++++
 tests/test_maps_manager.py                    | 15 ++++++++++++
 3 files changed, 45 insertions(+)
combo/apps/maps/manager_views.py
18 18
from django.views.generic import (TemplateView, ListView, CreateView,
19 19
                UpdateView, DeleteView)
20 20

  
21
from .models import Map
21 22
from .models import MapLayer
22 23
from .forms import MapNewLayerForm, MapLayerForm
23 24

  
......
30 31
class ManagerHomeView(MapLayerMixin, ListView):
31 32
    template_name = 'maps/manager_home.html'
32 33

  
34
    def get_context_data(self, **kwargs):
35
        context = super(ManagerHomeView, self).get_context_data(**kwargs)
36
        context['map_list'] = Map.objects.all()
37
        return context
38

  
33 39

  
34 40
class LayerAddView(MapLayerMixin, CreateView):
35 41
    form_class = MapNewLayerForm
combo/apps/maps/templates/maps/manager_home.html
26 26
  {% endblocktrans %}
27 27
</div>
28 28
{% endif %}
29

  
30
<h2>{% trans 'Maps on site' %}</h2>
31

  
32
{% if map_list %}
33
<ul class="objects-list single-links maps">
34
 {% for map in map_list %}
35
 <li>
36
   <a href="{% url 'combo-manager-page-view' pk=map.page_id %}#cell-{{ map.get_reference }}">
37
    {% if map.title %}
38
      {% blocktrans with map_title=map.title page_title=map.page.title %}Map "{{ map_title }}" on page "{{ page_title }}"{% endblocktrans %}
39
    {% else %}
40
      {% blocktrans with page_title=map.page.title %}Unnamed map on page "{{ page_title }}"{% endblocktrans %}
41
    {% endif %}
42
   </a>
43
 </li>
44
 {% endfor %}
45
</ul>
46
{% else %}
47
<div class="big-msg-info">
48
  {% blocktrans %}
49
  This site doesn't have any map yet.
50
  {% endblocktrans %}
51
</div>
52
{% endif %}
29 53
{% endblock %}
tests/test_maps_manager.py
5 5

  
6 6
from django.contrib.auth.models import User
7 7

  
8
from combo.apps.maps.models import Map
8 9
from combo.apps.maps.models import MapLayer
10
from combo.data.models import Page
9 11

  
10 12
pytestmark = pytest.mark.django_db
11 13

  
......
66 68
    assert resp.location.endswith('/manage/maps/')
67 69
    assert MapLayer.objects.count() == 0
68 70

  
71

  
72
def test_list_layers(app, admin_user):
73
    page = Page.objects.create(title='One', slug='one', template_name='standard')
74
    map1 = Map.objects.create(page=page, placeholder='map 1', order=0)
75
    map2 = Map.objects.create(page=page, placeholder='map 2', order=1)
76

  
77
    test_add_layer(app, admin_user)
78
    app = login(app)
79
    resp = app.get('/manage/maps/', status=200)
80
    assert '/manage/pages/{}/#cell-{}'.format(page.pk, map1.get_reference()) in resp.text
81
    assert '/manage/pages/{}/#cell-{}'.format(page.pk, map2.get_reference()) in resp.text
82

  
83

  
69 84
@mock.patch('combo.apps.maps.models.requests.get')
70 85
def test_download_geojson(mock_request, app, admin_user):
71 86
    test_add_layer(app, admin_user)
72
-