book_xml = forms.CharField(required=False)
gallery_url = forms.CharField(required=False)
days = forms.IntegerField(required=False)
+ hidden = forms.BooleanField(required=False)
def clean(self):
from django.core.files.base import ContentFile
def save(self, **kwargs):
return Book.from_xml_file(self.cleaned_data['book_xml_file'], overwrite=True,
remote_gallery_url=self.cleaned_data['gallery_url'],
- days=self.cleaned_data['days'], **kwargs)
+ days=self.cleaned_data['days'],
+ findable=not self.cleaned_data['hidden'],
+ **kwargs)
FORMATS = [(f, f.upper()) for f in Book.ebook_formats]
if self._book is not None:
return self._book
try:
- self._book = catalogue.models.Book.objects.get(id=self.book_id)
+ self._book = catalogue.models.Book.objects.get(id=self.book_id, findable=True)
except catalogue.models.Book.DoesNotExist:
self._book = None
return self._book
def search_by_author(self, words):
from catalogue.models import Book
- books = Book.objects.filter(parent=None).order_by('-popularity__count')
+ books = Book.objects.filter(parent=None, findable=True).order_by('-popularity__count')
for word in words:
books = books.filter(cached_author__iregex='\m%s\M' % word).select_related('popularity__count')
return [SearchResult.from_book(book, how_found='search_by_author', query_terms=words) for book in books[:30]]
idx += 1
except IOError as e:
- book = catalogue.models.Book.objects.filter(id=book_id)
+ book = catalogue.models.Book.objects.filter(id=book_id, findable=True)
if not book:
log.error("Book does not exist for book id = %d" % book_id)
elif not book.get().children.exists():