X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/357027375ff8867f42ca34bcbfb5a78b5b185fc3..b0b9c1f0f9f4cc0f5c4d00d913735ab6a81bf214:/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