implement new django-based models and loadmappkg command

This commit is contained in:
Laura Klünder 2016-08-28 17:59:52 +02:00
parent 66661209d2
commit 752b7d6d7d
14 changed files with 318 additions and 196 deletions

View file

@ -10,7 +10,7 @@
var map = L.map('mapeditor', {
center: [120, 200],
zoom: 2,
maxBounds: [[0, 0], [{{ map.height }}, {{ map.width }}]],
maxBounds: {{ bounds }},
maxZoom: 10,
minZoom: 1,
crs: L.CRS.Simple,
@ -19,10 +19,10 @@ var map = L.map('mapeditor', {
});
// Add Source Layers
{% for pkg in map.pkgs.values %}
{% for pkg in packages %}
L.control.layers([], {
{% for source in pkg.sources %}
"{{ source.name }}": L.imageOverlay('{% url 'map.source' filename=source.filename %}', {{ source.jsbounds }}),{% endfor %}
{% for source in pkg.sources.all %}
"{{ source.name }}": L.imageOverlay('{% url 'map.source' source=source.name %}', {{ source.jsbounds }}),{% endfor %}
}).addTo(map);
{% endfor %}
@ -33,10 +33,10 @@ L.LevelControl = L.Control.extend({
},
onAdd: function (map) {
var container = L.DomUtil.create('div', 'leaflet-control leaflet-bar leaflet-levels'), link;
{% for level in map.levels reversed %}
{% for level in levels reversed %}
link = L.DomUtil.create('a', '{% if current_level == level %}current{% endif %}', container);
link.href = '{% url "control.editor" level=level %}';
link.innerHTML = '{{ level }}';
link.href = '{% url "control.editor" level=level.name %}';
link.innerHTML = '{{ level.name }}';
{% endfor %}
return container;
}

View file

@ -1,8 +1,9 @@
from django.contrib.admin.views.decorators import staff_member_required
from django.http import Http404
from django.shortcuts import redirect, render
import json
from ..mapdata import mapmanager
from django.contrib.admin.views.decorators import staff_member_required
from django.shortcuts import get_object_or_404, redirect, render
from ..mapdata.models import MapLevel, MapPackage, MapSource
@staff_member_required
@ -13,10 +14,12 @@ def dashboard(request):
@staff_member_required
def editor(request, level=None):
if not level:
return redirect('control.editor', level=mapmanager.levels[0])
if level not in mapmanager.levels:
raise Http404('Level does not exist')
return redirect('control.editor', level=MapLevel.objects.first().name)
level = get_object_or_404(MapLevel, name=level)
return render(request, 'control/editor.html', {
'map': mapmanager,
'bounds': json.dumps(MapSource.max_bounds()),
'packages': MapPackage.objects.all(),
'levels': MapLevel.objects.all(),
'current_level': level,
})