- 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, name, document, author, comment, parent):
- self.vstorage.save_text(document.name, document.text, author, comment, parent)
-
- def delete(name, author, comment):
+ 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 get_or_404(self, *args, **kwargs):
+ try:
+ return self.get(*args, **kwargs)
+ except DocumentNotFound:
+ raise Http404
+
+ def put(self, document, author, comment, parent):
+ self.vstorage.save_text(
+ title=document.name,
+ text=document.text,
+ author=author,
+ comment=comment,
+ parent=parent)
+
+ return document
+
+ def create_document(self, id, text, title=None):
+ if title is None:
+ title = id.title()
+
+ if text is None:
+ text = u''
+
+ document = Document(self, name=id, text=text, title=title)
+ return self.put(document, u"<wiki>", u"Document created.", None)
+
+ def delete(self, name, author, comment):