Exemplo n.º 1
0
Arquivo: views.py Projeto: zerc/nimply
class FilesWrapper(object):
    def __init__(self, db, *args, **kwargs):
        self.storage = GridFS(db)
        self.comments_wrapper = CommentsWrapper(db)

    def list(self):
        """ Returns are list of files.
        """
        uuids = {f.uuid: {'name': f.filename, 'uuid': f.uuid,
                          'comments': 0, 'version': f.version}
                 for f in self.storage.find()}

        comments = self.comments_wrapper.get_grouped_counts(uuids.keys())

        def _up(uuid, count):
            uuids[uuid]['comments'] = count
            return uuids[uuid]

        return [_up(*c) for c in comments]

    def get(self, uuid, version=0):
        """ Return selected file or None if they does not exists.
        """
        try:
            return self.storage.get_version(uuid=uuid, version=version)
        except NoFile:
            return None

    def add(self, file):
        """ Save file into storage. Give him uuid.
        """
        uuid = unicode(uuid4())
        self.storage.put(file, filename=file.filename,  uuid=uuid, version=0)
        return uuid
Exemplo n.º 2
0
Arquivo: views.py Projeto: zerc/nimply
 def __init__(self, db, *args, **kwargs):
     self.storage = GridFS(db)
     self.comments_wrapper = CommentsWrapper(db)