add space children pages

This commit is contained in:
Laura Klünder 2017-05-19 16:50:09 +02:00
parent 55f582a2c5
commit 57627a4d53
3 changed files with 33 additions and 6 deletions

View file

@ -1,7 +1,7 @@
<div class="list-group">
{% for model in child_models %}
<a href="{{ model.url }}" class="list-group-item">
{% if model.count %}<span class="badge">{{ model.count }}</span>{% endif %}
{% if model.count != None %}<span class="badge">{{ model.count }}</span>{% endif %}
{{ model.title }}
</a>
{% endfor %}

View file

@ -28,3 +28,8 @@ urlpatterns.extend(add_editor_urls('sections', 'Section', with_list=False, expli
urlpatterns.extend(add_editor_urls('locationgroups', 'LocationGroup'))
urlpatterns.extend(add_editor_urls('spaces', 'Space', 'sections', 'section', explicit_edit=True))
urlpatterns.extend(add_editor_urls('doors', 'Door', 'sections', 'section'))
urlpatterns.extend(add_editor_urls('areas', 'Area', 'spaces', 'space'))
urlpatterns.extend(add_editor_urls('stairs', 'Stair', 'spaces', 'space'))
urlpatterns.extend(add_editor_urls('obstacles', 'Obstacle', 'spaces', 'space'))
urlpatterns.extend(add_editor_urls('lineobstacles', 'LineObstacle', 'spaces', 'space'))
urlpatterns.extend(add_editor_urls('points', 'Point', 'spaces', 'space'))

View file

@ -8,8 +8,9 @@ from django.urls import reverse
from django.utils.translation import ugettext_lazy as _
from django.views.decorators.cache import never_cache
from c3nav.mapdata.models import Door, LocationGroup, Section, Space
from c3nav.mapdata.models import Area, Door, LineObstacle, LocationGroup, Obstacle, Section, Space, Stair
from c3nav.mapdata.models.base import EDITOR_FORM_MODELS
from c3nav.mapdata.models.geometry.space import Point
def sidebar_view(func):
@ -65,7 +66,27 @@ def space_detail(request, section, pk):
'section': space.section,
'space': space,
'child_models': [],
'child_models': [{
'title': Area._meta.verbose_name_plural,
'url': reverse('editor.areas.list', kwargs={'space': pk}),
'count': space.areas.count(),
}, {
'title': Stair._meta.verbose_name_plural,
'url': reverse('editor.stairs.list', kwargs={'space': pk}),
'count': space.stairs.count(),
}, {
'title': Obstacle._meta.verbose_name_plural,
'url': reverse('editor.obstacles.list', kwargs={'space': pk}),
'count': space.obstacles.count(),
}, {
'title': LineObstacle._meta.verbose_name_plural,
'url': reverse('editor.lineobstacles.list', kwargs={'space': pk}),
'count': space.lineobstacles.count(),
}, {
'title': Point._meta.verbose_name_plural,
'url': reverse('editor.points.list', kwargs={'space': pk}),
'count': space.points.count(),
}],
})
@ -113,7 +134,7 @@ def edit(request, pk=None, model=None, section=None, space=None, explicit_edit=F
elif hasattr(obj, 'space'):
ctx.update({
'section': obj.space.section,
'back_url': reverse('editor.spaces.detail', kwargs={'pk': obj.space.pk}),
'back_url': reverse('editor.spaces.detail', kwargs={'section': obj.space.section.pk, 'pk': obj.space.pk}),
})
else:
kwargs = {}
@ -199,10 +220,11 @@ def list_objects(request, model=None, section=None, space=None, explicit_edit=Fa
})
elif space is not None:
reverse_kwargs['space'] = space
space = get_object_or_404(Section, pk=space)
space = get_object_or_404(Space, pk=space)
queryset = queryset.filter(space=space)
ctx.update({
'back_url': reverse('editor.spaces.detail', kwargs={'pk': space.pk}),
'section': space.section,
'back_url': reverse('editor.spaces.detail', kwargs={'section': space.section.pk, 'pk': space.pk}),
'back_title': _('back to space'),
})
else: