0001-maps-add-link-to-existing-maps-on-manager-map-page-1.patch
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 |
- |