예제 #1
0
def addFolder(params):
    logging.info('addFolder(): Start')

    folder = Folder(parent=genFolderParentKey(
    ))  #Create a datastore entity with parent as the key generated above

    #assign form data to entity properties
    if 'name' in params:
        folder.name = params['name']
    else:
        folder.name = 'Folder'

    if 'icon' in params:
        folder.icon = params['icon']
    else:
        folder.icon = '/images/folder-icon.png'

    if 'color' in params:
        folder.color = params['color']
    else:
        folder.color = 'Default'

    folder.date_c = datetime.datetime.now()
    folder.date_m = datetime.datetime.now()
    folder.n_items = 0  #this value needs to be calculated and populated.

    if 'view' in params:
        folder.view = params['view']
    else:
        folder.view = 'Default'

    if 'parent_folder_key' in params:
        folder.parent_folder = params['parent_folder_key']
        folder.path = params['parent_folder_key'].get(
        ).path + folder.name + '/'  #calculate path from parent folder and save - parent folder path + my name

        #increment parent folder's items count and save. Do it only  if current folder is not root,
        params['parent_folder_key'].get().n_items += 1
        params['parent_folder_key'].get().put()

        #TODO if no parent folder mentioned, set parent as links

    logging.info('Adding Folder - ' + folder.name)

    new_folder_key = folder.put()  #save the folder and capture the key

    return new_folder_key  # return the folder key
예제 #2
0
def addRootFolder():
    logging.info('addRootFolder(): Start')

    folder = Folder(parent=genFolderParentKey(
    ))  #Create a datastore entity with parent as the key generated above

    #No need of param checks as the call is guaranteed to be internal.
    folder.name = "root"
    folder.icon = None
    folder.color = None
    folder.date_c = datetime.datetime.now()
    folder.date_m = datetime.datetime.now()
    folder.n_items = 0  #this value needs to be calculated and populated.
    folder.view = None
    folder.path = '/'
    folder.parent_folder = None

    return folder.put()