def loaddb_sessions(filename):
    """ Populates the database with sessions and session-related relationships from a yml file. Requires loaddb_games and loaddb_users """
    sessions = yaml.safe_load(open(filename))

    # premier tour de boucle, creation des sessions et des timeslots
    dico_timeslots = dict()  # k=session_yml_id, v=timeslot_object
    dico_sessions = dict()  # k=session_yml_id, v=session_object
    for id, s in sessions.items():
        session_object = Session(nb_players_required=s["nb_players_required"],
                                 notifactions_sent=s["notifactions_sent"],
                                 confirmed=s["confirmed"],
                                 timeout=s["timeout"],
                                 archived=s["archived"])
        db.session.add(session_object)
        dico_sessions[id] = session_object

        timeslot = s["timeslot"]
        timeslot_object = TimeSlot(beginning=timeslot["beginning"],
                                   end=timeslot["end"],
                                   day=timeslot["day"])
        db.session.add(timeslot_object)
        dico_timeslots[id] = timeslot_object
    db.session.commit()

    # deuxieme tour de boucle, ajout des relations SessionXTimeslot, SessionXGame et SessionXUser
    for id, s in sessions.items():
        session_object = dico_sessions[id]
        session_object.timeslot_id = dico_timeslots[id].id
        load_relationship(s, 'session_id', session_object.id, 'games', Use,
                          Game.from_title, 'game_id', ['expected_time'],
                          'title')
        load_relationship(s, 'session_id', session_object.id, 'players', Play,
                          User.from_username, 'user_id', ['confirmed', 'won'],
                          'username')
    db.session.commit()