Example #1
0
def _get_locations_by_height():
    """
    Erzeuge ein Tupel mit den bebuchten und unbebuchten Plätzen.
    
    Die Elemente des Tupels sind Dictionaries, deren Schlüssel die Platzhöhe
    und deren Keys Listen mit Informationen über die Plätze sind.
    
    Beispiel:
    ({1000: [{'name': '182503', 'preference': 6}],
      2000: [{'name': '032003', 'preference': 6},
             {'name': '042503', 'preference': 6},
             {'name': '043603', 'preference': 6}]
      },
      {1050: [{'name': '011503', 'preference': 1},
              {'name': '053603', 'preference': 6}]
    })
    
    Plätze mit einer Präferenz < 1 werden nicht berücksichtigt.
    """
    
    kerneladapter = Kerneladapter()
    booked, unbooked = {}, {}
    for location in kerneladapter.get_location_list():
        info = kerneladapter.get_location(location)
        if int(info['preference']) < 1:
            continue
        if info['reserved_for'] or info['allocated_by']:
            tmp = booked
        else:
            tmp = unbooked
        tmp.setdefault(info['height'], []).append({'name': info['name'], 'preference': info['preference']})
    return booked, unbooked