add LevelConnector
This commit is contained in:
parent
8164cc1a40
commit
b309b6f6cd
10 changed files with 164 additions and 28 deletions
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue