Version 0.5 ----------- * Added tag list view and global tag delete support * Added tag editing view and listing documents with an specific tag * Changed the previewing and deleting staging files views to required ``DOCUMENT_CREATE`` permission * Added no-parent-history class to document page links so that iframe clicking doesn't affect the parent window history - Fixes back button issue on Chrome 9 & 10 * Added per app version display tag * Added loading spinner animation * Messages tweaks and translation updates * Converter app cleanups, document pre-cache, magic number removal * Added OCR view displaying all active OCR tasks from all cluster nodes * Disabled ``CELERY_DISABLE_RATE_LIMITS`` by default * Implement local task locking using Django locmem cache backend * Added doc extension to office document format list * Removed redundant transformation calculation * Make sure OCR in processing documents cannot be deleted * PEP8, pylint cleanups and removal of relative imports * Removed the obsolete ``DOCUMENTS_GROUP_MAX_RESULTS`` setting option * Improved visual appearance of messages by displaying them outside the main form * Added link to close all notifications with one click * Made the queue processing interval configurable by means of a new setting: ``OCR_QUEUE_PROCESSING_INTERVAL`` * Added detection and reset of orphaned ocr documents being left as 'processing' when celery dies * Improved unknown format detection in the graphicsmagick backend * Improved document convertion API * Added initial support for converting office documents (only ods and docx tested) * Added sample configuration files for supervisor and apache under contrib/ * Avoid duplicates in recent document list * Added the configuration option CONVERTER_GM_SETTINGS to pass GraphicsMagicks specific commands the the GM backend * Lower image convertion quality if the format is jpg * Inverted the rotation button, more intuitive this way * Merged and reduced the document page zoom and rotation views * Increased permissions app permission's label field size - DB Update required * Added support for metadata group actions * Reduced the document pages widget size * Display the metadata group numeric total in the metadata group form title * Reorganized page detail icons * Added first & last page navigation links to document page view * Added interactive zoom support to document page detail view * Spanish translation updates * Added ``DOCUMENTS_ZOOM_PERCENT_STEP``, ``DOCUMENTS_ZOOM_MAX_LEVEL``, ``DOCUMENTS_ZOOM_MIN_LEVEL`` configuration options to allow detailed zoom control * Added interactive document page view rotation support * Changed the side bar document grouping with carousel style document grouping form widget * Removed the obsolete ``DOCUMENTS_TRANFORMATION_PREVIEW_SIZE`` and ``DOCUMENTS_GROUP_SHOW_THUMBNAIL`` setting options * Improved double submit prevention * Added a direct rename field to the local update and staging upload forms * Separated document page detail view into document text and document image views * Added grab-scroll to document page view * Disabled submit buttons and any buttons when during a form submit * Updated the page preview widget to display a infinite-style horizontal carousel of page previews * Added support user document folders - Must do a ``syncdb`` to add the new tables * Added support for listing the most recent accessed documents per user * Added document page navigation * Fixed diagnostics url resolution * Added confirmation dialog to document's find missing document file diagnostic * Added a document page edit view * Added support for the command line program pdftotext from the poppler-utils packages to extract text from PDF documents without doing OCR * Fixed document description editing * Replaced page break text with page number when displaying document content * Implemented detail form readonly fields the correct way, this fixes copy & paste issues with Firefox * New document page view * Added view to add or remove user to a specific role * Updated the jQuery packages with the web_theme app to version 1.5.2 * Made ``AVAILABLE_INDEXING_FUNCTION`` setting a setting of the documents app instead of the filesystem_serving app * Fixed document download in FireFox for documents containing spaces in the filename * If mime detection fails set mime type to '' instead of 'unknown' * Use document MIME type when downloading otherwise use 'application/octet-stream' if none * Changed the way document page count is parsed from the graphics backend, fixing issue #7 * Optimized document metadata query and display * Implemented OCR output cleanups for English and Spanish * Redirect user to the website entry point if already logged and lands in the login template * Changed from using SimpleUploadedFile class to stream file to the simpler File class wrapper * Updated staging files previews to use sendfile instead of serve_file * Moved staging file preview creation logic from documents.views to staging.py * When deleting staging file, it's cached preview is also deleted * Added a new setup option: - ``FILESYSTEM_INDEXING_AVAILABLE_FUNCTIONS`` - a dictionary to allow users to add custom functions * Made automatic OCR a function of the OCR app and not of Documents app (via signals) - Renamed setup option ``DOCUMENT_AUTOMATIC_OCR`` to ``OCR_AUTOMATIC_OCR`` * Clear node name when requeueing a document for OCR * Added support for editing the metadata of multiple documents at the same time * Added Graphics magick support by means of user selectable graphic convertion backends - Some settings renamed to support this change: + ``CONVERTER_CONVERT_PATH`` is now ``CONVERTER_IM_CONVERT_PATH`` + ``CONVERTER_IDENTIFY_PATH`` is now ``CONVERTER_IM_IDENTIFY_PATH`` - Added options: + ``CONVERTER_GM_PATH`` - File path to graphicsmagick's program. + ``CONVERTER_GRAPHICS_BACKEND`` - Backend to use: ``ImageMagick`` or ``GraphicMagick`` * Raise ImportError and notify user when specifying a non existant converter graphics backend * Fixed issue #4, avoid circular import in permissions/__init__.py * Add a user to a default role only when the user is created * Added total page count to statistics view * Added support to disable the default scrolling JS code included in web_theme app, saving some KBs in transfer * Clear last ocr results when requeueing a document * Removed the 'exists' column in document list view, diagnostics superceded this * Added 3rd party sendfile app (support apache's X-sendfile) * Updated the get_document_image view to use the new sendfile app * Fixed the issue of the strip spaces middleware conflicting with downloads * Removed custom IE9 tags * Closed Issue #6 * Allow deletion of non existing documents from OCR queue * Allow OCR requeue of pending documents * Invalid page numbers now raise Http404, not found instead of error * Added an additional check to lower the chance of OCR race conditions between nodes * Introduce a random delay to each node to further reduce the chance of a race condition, until row locking can be implemented or is implemented by Django * Moved navigation code to its own app * Reimplemented OCR delay code, only delay new document Added a new field: delay, update your database schema accordingly * Made the concurrent ocr code more granular, per node, every node can handle different amounts of concurrent ocr tasks Added a new field: node_name, update your database schema acordinging * Reduced default ocr delay time * Added a new diagnostics tab under the tools menu * Added a new option ``OCR_REPLICATION_DELAY`` to allow the storage some time for replication before attempting to do OCR to a document * Added OCR multi document re-queue and delete support * Added simple statistics page (total used storage, total docs, etc) * Implemented form based and button based multi item actions (button based by default) * Added multi document delete * Fixed a few HTML validation errors * Issues are now tracked using github * Added indexing flags to ocr model * Small optimization in document list view * Small search optimization * Display "DEBUG mode" string in title if ``DEBUG`` variable is set to True * Added the fix-permissions bash script under misc/ folder * Plugged another file descriptor leak * Show class name in config settings view * Added missing config option from the setup menu * Close file descriptor to avoid leaks * Don't allow duplicate documents in queues * Don't raise ``PermissionDenied`` exception in ``PermissionDenied middleware``, even while debugging * Fixed page number detection * Created 'simple document' for non technical users with all of a document pages content * Use document preview code for staging file also * Error picture literal name removal * Spanish translation updates * Show document file path in regards of its storage * Added new setting: side bar search box * Implemented new ``PermissioDenied`` exception middleware handler * Permissions app api now returns a ``PermissionDenied`` exception instead of a custom one * Added new 403 error template * Updated the 404 template to display only a not found message * Moved the login required middleware to the common app * Fixed search app's model.objects.filter indentation, improved result count calculation * Added dynamic comparison types to search app * Separated search code from view code * Correctly calculate show result count for multi model searches * Fixed OCR queue list showing wrong thumbnail * Fixed staging file preview * Show current metadata in document upload view sidebar * Show sentry login for admin users * Do not reinitialize document queue and/or queued document on reentry * Try extra hard not to assign same uuid to two documents * Added new transformation preview size setting * Renamed document queue state links * Changed ocr status display sidebar from form based to text based * Added document action to clear all the document's page transformations * Allow search across related fields * Optimzed search for speed and memory footprint * Added ``LIMIT`` setting to search * Show search elapsed time on result page * Converter now differentiates between unknown file format and convert errors * Close file descriptors when executing external programs to prevent/reduce file descriptior leaks * Improved exception handling of external programs * Show document thumbnail in document ocr queue list * Make ocr document date submitted column non breakable * Fix permissions, directories set to mode 755 and files to mode 644 * Try to fix issue #2, "random ORM field error on search while doing OCR" * Added configurable location setting for file based storage * Prepend storage name to differentiate config options * Fixed duplicated document search * Optimized document duplicate search * Added locale middleware, menu bar language switching works now * Only show language selection list if localemiddleware is active * Spanish translation updates * Added links, views and permissions to disable or enable an OCR queue * Enabled Django's template caching * Added document queue property side bar window to the document queue list view * Added HTML spaceless middleware to remove whitespace in HTML code * If current user is superuser or staff show thumbnail & preview generation error messages * Added a setting to show document thumbnail in metadata group list * Started adding configurations setting descriptions * Initial GridFS storage support * Implemented size and delete methods for GridFS * Implement GridFS storage user settings * Added document link in the OCR document queue list * Link to manually re queue failed OCR * Don't separate links (encose object list links with white-space: nowrap;) * Added document description to the field search list * Sort OCR queued documents according to submitted date & time * Document filesystem serving is now a separate app - Steps to update (Some warnings may be returned, but these are not fatal as they might be related to missing metadata in some documents): + rename the following settings: + ``DOCUMENTS_FILESYSTEM_FILESERVING_ENABLE`` to ``FILESYSTEM_FILESERVING_ENABLE`` + ``DOCUMENTS_FILESYSTEM_FILESERVING_PATH`` to ``FILESYSTEM_FILESERVING_PATH`` + ``DOCUMENTS_FILESYSTEM_SLUGIFY_PATHS`` to ``FILESYSTEM_SLUGIFY_PATHS`` + ``DOCUMENTS_FILESYSTEM_MAX_RENAME_COUNT`` to ``FILESYSTEM_MAX_RENAME_COUNT`` + Do a ./manage.py syncdb + Execute 'Recreate index links' locate in the tools menu + Wait a few minutes * Added per document duplicate search and a tools menu option to seach all duplicated documents * Added document tool that deletes and re-creates all documents filesystem links * Increased document's and document metadata index filename field's size to 255 characters * Added sentry to monitor and store error for later debugging * Zip files can now be uncompressed in memory and their content uploaded individually in one step * Added support for concurrent, queued OCR processing using celery * Apply default transformations to document before OCR * Added unpaper to the OCR convertion pipe * Added views to create, edit and grant/revoke permissions to roles * Added multipage documents support (only tested on pdfs) - To update a previous database do: [d.update_page_count() for d in Document.objects.all()] * Added support for document page transformation (no GUI yet) * Added permissions and roles support * Added python-magic for smarter MIME type detection (https://github.com/ahupp/python-magic). * Added a new Document model field: file_mime_encoding. * Show only document metadata in document list view. * If one document type exists, the create document wizard skips the first step. * Changed to a liquid css grid * Added the ability to group documents by their metadata * New abstracted options to adjust document conversion quality (default, low, high)