add LeaveDescription and CrossDescription to Editor
This commit is contained in:
parent
6d3b4b9c60
commit
9ae9477b33
5 changed files with 42 additions and 4 deletions
|
@ -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]
|
||||||
|
|
|
@ -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'))
|
||||||
|
|
|
@ -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,
|
||||||
|
|
23
src/c3nav/mapdata/migrations/0062_typos.py
Normal file
23
src/c3nav/mapdata/migrations/0062_typos.py
Normal 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',
|
||||||
|
),
|
||||||
|
]
|
|
@ -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
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue