def update_page_count(self, save=True): handle, filepath = tempfile.mkstemp() # Just need the filepath, close the file description os.close(handle) self.save_to_file(filepath) try: detected_pages = get_page_count(filepath) except UnknownFileFormat: # If converter backend doesn't understand the format, # use 1 as the total page count detected_pages = 1 self.description = ugettext( u'This document\'s file format is not known, the page count has therefore defaulted to 1.' ) self.save() try: os.remove(filepath) except OSError: pass current_pages = self.documentpage_set.order_by('page_number', ) if current_pages.count() > detected_pages: for page in current_pages[detected_pages:]: page.delete() for page_number in range(detected_pages): DocumentPage.objects.get_or_create(document_version=self, page_number=page_number + 1) if save: self.save() return detected_pages
def update_page_count(self, save=True): handle, filepath = tempfile.mkstemp() # Just need the filepath, close the file description os.close(handle) self.save_to_file(filepath) try: detected_pages = get_page_count(filepath) except UnknownFileFormat: # If converter backend doesn't understand the format, # use 1 as the total page count detected_pages = 1 self.description = ugettext(u'This document\'s file format is not known, the page count has therefore defaulted to 1.') self.save() try: os.remove(filepath) except OSError: pass current_pages = DocumentPage.objects.filter(document=self).order_by('page_number',) if current_pages.count() > detected_pages: for page in current_pages[detected_pages:]: page.delete() for page_number in range(detected_pages): DocumentPage.objects.get_or_create( document=self, page_number=page_number + 1) if save: self.save() return detected_pages
def update_page_count(self, save=True): handle, filepath = tempfile.mkstemp() self.save_to_file(filepath) total_pages = get_page_count(filepath) for page_number in range(total_pages): document_page, created = DocumentPage.objects.get_or_create( document=self, page_number=page_number+1) os.close(handle) try: os.remove(filepath) except OSError: pass if save: self.save()
def update_page_count(self, save=True): handle, filepath = tempfile.mkstemp() self.save_to_file(filepath) total_pages = get_page_count(filepath) for page_number in range(total_pages): document_page, created = DocumentPage.objects.get_or_create( document=self, page_number=page_number + 1) os.close(handle) try: os.remove(filepath) except OSError: pass if save: self.save()
def update_page_count(self, save=True): handle, filepath = tempfile.mkstemp() self.save_to_file(filepath) detected_pages = get_page_count(filepath) os.close(handle) try: os.remove(filepath) except OSError: pass current_pages = DocumentPage.objects.filter(document=self).order_by('page_number',) if current_pages.count() > detected_pages: for page in current_pages[detected_pages:]: page.delete() for page_number in range(detected_pages): DocumentPage.objects.get_or_create( document=self, page_number=page_number + 1) if save: self.save() return detected_pages
AVAILABLE_MODELS = getattr(settings, 'DOCUMENTS_METADATA_AVAILABLE_MODELS', default_available_models) # Upload USE_STAGING_DIRECTORY = getattr(settings, 'DOCUMENTS_USE_STAGING_DIRECTORY', False) STAGING_DIRECTORY = getattr(settings, 'DOCUMENTS_STAGING_DIRECTORY', u'/tmp/mayan/staging') DELETE_STAGING_FILE_AFTER_UPLOAD = getattr(settings, 'DOCUMENTS_DELETE_STAGING_FILE_AFTER_UPLOAD', False) STAGING_FILES_PREVIEW_SIZE = getattr(settings, 'DOCUMENTS_STAGING_FILES_PREVIEW_SIZE', '640x480') AUTOMATIC_OCR = getattr(settings, 'DOCUMENTS_AUTOMATIC_OCR', False) ENABLE_SINGLE_DOCUMENT_UPLOAD = getattr(settings, 'DOCUMENTS_ENABLE_SINGLE_DOCUMENT_UPLOAD', True) UNCOMPRESS_COMPRESSED_LOCAL_FILES = getattr(settings, 'DOCUMENTS_UNCOMPRESS_COMPRESSED_LOCAL_FILES', True) UNCOMPRESS_COMPRESSED_STAGING_FILES = getattr(settings, 'DOCUMENTS_UNCOMPRESS_COMPRESSED_STAGING_FILES', True) # Saving CHECKSUM_FUNCTION = getattr(settings, 'DOCUMENTS_CHECKSUM_FUNCTION', lambda x: hashlib.sha256(x).hexdigest()) UUID_FUNCTION = getattr(settings, 'DOCUMENTS_UUID_FUNCTION', lambda:unicode(uuid.uuid4())) PAGE_COUNT_FUNCTION = getattr(settings, 'DOCUMENTS_PAGE_COUNT_FUNCTION', lambda x: get_page_count(x.save_to_file(tempfile.mkstemp()[1]))) # Storage STORAGE_BACKEND = getattr(settings, 'DOCUMENTS_STORAGE_BACKEND', FileBasedStorage) # Usage PREVIEW_SIZE = getattr(settings, 'DOCUMENTS_PREVIEW_SIZE', '640x480') MULTIPAGE_PREVIEW_SIZE = getattr(settings, 'DOCUMENTS_MULTIPAGE_PREVIEW_SIZE', '160x120') THUMBNAIL_SIZE = getattr(settings, 'DOCUMENTS_THUMBNAIL_SIZE', '50x50') DISPLAY_SIZE = getattr(settings, 'DOCUMENTS_DISPLAY_SIZE', '1200') # Transformations AVAILABLE_TRANSFORMATIONS = getattr(settings, 'DOCUMENTS_AVAILABLE_TRANSFORMATIONS', available_transformations) DEFAULT_TRANSFORMATIONS = getattr(settings, 'DOCUMENTS_DEFAULT_TRANSFORMATIONS', []) #Groups