Exemple #1
0
def create_practice_sessions(collection_folders, collection_exercises):
    """
    Create a randomized practice session for all folders and corresponding exercises present in the DB.

    :param collection_folders:      The MongoDB 'folders' collection reference.
    :param collection_exercises:    The MongoDB 'exercises' collection reference.
    :return:
    """

    all_folders = Folder.get_all_folders(collection_folders)

    for folder in all_folders:
        folder_exercises = folder['exercises']

        for each_exercise_id in folder_exercises:
            # print "Adding a practice session to %s" % each_exercise_id
            today = datetime.utcnow()

            for i in range(10, -1, -1):
                practice_session_date = today - timedelta(i)
                updated_exercise = Exercise.add_practice_session(collection_exercises,
                                                                 each_exercise_id,
                                                                 practice_session_date)
                ex_latest_session = updated_exercise['history'][-1]
                folder = Folder.update_folder_with_practice_session(collection_folders,
                                                                    folder,
                                                                    ex_latest_session,
                                                                    updated_exercise['lastPracticeTime'])