X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/50f38b58c45dc9b68da614b3e26d45951088ec0c..80d789aa009be1449b83b04b5838ebcc15368d68:/apps/search/management/commands/reindex.py?ds=sidebyside diff --git a/apps/search/management/commands/reindex.py b/apps/search/management/commands/reindex.py index 6d4b4fd56..3b6517f2e 100755 --- a/apps/search/management/commands/reindex.py +++ b/apps/search/management/commands/reindex.py @@ -1,17 +1,36 @@ from django.core.management.base import BaseCommand +from optparse import make_option class Command(BaseCommand): help = 'Reindex everything.' args = '' - + + option_list = BaseCommand.option_list + ( + make_option('-n', '--book-id', action='store_true', dest='book_id', default=False, + help='book id instead of slugs'), + make_option('-t', '--just-tags', action='store_true', dest='just_tags', default=False, + help='just reindex tags'), + ) def handle(self, *args, **opts): from catalogue.models import Book import search idx = search.ReusableIndex() idx.open() - for b in Book.objects.all(): - print b.title - idx.index_book(b, None) + + if not opts['just_tags']: + if args: + books = [] + for a in args: + if opts['book_id']: + books += Book.objects.filter(id=int(a)).all() + else: + books += Book.objects.filter(slug=a).all() + else: + books = Book.objects.all() + + for b in books: + print b.title + idx.index_book(b) print 'Reindexing tags.' idx.index_tags() - idx.close() \ No newline at end of file + idx.close()