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
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()