Puste implementacje DocumentModel.merge i DocumentModel.update.
[redakcja.git] / apps / api / handlers / library_handlers.py
index ae61389..5696cc9 100644 (file)
@@ -268,28 +268,32 @@ class DocumentTextHandler(BaseHandler):
                     f.write(json.dumps(includes))
                     f.close()
 
+                    lib._fileadd(resolve('parts'))
+
                     # update the parts cache
                     PartCache.update_cache(docid, current.owner,\
                         stored_includes, includes)
 
                 # now that the parts are ok, write xml
                 f = lib._fileopen(resolve('xml'), 'w+')
-                f.write(data)
+                f.write(data.encode('utf-8'))
                 f.close()
-                
+
+            ndoc = None
             ndoc = current.invoke_and_commit(\
                 xml_update_action, lambda d: (msg, current.owner) )
 
             try:
                 # return the new revision number
-                return {
+                return response.SuccessAllOk().django_response({
                     "document": ndoc.id,
                     "subview": "xml",
                     "previous_revision": current.revision,
-                    "updated_revision": ndoc.revision
-                }
+                    "updated_revision": ndoc.revision,
+                    "url": reverse("doctext_view", args=[ndoc.id, ndoc.revision])
+                })
             except Exception, e:
-                lib._rollback()
+                if ndoc: lib._rollback()
                 raise e        
         except RevisionNotFound, e:
             return response.EntityNotFound().django_response(e)
@@ -436,4 +440,4 @@ class MergeHandler(BaseHandler):
             "parent_user_resivion": udoc.revision,
             "parent_revision": doc.revision,
             "revision": udoc.revision,
-        })
\ No newline at end of file
+        })