- if revision is None:
- text = self.vstorage.page_text(name)
- else:
- text = self.vstorage.revision_text(name, revision)
- return Document(self, name=name, text=text)
-
- def put(self, document, author, comment, parent):
- self.vstorage.save_text(document.name, document.text, author, comment, parent)
+ text, rev = self.vstorage.page_text(name, revision)
+ return Document(self, name=name, text=text, revision=rev)
+
+ def get_by_tag(self, name, tag):
+ text, rev = self.vstorage.page_text_by_tag(name, tag)
+ return Document(self, name=name, text=text, revision=rev)
+
+ def revert(self, name, revision):
+ text, rev = self.vstorage.revert(name, revision)
+ return Document(self, name=name, text=text, revision=rev)
+
+ def get_or_404(self, *args, **kwargs):
+ try:
+ return self.get(*args, **kwargs)
+ except DocumentNotFound:
+ raise Http404
+
+ def put(self, document, author, comment, parent=None):
+ self.vstorage.save_text(
+ title=document.name,
+ text=document.text,
+ author=author,
+ comment=comment,
+ parent=parent)
+
+ return document
+
+ def create_document(self, text, name):
+ title = u', '.join(p.title for p in split_name(name))
+
+ if text is None:
+ text = u''
+
+ document = Document(self, name=name, text=text, title=title)
+ return self.put(document, u"<wiki>", u"Document created.")