Merge branch 'reflow'
[wolnelektury.git] / apps / catalogue / management / commands / checkintegrity.py
diff --git a/apps/catalogue/management/commands/checkintegrity.py b/apps/catalogue/management/commands/checkintegrity.py
deleted file mode 100644 (file)
index 6ae2b9a..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-# -*- coding: utf-8 -*-
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
-# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
-#
-from optparse import make_option
-from django.core.management.base import BaseCommand
-
-from catalogue.models import Book
-
-
-class Command(BaseCommand):
-    option_list = BaseCommand.option_list + (
-        make_option('-q', '--quiet', action='store_false', dest='verbose', default=True,
-            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 = 'Checks integrity of catalogue data.'
-
-    def handle(self, **options):
-        from django.db import transaction
-
-        verbose = options['verbose']
-
-        with transaction.commit_on_success():
-            for book in Book.objects.all().iterator():
-                try:
-                    info = book.wldocument().book_info
-                except:
-                    if verbose:
-                        print "ERROR! Bad XML for book:", book.slug
-                        print "To resolve: republish."
-                        print
-                else:
-                    should_be = [p.slug for p in info.parts]
-                    is_now = [p.slug for p in book.children.all().order_by('parent_number')]
-                    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 "To resolve: republish parent book."
-                            print
-
-                # Check for ancestry.
-                parents = []
-                parent = book.parent
-                while parent:
-                    parents.append(parent)
-                    parent = parent.parent
-                ancestors = list(book.ancestor.all())
-                if set(ancestors) != set(parents):
-                    if options['verbose']:
-                        print "Wrong ancestry for book:", book
-                        print "Is:       ", ", ".join(ancestors)
-                        print "Should be:", ", ".join(parents)
-                    if not options['dry_run']:
-                        book.repopulate_ancestors()
-                        if options['verbose']:
-                            print "Fixed."
-                    if options['verbose']:
-                        print
-
-                # TODO: check metadata tags, reset counters