예제 #1
0
def duplicated(path):
    qry = Folder.query(Folder.path == path)
    result = qry.fetch()
    if len(result) > 0:
        return True
    else:
        return False
예제 #2
0
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
예제 #3
0
    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)