def get_ocr_directory(self):
return f'sources/ocr/{self.pk}/'
+ def has_upload_files(self):
+ d = os.path.join(settings.MEDIA_ROOT, self.get_upload_directory())
+ return os.path.isdir(d) and os.listdir(d)
+
def get_view_files(self):
d = self.get_view_directory()
return [
))
]
+ def has_view_files(self):
+ d = os.path.join(settings.MEDIA_ROOT, self.get_view_directory())
+ return os.path.isdir(d) and os.listdir(d)
+
def get_ocr_files(self):
d = os.path.join(settings.MEDIA_ROOT, self.get_ocr_directory())
return [
for name in sorted(os.listdir(d))
]
+ def has_ocr_files(self):
+ d = os.path.join(settings.MEDIA_ROOT, self.get_ocr_directory())
+ return os.path.isdir(d) and os.listdir(d)
+
def process(self):
+ processed_at = now()
updir = os.path.join(
settings.MEDIA_ROOT,
self.get_upload_directory()
self.build_view_directory(updir, d)
with utils.replace_dir(ocr_dir) as d:
self.build_ocr_directory(updir, d)
- self.processed_at = now()
+ self.processed_at = processed_at
self.save(update_fields=['processed_at'])
def build_view_directory(self, srcpath, targetpath):
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: