diff --git a/src/c3nav/control/urls.py b/src/c3nav/control/urls.py index ad9c0594..001aa6ae 100644 --- a/src/c3nav/control/urls.py +++ b/src/c3nav/control/urls.py @@ -4,5 +4,4 @@ from . import views urlpatterns = [ url(r'^$', views.dashboard, name='control.dashboard'), - url(r'^editor/(?P[^/]+)?$', views.editor, name='control.editor'), ] diff --git a/src/c3nav/control/views.py b/src/c3nav/control/views.py index 5ed0a1a7..5f83b050 100644 --- a/src/c3nav/control/views.py +++ b/src/c3nav/control/views.py @@ -1,25 +1,7 @@ -import json - from django.contrib.admin.views.decorators import staff_member_required -from django.shortcuts import get_object_or_404, redirect, render - -from ..mapdata.models import Level, Package, Source +from django.shortcuts import render @staff_member_required def dashboard(request): return render(request, 'control/dashboard.html') - - -@staff_member_required -def editor(request, level=None): - if not level: - return redirect('control.editor', level=Level.objects.first().name) - - level = get_object_or_404(Level, name=level) - return render(request, 'control/editor.html', { - 'bounds': json.dumps(Source.max_bounds()), - 'sources': [p.sources.all().order_by('name') for p in Package.objects.all()], - 'levels': Level.objects.all(), - 'current_level': level, - }) diff --git a/src/c3nav/editor/__init__.py b/src/c3nav/editor/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/c3nav/control/static/control/control.css b/src/c3nav/editor/static/editor/editor.css similarity index 100% rename from src/c3nav/control/static/control/control.css rename to src/c3nav/editor/static/editor/editor.css diff --git a/src/c3nav/editor/templates/editor/base.html b/src/c3nav/editor/templates/editor/base.html new file mode 100644 index 00000000..def48778 --- /dev/null +++ b/src/c3nav/editor/templates/editor/base.html @@ -0,0 +1,58 @@ +{% load static %} +{% load compress %} + + + + + + + c3nav Map Editor + {% compress css %} + + + + {% endcompress %} + + + + + + +
+ {% block content %} + {% endblock %} +
+ + {% compress js %} + + + + + {% endcompress %} + {% block addbottom %} + {% endblock %} + + diff --git a/src/c3nav/control/templates/control/editor.html b/src/c3nav/editor/templates/editor/map.html similarity index 92% rename from src/c3nav/control/templates/control/editor.html rename to src/c3nav/editor/templates/editor/map.html index bc99f2a6..295eaed3 100644 --- a/src/c3nav/control/templates/control/editor.html +++ b/src/c3nav/editor/templates/editor/map.html @@ -1,4 +1,4 @@ -{% extends 'control/base.html' %} +{% extends 'editor/base.html' %} {% load static %} {% block content %}
@@ -22,7 +22,7 @@ var map = L.map('mapeditor', { {% for source_list in sources %} L.control.layers([], { {% for source in source_list %} - "{{ source.name }}": L.imageOverlay('{% url 'map.source' source=source.name %}', {{ source.jsbounds }}),{% endfor %} + "{{ source.name }}": L.imageOverlay('{% url 'editor.sources.image' source=source.name %}', {{ source.jsbounds }}),{% endfor %} }).addTo(map); {% endfor %} @@ -34,8 +34,7 @@ L.LevelControl = L.Control.extend({ onAdd: function (map) { var container = L.DomUtil.create('div', 'leaflet-control leaflet-bar leaflet-levels'), link; {% for level in levels reversed %} - link = L.DomUtil.create('a', '{% if current_level == level %}current{% endif %}', container); - link.href = '{% url "control.editor" level=level.name %}'; + link = L.DomUtil.create('a', '{% if forloop.last %}current{% endif %}', container); link.innerHTML = '{{ level.name }}'; {% endfor %} return container; diff --git a/src/c3nav/editor/urls.py b/src/c3nav/editor/urls.py new file mode 100644 index 00000000..27290af7 --- /dev/null +++ b/src/c3nav/editor/urls.py @@ -0,0 +1,8 @@ +from django.conf.urls import url + +from . import views + +urlpatterns = [ + url(r'^$', views.index, name='editor.index'), + url(r'^sources/image/(?P[^/]+)$', views.source, name='editor.sources.image'), +] diff --git a/src/c3nav/mapdata/views.py b/src/c3nav/editor/views.py similarity index 56% rename from src/c3nav/mapdata/views.py rename to src/c3nav/editor/views.py index 3286ca40..1f6acbcc 100644 --- a/src/c3nav/mapdata/views.py +++ b/src/c3nav/editor/views.py @@ -1,16 +1,23 @@ +import json import mimetypes import os from django.conf import settings -from django.contrib.admin.views.decorators import staff_member_required from django.core.files import File from django.http import HttpResponse -from django.shortcuts import get_object_or_404 +from django.shortcuts import get_object_or_404, render -from .models import Source +from ..mapdata.models import Level, Package, Source + + +def index(request): + return render(request, 'editor/map.html', { + 'bounds': json.dumps(Source.max_bounds()), + 'sources': [p.sources.all().order_by('name') for p in Package.objects.all()], + 'levels': Level.objects.order_by('altitude'), + }) -@staff_member_required def source(request, source): source = get_object_or_404(Source, name=source) response = HttpResponse(content_type=mimetypes.guess_type(source.name)[0]) diff --git a/src/c3nav/mapdata/urls.py b/src/c3nav/mapdata/urls.py deleted file mode 100644 index 73095b33..00000000 --- a/src/c3nav/mapdata/urls.py +++ /dev/null @@ -1,8 +0,0 @@ -from django.conf.urls import url - -from . import views - -urlpatterns = [ - url(r'^sources/(?P[^/]+)$', views.source, name='map.source'), - url(r'^data/add$', views.source, name='map.edit.source'), -] diff --git a/src/c3nav/settings.py b/src/c3nav/settings.py index 241fd4c6..630722f0 100644 --- a/src/c3nav/settings.py +++ b/src/c3nav/settings.py @@ -108,8 +108,9 @@ INSTALLED_APPS = [ 'django.contrib.staticfiles', 'compressor', 'bootstrap3', - 'c3nav.control', 'c3nav.mapdata', + 'c3nav.editor', + 'c3nav.control', ] MIDDLEWARE_CLASSES = [ diff --git a/src/c3nav/urls.py b/src/c3nav/urls.py index e72e11d4..f7750591 100644 --- a/src/c3nav/urls.py +++ b/src/c3nav/urls.py @@ -2,10 +2,10 @@ from django.conf.urls import include, url from django.contrib import admin from .control import urls as control_urls -from .mapdata import urls as map_urls +from .editor import urls as editor_urls urlpatterns = [ url(r'^control/', include(control_urls)), - url(r'^map/', include(map_urls)), + url(r'^editor/', include(editor_urls)), url(r'^admin/', admin.site.urls), ]