class BookSource(models.Model):
book = models.ForeignKey('catalogue.Book', models.CASCADE)
source = models.ForeignKey(Source, models.CASCADE)
+ ordering = models.IntegerField(default=1)
page_start = models.IntegerField(null=True, blank=True)
page_end = models.IntegerField(null=True, blank=True)
class Meta:
- ordering = ('page_start',)
+ ordering = ('ordering', 'page_start',)
def __str__(self):
return f'{self.source} -> {self.book}'
def get_absolute_url(self):
- return reverse('source_book_prepare', args=[self.pk])
+ return reverse('source_book_prepare', args=[self.book.pk])
def get_view_files(self):
# TODO: won't work for PDFs.
def get_document(self):
return self.book.document_books.first()
-
- def prepare_document(self, user=None):
+
+ @classmethod
+ def prepare_document(cls, book, user=None):
DBook = apps.get_model('documents', 'Book')
- texts = document.build_document_texts(self)
+ texts = document.build_document_texts(book)
- dbook = self.get_document()
+ dbook = book.document_books.first()
if dbook is None:
dbook = DBook.create(
user, texts[0],
- title=self.book.title,
+ catalogue_book=book,
+ title=book.title,
slug=str(uuid.uuid4()),
)
else: