diff --git a/apps/ocr/manager.py b/apps/ocr/manager.py new file mode 100644 index 0000000000..d12fd9f33d --- /dev/null +++ b/apps/ocr/manager.py @@ -0,0 +1,13 @@ +from django.db import models + +from ocr.exceptions import AlreadyQueued + +class DocumentQueueManager(models.Manager): + def queue_document(self, document, queue_name='default'): + document_queue = self.model.objects.get(name=queue_name) + if document_queue.queuedocument_set.filter(document=document): + raise AlreadyQueued + + document_queue.queuedocument_set.create(document=document, delay=True) + + return document_queue diff --git a/apps/ocr/models.py b/apps/ocr/models.py index 3434a6d4a6..f9567e2b0a 100644 --- a/apps/ocr/models.py +++ b/apps/ocr/models.py @@ -8,19 +8,7 @@ from documents.models import Document from ocr.literals import DOCUMENTQUEUE_STATE_STOPPED, \ DOCUMENTQUEUE_STATE_CHOICES, QUEUEDOCUMENT_STATE_PENDING, \ QUEUEDOCUMENT_STATE_CHOICES -from ocr.exceptions import AlreadyQueued - - -class DocumentQueueManager(models.Manager): - def queue_document(self, document, queue_name='default'): - document_queue = DocumentQueue.objects.get(name=queue_name) - if QueueDocument.objects.filter(document_queue=document_queue, document=document).count(): - raise AlreadyQueued - - queue_document = QueueDocument(document_queue=document_queue, document=document, delay=True) - queue_document.save() - - return document_queue +from ocr.manager import DocumentQueueManager class DocumentQueue(models.Model):