2 from vstorage import DocumentNotFound
3 from wiki import settings
6 class DocumentStorage(object):
7 def __init__(self, path):
8 self.vstorage = vstorage.VersionedStorage(path)
10 def get(self, name, revision=None):
12 text = self.vstorage.page_text(name)
14 text = self.vstorage.revision_text(name, revision)
15 return Document(self, name=name, text=text)
17 def put(self, document, author, comment, parent):
18 self.vstorage.save_text(document.name, document.text, author, comment, parent)
20 def delete(self, name, author, comment):
21 self.vstorage.delete_page(name, author, comment)
24 return list(self.vstorage.all_pages())
26 def _info(self, name):
27 return self.vstorage.page_meta(name)
30 class Document(object):
31 def __init__(self, storage, **kwargs):
32 self.storage = storage
33 for attr, value in kwargs.iteritems():
34 setattr(self, attr, value)
38 return self.storage._info(self.name)[0]
39 except DocumentNotFound:
43 storage = DocumentStorage(settings.REPOSITORY_PATH)