+@never_cache
+def editor(request, pk, template_name='wiki/bootstrap.html'):
+ doc = get_object_or_404(Document, pk=pk, deleted=False)
+ if not doc.can_edit(request.user):
+ return HttpResponseForbidden("Not authorized.")
+
+ save_form = forms.DocumentTextSaveForm(user=request.user, prefix="textsave")
+ text = doc.materialize()
+ revision = doc.revision
+ history = get_history(doc)
+ return render(request, template_name, {
+ 'serialized_document_data': json.dumps({
+ 'document': text,
+ 'document_id': doc.pk,
+ 'title': doc.meta().get('title', ''),
+ 'history': history,
+ 'version': len(history),
+ 'revision': revision.pk,
+ 'stage': doc.stage,
+ 'stage_name': doc.stage_name(),
+ 'assignment': doc.assigned_to.username if doc.assigned_to else None,
+ }),
+ 'serialized_templates': json.dumps([
+ {'id': t.id, 'name': t.name, 'content': t.content} for t in Template.objects.filter(is_partial=True)
+ ]),
+ 'forms': {
+ "text_save": save_form,
+ "text_revert": forms.DocumentTextRevertForm(prefix="textrevert"),
+ "text_publish": forms.DocumentTextPublishForm(prefix="textpublish"),
+ },
+ 'pk': doc.pk,
+ })
+
+
+@never_cache
+@decorator_from_middleware(GZipMiddleware)
+def text(request, doc_id):
+ doc = get_object_or_404(Document, pk=doc_id, deleted=False)