X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/357027375ff8867f42ca34bcbfb5a78b5b185fc3..0def7bcb965d56cfa88c7e5a1676905b02f84ab6:/src/catalogue/management/commands/checkintegrity.py

diff --git a/src/catalogue/management/commands/checkintegrity.py b/src/catalogue/management/commands/checkintegrity.py
index 6ae2b9a2f..6f090bb8c 100644
--- a/src/catalogue/management/commands/checkintegrity.py
+++ b/src/catalogue/management/commands/checkintegrity.py
@@ -6,14 +6,15 @@ from optparse import make_option
 from django.core.management.base import BaseCommand
 
 from catalogue.models import Book
+from librarian import ParseError
 
 
 class Command(BaseCommand):
     option_list = BaseCommand.option_list + (
         make_option('-q', '--quiet', action='store_false', dest='verbose', default=True,
-            help='Suppress output'),
+                    help='Suppress output'),
         make_option('-d', '--dry-run', action='store_true', dest='dry_run', default=False,
-            help="Just check for problems, don't fix them"),
+                    help="Just check for problems, don't fix them"),
     )
     help = 'Checks integrity of catalogue data.'
 
@@ -22,11 +23,11 @@ class Command(BaseCommand):
 
         verbose = options['verbose']
 
-        with transaction.commit_on_success():
+        with transaction.atomic():
             for book in Book.objects.all().iterator():
                 try:
                     info = book.wldocument().book_info
-                except:
+                except ParseError:
                     if verbose:
                         print "ERROR! Bad XML for book:", book.slug
                         print "To resolve: republish."
@@ -37,8 +38,10 @@ class Command(BaseCommand):
                     if should_be != is_now:
                         if verbose:
                             print "ERROR! Wrong children for book:", book.slug
-                            print "Is:       ", is_now
-                            print "Should be:", should_be
+                            # print "Is:       ", is_now
+                            # print "Should be:", should_be
+                            from difflib import ndiff
+                            print '\n'.join(ndiff(is_now, should_be))
                             print "To resolve: republish parent book."
                             print