add LevelConnector

This commit is contained in:
Laura Klünder 2016-12-01 12:25:02 +01:00
parent 8164cc1a40
commit b309b6f6cd
10 changed files with 164 additions and 28 deletions

View file

@ -1,6 +1,6 @@
from c3nav.mapdata.models import Level, Package, Source
from c3nav.mapdata.models.collections import Elevator
from c3nav.mapdata.models.geometry import Building, Door, ElevatorLevel, Hole, Obstacle, Outside, Room
from c3nav.mapdata.models.geometry import Building, Door, ElevatorLevel, Hole, LevelConnector, Obstacle, Outside, Room
ordered_models = (Package, Level, Source, Building, Room, Outside, Door, Obstacle, Hole)
ordered_models = (Package, Level, LevelConnector, Source, Building, Room, Outside, Door, Obstacle, Hole)
ordered_models += (Elevator, ElevatorLevel)

View file

@ -8,6 +8,7 @@ from django.conf import settings
from django.core.management import CommandError
from c3nav.mapdata.models import Elevator, Level, Package
from c3nav.mapdata.models.geometry import LevelConnector
from c3nav.mapdata.packageio.const import ordered_models
@ -158,6 +159,11 @@ class ReaderItem:
depends = [self.reader.saved_items[Package][name].obj.pk for name in self.data['depends']]
self.data.pop('depends')
levels = []
if self.model == LevelConnector:
levels = [self.reader.saved_items[Level][name].obj.pk for name in self.data['levels']]
self.data.pop('levels')
# Change name references to the referenced object
for name, model in self.relations.items():
if name in self.data:
@ -174,3 +180,8 @@ class ReaderItem:
self.obj.depends.clear()
for dependency in depends:
self.obj.depends.add(dependency)
if levels:
self.obj.levels.clear()
for level in levels:
self.obj.levels.add(level)