| 262 | | if name and name == route.get('note'): |
| 263 | | print 'removing name when it is the same as note' |
| 264 | | route.remove('name') |
| 265 | | rcn_refs=[] |
| 266 | | memberslist = [] |
| 267 | | continuous = True |
| | 268 | if name: |
| | 269 | if reNumberDashNumber.match(name): |
| | 270 | print 'removing name when it is of the form ##-##' |
| | 271 | newRelation.remove('name') |
| | 272 | relationChanged = True |
| | 273 | else: |
| | 274 | name = '' |
| | 275 | ref = route.get('ref') |
| | 276 | if ref: |
| | 277 | if reNumberDashNumber.match(ref): |
| | 278 | print 'removing ref when it is of the form ##-##' |
| | 279 | newRelation.remove('ref') |
| | 280 | relationChanged = True |
| | 281 | else: |
| | 282 | ref = '' |
| | 283 | if relationChanged: |
| | 284 | commandsList.append(Command.ChangeCommand(route, newRelation)) |
| | 285 | |
| | 286 | Main.main.undoRedo.add(Command.SequenceCommand("Removing name and/or ref " + name + '/' + ref, commandsList)) |
| | 287 | commandsList = [] |
| | 288 | |
| | 289 | rcn_refs = []; route_relation_names = []; memberslist = [] |
| | 290 | endnodes = []; prev_endnodes = [] |
| | 291 | continuous_forward = True; continuous_backward = True |
| | 292 | prev_role = None; prev_endnodes_before_forward = None; last_endnodes_before_backward = None |
| | 306 | for referrer in endnode.getReferrers(): |
| | 307 | if referrer.getType() is dummy_relation.getType(): |
| | 308 | if referrer.get('type')=='network' and referrer.get('network')=='rcn': |
| | 309 | relname=referrer.get('name') |
| | 310 | if relname: |
| | 311 | route_relation_names.append(relname) |
| | 312 | |
| | 313 | elif referrer.get('type')=='collection': |
| | 314 | route_relation_names.append('Node not assigned to network yet') |
| | 315 | # checking for continuity on ways |
| | 316 | if notfoundyet: |
| | 317 | if role: |
| | 318 | if prev_role: |
| | 319 | if role=='forward' and prev_role=='forward' and endnode in prev_endnodes: |
| | 320 | notfoundyet = False |
| | 321 | elif role=='forward' and prev_role=='backward' and endnode in last_endnodes_before_backward: |
| | 322 | notfoundyet = False |
| | 323 | elif role=='backward' and prev_role=='forward' and endnode in prev_endnodes: |
| | 324 | notfoundyet = False |
| | 325 | elif role=='backward' and prev_role=='backward' and endnode in prev_endnodes: |
| | 326 | notfoundyet = False |
| | 327 | else: |
| | 328 | if role=='forward' and endnode in prev_endnodes: |
| | 329 | notfoundyet = False |
| | 330 | elif role=='backward' and endnode in prev_endnodes: |
| | 331 | notfoundyet = False |
| | 332 | else: |
| | 333 | if prev_role: |
| | 334 | if prev_role=='forward' and endnode in prev_endnodes: |
| | 335 | notfoundyet = False |
| | 336 | elif prev_role=='backward' and endnode in last_endnodes_before_backward: |
| | 337 | notfoundyet = False |
| | 338 | else: |
| | 339 | if endnode in prev_endnodes: |
| | 340 | notfoundyet = False |
| | 341 | # Analysis of continuity of ways |
| | 342 | if prev_endnodes and notfoundyet: |
| | 343 | if role: |
| | 344 | if role == 'forward': |
| | 345 | continuous_forward = False |
| | 346 | elif role == 'backward': |
| | 347 | continuous_backward = False |
| | 348 | else: |
| | 349 | continuous_forward = False |
| | 350 | continuous_backward = False |
| | 351 | if role=='forward': |
| | 352 | if not(prev_endnodes_before_forward): |
| | 353 | prev_endnodes_before_forward = prev_endnodes |
| | 354 | elif prev_role=='forward' and role=='backward': |
| | 355 | if not(last_endnodes_before_backward): |
| | 356 | last_endnodes_before_backward = prev_endnodes |
| | 357 | elif not(role) and prev_role=='backward': |
| | 358 | prev_endnodes_before_forward = None |
| | 359 | prev_role = role |
| | 360 | prev_endnodes = endnodes |
| | 361 | # Drawing conclusions about continuity of ways |
| | 362 | if continuous_forward: |
| | 363 | print 'route is continous in the forward direction' |
| | 364 | else: |
| | 365 | print 'route is NOT CONTINUOUS in the forward direction' |
| | 366 | if continuous_backward: |
| | 367 | print 'route is continous in the backward direction' |
| | 368 | else: |
| | 369 | print 'route is NOT CONTINUOUS in the backward direction' |
| | 370 | |
| | 371 | # Drawing conclusions about rcn_refs |
| 284 | | route.addMember( route.getMembersCount(), member) |
| 285 | | route.removeMember (0) |
| 286 | | route.put('note', str(rcn_refs[0]).zfill(2) + '-' + str(rcn_refs[1]).zfill(2)) |
| | 381 | newRelation.addMember( newRelation.getMembersCount(), member) |
| | 382 | newRelation.removeMember (0) |
| | 383 | commandsList.append(Command.ChangeCommand(route, newRelation)) |
| | 384 | Main.main.undoRedo.add(Command.SequenceCommand("Flipping order of members", commandsList)) |
| | 385 | commandsList = [] |
| | 386 | note = route.get('note') |
| | 387 | newNote = str(rcn_refs[0]).zfill(2) + '-' + str(rcn_refs[1]).zfill(2) |
| | 388 | if not(note) or note != newNote: |
| | 389 | if not(note): note = 'nothing' |
| | 390 | newRelation.put('note', newNote) |
| | 391 | relationChanged = True |
| | 392 | commandsList.append(Command.ChangeCommand(route, newRelation)) |
| | 393 | |
| | 394 | Main.main.undoRedo.add(Command.SequenceCommand("Changing note from " + note + ' to ' + newNote, commandsList)) |
| | 395 | commandsList = [] |
| | 396 | |
| | 397 | if len(route_relation_names) > 1 and route_relation_names[0] != route_relation_names[1]: |
| | 398 | print |
| | 399 | print 'This is probably a CONNECTION to another network' |
| | 400 | print route_relation_names |