def duplicated(path): qry = Folder.query(Folder.path == path) result = qry.fetch() if len(result) > 0: return True else: return False
def listFolders(path, userkey): folders = [] if (path != userkey): # if root folders.append({'name': '..', 'cdate': ''}) # Get list of folders from datastore qry = Folder.query(Folder.user_id == userkey) results = qry.fetch() for result in results: rpath = result.path start = rpath.find(path) if start != -1: sub = rpath[start + len(path) + 1:] if sub != '': if sub.find('/') == -1: folders.append({'name': sub, 'cdate': result.cdate}) return folders
def get(self): root = self.session.get('root') path = self.request.get('path') full_path = root + '/' + path # Delete folder from datastore. Query condition means it contain sub directory. qry = Folder.query(Folder.path >= full_path) results = qry.fetch() # Query result is not correct, because of condition for querying. So fix them. for result in results: result_path = result.path if result_path.find(path) is not -1: result.key.delete() # After deleting, make directory for redirecting. if path.find('/') is not -1: red_path = path[:path.rindex('/')] else: red_path = '' self.redirect('/?path=' + red_path)