add LeaveDescription and CrossDescription to Editor

This commit is contained in:
Laura Klünder 2017-12-19 00:50:40 +01:00
parent 6d3b4b9c60
commit 9ae9477b33
5 changed files with 42 additions and 4 deletions

View file

@ -71,6 +71,12 @@ class EditorFormBase(I18nModelFormMixin, ModelForm):
self.fields['access_restriction'].label_from_instance = lambda obj: obj.title self.fields['access_restriction'].label_from_instance = lambda obj: obj.title
self.fields['access_restriction'].queryset = AccessRestriction.qs_for_request(self.request) self.fields['access_restriction'].queryset = AccessRestriction.qs_for_request(self.request)
Space = self.request.changeset.wrap_model('Space')
for space_field in ('origin_space', 'target_space'):
if space_field in self.fields:
self.fields[space_field].label_from_instance = lambda obj: obj.title
self.fields[space_field].queryset = Space.qs_for_request(self.request)
self.redirect_slugs = None self.redirect_slugs = None
self.add_redirect_slugs = None self.add_redirect_slugs = None
self.remove_redirect_slugs = None self.remove_redirect_slugs = None
@ -139,6 +145,7 @@ def create_editor_form(editor_model):
'ordering', 'category', 'width', 'groups', 'color', 'priority', 'icon_name', 'ordering', 'category', 'width', 'groups', 'color', 'priority', 'icon_name',
'base_altitude', 'waytype', 'access_restriction', 'height', 'default_height', 'door_height', 'base_altitude', 'waytype', 'access_restriction', 'height', 'default_height', 'door_height',
'outside', 'can_search', 'can_describe', 'geometry', 'single', 'altitude', 'short_label', 'outside', 'can_search', 'can_describe', 'geometry', 'single', 'altitude', 'short_label',
'origin_space', 'target_space',
'extra_seconds', 'speed', 'description', 'speed_up', 'description_up', 'extra_seconds', 'speed', 'description', 'speed_up', 'description_up',
'allow_levels', 'allow_spaces', 'allow_areas', 'allow_pois', 'left', 'top', 'right', 'bottom'] 'allow_levels', 'allow_spaces', 'allow_areas', 'allow_pois', 'left', 'top', 'right', 'bottom']
field_names = [field.name for field in editor_model._meta.get_fields() if not field.one_to_many] field_names = [field.name for field in editor_model._meta.get_fields() if not field.one_to_many]

View file

@ -65,3 +65,5 @@ urlpatterns.extend(add_editor_urls('LineObstacle', 'Space'))
urlpatterns.extend(add_editor_urls('Column', 'Space')) urlpatterns.extend(add_editor_urls('Column', 'Space'))
urlpatterns.extend(add_editor_urls('POI', 'Space')) urlpatterns.extend(add_editor_urls('POI', 'Space'))
urlpatterns.extend(add_editor_urls('AltitudeMarker', 'Space')) urlpatterns.extend(add_editor_urls('AltitudeMarker', 'Space'))
urlpatterns.extend(add_editor_urls('LeaveDescription', 'Space'))
urlpatterns.extend(add_editor_urls('CrossDescription', 'Space'))

View file

@ -87,7 +87,7 @@ def space_detail(request, level, pk):
'child_models': [child_model(request, model_name, kwargs={'space': pk}, parent=space) 'child_models': [child_model(request, model_name, kwargs={'space': pk}, parent=space)
for model_name in ('POI', 'Area', 'Obstacle', 'LineObstacle', 'Stair', 'Ramp', 'Column', for model_name in ('POI', 'Area', 'Obstacle', 'LineObstacle', 'Stair', 'Ramp', 'Column',
'Hole', 'AltitudeMarker')], 'Hole', 'AltitudeMarker', 'LeaveDescription', 'CrossDescription')],
'geometry_url': '/api/editor/geometries/?space='+pk, 'geometry_url': '/api/editor/geometries/?space='+pk,
}) })
@ -318,7 +318,13 @@ def list_objects(request, model=None, level=None, space=None, explicit_edit=Fals
reverse_kwargs['space'] = space reverse_kwargs['space'] = space
sub_qs = Space.objects.filter(Space.q_for_request(request)).select_related('level').defer('geometry') sub_qs = Space.objects.filter(Space.q_for_request(request)).select_related('level').defer('geometry')
space = get_object_or_404(sub_qs, pk=space) space = get_object_or_404(sub_qs, pk=space)
queryset = queryset.filter(space=space).defer('geometry') queryset = queryset.filter(space=space)
try:
model._meta.get_field('geometry')
except FieldDoesNotExist:
pass
else:
queryset = queryset.defer('geometry')
ctx.update({ ctx.update({
'levels': Level.objects.filter(Level.q_for_request(request), on_top_of__isnull=True), 'levels': Level.objects.filter(Level.q_for_request(request), on_top_of__isnull=True),
'level': space.level, 'level': space.level,

View file

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.7 on 2017-12-18 23:33
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('mapdata', '0061_space_based_route_descriptions'),
]
operations = [
migrations.RenameModel(
old_name='CrossDecription',
new_name='CrossDescription',
),
migrations.RenameModel(
old_name='LeaveDecription',
new_name='LeaveDescription',
),
]

View file

@ -243,7 +243,7 @@ class AltitudeMarker(SpaceGeometryMixin, models.Model):
return '%s (%sm)' % (super().title, self.altitude) return '%s (%sm)' % (super().title, self.altitude)
class LeaveDecription(SpaceGeometryMixin, models.Model): class LeaveDescription(models.Model):
""" """
A description for leaving a space to another space A description for leaving a space to another space
""" """
@ -258,7 +258,7 @@ class LeaveDecription(SpaceGeometryMixin, models.Model):
default_related_name = 'leave_descriptions' default_related_name = 'leave_descriptions'
class CrossDecription(SpaceGeometryMixin, models.Model): class CrossDescription(models.Model):
""" """
A description for crossing a space from one space to another space A description for crossing a space from one space to another space
""" """