editor: transaction rollback fix
[redakcja.git] / apps / wiki / views.py
index 2bb168f..c75bf3a 100644 (file)
@@ -16,7 +16,7 @@ from django.views.decorators.http import require_POST, require_GET
 from django.shortcuts import get_object_or_404, render
 from django.utils import simplejson
 
-from catalogue.models import Book, Chunk
+from catalogue.models import Book, Chunk, Template
 import nice_diff
 from wiki import forms
 from wiki.helpers import (JSONResponse, JSONFormInvalid, JSONServerError,
@@ -87,8 +87,13 @@ def editor(request, slug, chunk=None, template_name='wiki/bootstrap.html'):
             'document_id': chunk.id,
             'title': chunk.book.title,
             'history': get_history(chunk),
-            'version': chunk.revision()
+            'version': chunk.revision(),
+            'stage': chunk.stage.name if chunk.stage else None,
+            'assignment': chunk.user.username if chunk.user else None
         }),
+        'serialized_templates': simplejson.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")
@@ -164,8 +169,9 @@ def text(request, chunk_id):
             revision = doc.revision()
             return JSONResponse({
                 'text': doc.materialize() if parent_revision != revision else None,
-                'meta': {},
                 'version': revision,
+                'stage': doc.stage.name if doc.stage else None,
+                'assignment': doc.user.username if doc.user else None
             })
         else:
             return JSONFormInvalid(form)
@@ -213,9 +219,8 @@ def revert(request, chunk_id):
         doc.at_revision(revision).revert(author=author, description=comment)
 
         return JSONResponse({
-            'text': doc.materialize() if before != doc.revision() else None,
-            'meta': {},
-            'revision': doc.revision(),
+            'document': doc.materialize() if before != doc.revision() else None,
+            'version': doc.revision(),
         })
     else:
         return JSONFormInvalid(form)