X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/2dd9e6498b5e0bd5c0bd882db02be9768c34c019..18948ce1d84878c6307f2d0b732a9dbd03778cfb:/src/sources/models.py?ds=sidebyside diff --git a/src/sources/models.py b/src/sources/models.py index efa086a5..ed2775ef 100644 --- a/src/sources/models.py +++ b/src/sources/models.py @@ -119,17 +119,18 @@ class Source(models.Model): 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. @@ -151,16 +152,18 @@ class BookSource(models.Model): 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: