add ramp model
This commit is contained in:
parent
3556f33a75
commit
aaabc7e37c
7 changed files with 60 additions and 4 deletions
|
@ -11,7 +11,7 @@ from c3nav.editor.api import ChangeSetViewSet, EditorViewSet
|
|||
from c3nav.mapdata.api import (AccessRestrictionViewSet, AreaViewSet, BuildingViewSet, ColumnViewSet, DoorViewSet,
|
||||
HoleViewSet, LevelViewSet, LineObstacleViewSet, LocationGroupCategoryViewSet,
|
||||
LocationGroupViewSet, LocationViewSet, MapViewSet, ObstacleViewSet, POIViewSet,
|
||||
SourceViewSet, SpaceViewSet, StairViewSet)
|
||||
RampViewSet, SourceViewSet, SpaceViewSet, StairViewSet)
|
||||
|
||||
router = SimpleRouter()
|
||||
router.register(r'map', MapViewSet, base_name='map')
|
||||
|
@ -22,6 +22,7 @@ router.register(r'doors', DoorViewSet)
|
|||
router.register(r'holes', HoleViewSet)
|
||||
router.register(r'areas', AreaViewSet)
|
||||
router.register(r'stairs', StairViewSet)
|
||||
router.register(r'ramps', RampViewSet)
|
||||
router.register(r'obstacles', ObstacleViewSet)
|
||||
router.register(r'lineobstacles', LineObstacleViewSet)
|
||||
router.register(r'columns', ColumnViewSet)
|
||||
|
|
|
@ -178,6 +178,7 @@ class EditorViewSet(ViewSet):
|
|||
space.areas.filter(Area.q_for_request(request)).prefetch_related('groups'),
|
||||
space.holes.all(),
|
||||
space.stairs.all(),
|
||||
space.ramps.all(),
|
||||
space.obstacles.all(),
|
||||
space.lineobstacles.all(),
|
||||
space.columns.all(),
|
||||
|
@ -201,6 +202,7 @@ class EditorViewSet(ViewSet):
|
|||
'door': '#ffffff',
|
||||
'area': 'rgba(85, 170, 255, 0.2)',
|
||||
'stair': '#a000a0',
|
||||
'ramp': 'rgba(160, 0, 160, 0.2)',
|
||||
'obstacle': '#999999',
|
||||
'lineobstacle': '#999999',
|
||||
'column': '#888888',
|
||||
|
|
|
@ -59,6 +59,7 @@ urlpatterns.extend(add_editor_urls('Door', 'Level'))
|
|||
urlpatterns.extend(add_editor_urls('Hole', 'Space'))
|
||||
urlpatterns.extend(add_editor_urls('Area', 'Space'))
|
||||
urlpatterns.extend(add_editor_urls('Stair', 'Space'))
|
||||
urlpatterns.extend(add_editor_urls('Ramp', 'Space'))
|
||||
urlpatterns.extend(add_editor_urls('Obstacle', 'Space'))
|
||||
urlpatterns.extend(add_editor_urls('LineObstacle', 'Space'))
|
||||
urlpatterns.extend(add_editor_urls('Column', 'Space'))
|
||||
|
|
|
@ -81,8 +81,8 @@ def space_detail(request, level, pk):
|
|||
'can_edit': request.changeset.can_edit(request),
|
||||
|
||||
'child_models': [child_model(request, model_name, kwargs={'space': pk}, parent=space)
|
||||
for model_name in ('Hole', 'Area', 'Stair', 'Obstacle', 'LineObstacle', 'Column', 'POI',
|
||||
'AltitudeMarker')],
|
||||
for model_name in ('Hole', 'Area', 'Stair', 'Ramp', 'Obstacle', 'LineObstacle', 'Column',
|
||||
'POI', 'AltitudeMarker')],
|
||||
'geometry_url': '/api/editor/geometries/?space='+pk,
|
||||
})
|
||||
|
||||
|
|
|
@ -19,7 +19,8 @@ from rest_framework.viewsets import GenericViewSet, ReadOnlyModelViewSet, ViewSe
|
|||
from c3nav.mapdata.models import AccessRestriction, Building, Door, Hole, LocationGroup, MapUpdate, Source, Space
|
||||
from c3nav.mapdata.models.access import AccessPermission
|
||||
from c3nav.mapdata.models.geometry.level import LevelGeometryMixin
|
||||
from c3nav.mapdata.models.geometry.space import POI, Area, Column, LineObstacle, Obstacle, SpaceGeometryMixin, Stair
|
||||
from c3nav.mapdata.models.geometry.space import (POI, Area, Column, LineObstacle, Obstacle, Ramp, SpaceGeometryMixin,
|
||||
Stair)
|
||||
from c3nav.mapdata.models.level import Level
|
||||
from c3nav.mapdata.models.locations import (Location, LocationGroupCategory, LocationRedirect, LocationSlug,
|
||||
SpecificLocation)
|
||||
|
@ -208,6 +209,11 @@ class StairViewSet(MapdataViewSet):
|
|||
queryset = Stair.objects.all()
|
||||
|
||||
|
||||
class RampViewSet(MapdataViewSet):
|
||||
""" Add ?geometry=1 to get geometries, add ?space=<id> to filter by space. """
|
||||
queryset = Ramp.objects.all()
|
||||
|
||||
|
||||
class ObstacleViewSet(MapdataViewSet):
|
||||
""" Add ?geometry=1 to get geometries, add ?space=<id> to filter by space. """
|
||||
queryset = Obstacle.objects.all()
|
||||
|
|
34
src/c3nav/mapdata/migrations/0048_ramp.py
Normal file
34
src/c3nav/mapdata/migrations/0048_ramp.py
Normal file
|
@ -0,0 +1,34 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.6 on 2017-11-17 19:24
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import c3nav.mapdata.fields
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('mapdata', '0047_remove_mapupdate_changed_geometries'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Ramp',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('minx', models.DecimalField(db_index=True, decimal_places=2, max_digits=6, verbose_name='min x coordinate')),
|
||||
('miny', models.DecimalField(db_index=True, decimal_places=2, max_digits=6, verbose_name='min y coordinate')),
|
||||
('maxx', models.DecimalField(db_index=True, decimal_places=2, max_digits=6, verbose_name='max x coordinate')),
|
||||
('maxy', models.DecimalField(db_index=True, decimal_places=2, max_digits=6, verbose_name='max y coordinate')),
|
||||
('geometry', c3nav.mapdata.fields.GeometryField(default=None, geomtype='polygon')),
|
||||
('space', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ramps', to='mapdata.Space', verbose_name='space')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Ramp',
|
||||
'verbose_name_plural': 'Ramps',
|
||||
'default_related_name': 'ramps',
|
||||
},
|
||||
),
|
||||
]
|
|
@ -112,6 +112,18 @@ class Stair(SpaceGeometryMixin, models.Model):
|
|||
default_related_name = 'stairs'
|
||||
|
||||
|
||||
class Ramp(SpaceGeometryMixin, models.Model):
|
||||
"""
|
||||
A ramp
|
||||
"""
|
||||
geometry = GeometryField('polygon')
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('Ramp')
|
||||
verbose_name_plural = _('Ramps')
|
||||
default_related_name = 'ramps'
|
||||
|
||||
|
||||
class Obstacle(SpaceGeometryMixin, models.Model):
|
||||
"""
|
||||
An obstacle
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue