Poprawienie bledu w RAL->Revision->parent()
[redakcja.git] / apps / api / handlers / library_handlers.py
old mode 100644 (file)
new mode 100755 (executable)
index a328582..8f8f2bc
@@ -207,8 +207,8 @@ class DiffHandler(BaseHandler):
     @hglibrary
     def read(self, request, source_revision, target_revision, lib):
         '''Return diff between source_revision and target_revision)'''
     @hglibrary
     def read(self, request, source_revision, target_revision, lib):
         '''Return diff between source_revision and target_revision)'''
-        source_document = lib.document_for_rev(source_revision)
-        target_document = lib.document_for_rev(target_revision)
+        source_document = lib.document_for_revision(source_revision)
+        target_document = lib.document_for_revision(target_revision)
         print source_document,
         print target_document
         diff = difflib.unified_diff(
         print source_document,
         print target_document
         diff = difflib.unified_diff(
@@ -231,7 +231,7 @@ class DocumentHandler(BaseHandler):
     @hglibrary
     def read(self, request, form, docid, lib):
         """Read document's meta data"""       
     @hglibrary
     def read(self, request, form, docid, lib):
         """Read document's meta data"""       
-        log.info(u"User '%s' wants to %s(%s) as %s" % \
+        log.info(u"User '%s' wants to edit %s(%s) as %s" % \
             (request.user.username, docid, form.cleaned_data['revision'], form.cleaned_data['user']) )
 
         user = form.cleaned_data['user'] or request.user.username
             (request.user.username, docid, form.cleaned_data['revision'], form.cleaned_data['user']) )
 
         user = form.cleaned_data['user'] or request.user.username
@@ -261,7 +261,7 @@ class DocumentHandler(BaseHandler):
                 elif is_prq(user):
                     prq = prq_for_user(user)
                     # commiter's document
                 elif is_prq(user):
                     prq = prq_for_user(user)
                     # commiter's document
-                    prq_doc = lib.document_for_rev(prq.source_revision)
+                    prq_doc = lib.document_for_revision(prq.source_revision)
                     doc = prq_doc.take(user)
                 else:
                     return response.EntityNotFound().django_response({
                     doc = prq_doc.take(user)
                 else:
                     return response.EntityNotFound().django_response({
@@ -310,7 +310,7 @@ class DocumentHTMLHandler(BaseHandler):
         try:
             revision = form.cleaned_data['revision']
             user = form.cleaned_data['user'] or request.user.username
         try:
             revision = form.cleaned_data['revision']
             user = form.cleaned_data['user'] or request.user.username
-            document = lib.document_for_rev(revision)
+            document = lib.document_for_revision(revision)
 
             if document.id != docid:
                 return response.BadRequest().django_response({
 
             if document.id != docid:
                 return response.BadRequest().django_response({
@@ -338,10 +338,10 @@ class DocumentHTMLHandler(BaseHandler):
                 'reason': 'not-found', 'message': e.message})
         except librarian.ValidationError, e:
             return response.InternalError().django_response({
                 'reason': 'not-found', 'message': e.message})
         except librarian.ValidationError, e:
             return response.InternalError().django_response({
-                'reason': 'xml-non-valid', 'message': e.message })
+                'reason': 'xml-non-valid', 'message': e.message or u''})
         except librarian.ParseError, e:
             return response.InternalError().django_response({
         except librarian.ParseError, e:
             return response.InternalError().django_response({
-                'reason': 'xml-parse-error', 'message': e.message })
+                'reason': 'xml-parse-error', 'message': e.message or u'' })
 
 #
 # Image Gallery
 
 #
 # Image Gallery
@@ -388,7 +388,7 @@ class DocumentGalleryHandler(BaseHandler):
                     
                 gallery['pages'].append( quote(url.encode('utf-8')) )
 
                     
                 gallery['pages'].append( quote(url.encode('utf-8')) )
 
-#            gallery['pages'].sort()
+            gallery['pages'].sort()
             galleries.append(gallery)
 
         return galleries
             galleries.append(gallery)
 
         return galleries
@@ -412,7 +412,7 @@ class DocumentGalleryHandler(BaseHandler):
 #            if revision == 'latest':
 #                doc = lib.document(docid)
 #            else:
 #            if revision == 'latest':
 #                doc = lib.document(docid)
 #            else:
-#                doc = lib.document_for_rev(revision)
+#                doc = lib.document_for_revision(revision)
 #
 #
 #            if document.id != docid:
 #
 #
 #            if document.id != docid:
@@ -437,7 +437,7 @@ class DocumentGalleryHandler(BaseHandler):
 #                msg = u"$AUTO$ Dublin core update."
 #
 #            current = lib.document(docid, request.user.username)
 #                msg = u"$AUTO$ Dublin core update."
 #
 #            current = lib.document(docid, request.user.username)
-#            orig = lib.document_for_rev(revision)
+#            orig = lib.document_for_revision(revision)
 #
 #            if current != orig:
 #                return response.EntityConflict().django_response({
 #
 #            if current != orig:
 #                return response.EntityConflict().django_response({
@@ -482,7 +482,7 @@ class MergeHandler(BaseHandler):
         doc = lib.document(docid)
 
         # fetch the base document
         doc = lib.document(docid)
 
         # fetch the base document
-        user_doc = lib.document_for_rev(revision)
+        user_doc = lib.document_for_revision(revision)
         base_doc = user_doc.latest()
 
         if base_doc != user_doc:
         base_doc = user_doc.latest()
 
         if base_doc != user_doc:
@@ -512,9 +512,11 @@ class MergeHandler(BaseHandler):
                     "message": "You must first update your branch to the latest version."
                 })
 
                     "message": "You must first update your branch to the latest version."
                 })
 
-            if base_doc.parentof(doc) or base_doc.has_parent_from(doc):
+            anwser, info = base_doc.would_share()
+                
+            if not anwser:
                 return response.SuccessAllOk().django_response({
                 return response.SuccessAllOk().django_response({
-                    "result": "no-op"
+                    "result": "no-op", "message": info
                 })
 
             # check for unresolved conflicts            
                 })
 
             # check for unresolved conflicts