Version 1.1
Released: February 10, 2015
Changes
Celery
All background tasks processing has been converted to use Celery. By default Mayan EDMS runs in “Eager” until a broker and result backend are configured as per Celery’s documentation. This change made the built-in scheduler and job_processing apps obsolete, both were removed.
Views namespaces
All views are namespaced with the name of the app which defines them. If you have developed 3rd party apps for Mayan EDMS be sure to update any reference to a view by prepending the app name to the view name.
Removal of the splash screen
The static image home screen has been replaced with a quick links view, showing the most used actions: Uploading documents, viewing recent documents, viewing all documents and searching documents.
Sending and receiving documents via email
A link or entire documents can be sent as attachments via email. Documents can also be received via email with the addition of two document sources named IMAP and POP3 which correspond to the mail protocol used to fetch the documents. Read Django’s email configuration settings documentation for more details on how to set up mail serving.
Update to Django 1.6.8
Mayan EDMS has been updated to use Django 1.6.8.
Events app
The built-in history app has been removed in favor of a new events wrapper app for Django activity stream
Watch folders
Filesystem folders can be monitored for change and their files automatically uploaded as documents in Mayan EDMS.
Vagrant file included
A vagrant file is now included to allow developers to provision a virtual machine with the latest development version of Mayan EDMS.
User locale profile (language and timezone)
Interface language and locale setting can now be setup for each user and are not installation wide as before. Date and times offsets are automatically adjusted to each user’s timezone settings.
Document states
A new simple workflow app that can represent document states has been included.
Explicit document types needed per index
Indexes can now be tied to document types, eliminating the need to update indexes for every document update. Indexes will only update when a document of the type to which they are associated is updated.
Optional and required metadata types
Metadata types can now be assigned in two ways to documents types, as optional or required. Values for required metadata types as the name implies, must be entered for documents to be able to be uploaded. Optional metadata types on the other hand can be left blank by the user.
Bulk document type change
It is now possible to change the document type of previously uploaded documents. When the document type of a document is changed the metadata values are reset and the metadata types of the new document type are automatically assigned.
New release cycle
Starting with this version a new release cycle methodology will come into effect. The goal of this release cycle is to allow two series of versions of Mayan EDMS to be active at a given time: A new major version with new functionality and a minor version providing upgrades and fixes. This release (1.1) will be active and supported during releases of versions 2.x, but will go into end-of-life as soon as version 3.0 is released, at which time version series 2.x will go into maintenance mode.
Deprecation of Python 2.6
Series 1.0 of Mayan EDMS will be the last series supporting Python 2.6. Series 2.0 will be using Django 1.7.x which itself requires Python 2.7 or later.
Improved testings
Mayan EDMS is now automatically tested against SQLite, MySQL and PostgreSQL.
API updates
Many new API endpoints have been added exposing the majority of Mayan EDMS functionality.
Messages contextual improvements
Many updates and simplifications were made to the source text messages to reduce the difficulty of translating Mayan EDMS and maintain the contextual meaning of the text messages.
Improved method for custom settings
Custom settings now use a string based value, it is longer needed to import classes when customizing a setting:
from custom_app.backends import CustomStorageBackend
DOCUMENTS_STORAGE_BACKEND = CustomStorageBackend
Instead the fully qualified name of the class must be passed as the setting value:
DOCUMENTS_STORAGE_BACKEND = 'custom_app.backends.CustomStorageBackend'
Removal of the OCR config setting
OCR behavior is now a document type property meaning that it can be turned on or off for specific document types.
Per document language setting
Previously the document language used for OCR was specified for the entire installation. If documents in multiple languages were uploaded some suffered lower success rates. Now the language of each document can be specified.
Metadata validation and parsing support
It is now possible to create functions to validate metadata value input or
parse and store corrected values. Three sample metadata validations functions
are included: Parse date and time
, Parse date
and Parse time
.
Removal of 960 grid system in favor Pure CSS’s grid system
By using Pure CSS’s columns based grid system, the move towards a Bootstrap UI migration has advanced greatly.
Simplified UI
All user actions as well as the logout button are now under the user functions section.
Stable PDF previews generation
The way PDF were being generated has been improved greatly eliminating spurious segmentation faults at the expense of a small speed penalty.
More technical documentation
Many new sub topics were added to the development section of the documentation to allow developers to better understand the inner workings and philosophies of Mayan EDMS.
Other changes
Removal of the
MAIN_SIDE_BAR_SEARCH
settingRemoval of
THEMES
setting and themes supportRemoval of
VERBOSE_LOGIN
settingRemoval of graphics backend supported file format list view
Removal of the
MAIN_DISABLE_ICONS
settingRemoval of specialized Sentry support
Removal of the
MAIN_ENABLE_SCROLL_JS
settingRemove hardcoded root (/) redirections
Removal of
APSCheduler
as a requirementRemoval of the scheduled jobs view
Removal of the
web_theme
appRemoval of the sources icon selection support
Removal of the in-app help panels
Removal of the duplicate document search feature
Removal of filesystem document indexes mirroring feature
Improve sources app model sub classes and inheritance handling
Addition of CORS support to the API
Upgrading from a previous version
IMPORTANT! Before running the upgrade make sure none of your documents have duplicated metadata types, meaning that the same metadata type must not appear twice for any given document.
If you installed Mayan EDMS by cloning the Git repository issue the commands:
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the existing installation.
Next upgrade/add the new requirements:
$ pip install --upgrade -r requirements.txt
Migrate existing database schema with:
$ mayan-edms.py migrate dynamic_search 0001 --fake
$ mayan-edms.py migrate history 0001 --fake
$ mayan-edms.py migrate linking 0001 --fake
$ mayan-edms.py migrate lock_manager 0001 --fake
$ mayan-edms.py migrate tags 0001 --fake
$ mayan-edms.py migrate
During the migration several messages of stale content types can occur:
The following content types are stale and need to be deleted:
metadata | documenttypedefaults
metadata | metadataset
metadata | metadatasetitem
ocr | documentqueue
ocr | queuedocument
sources | watchfolder
sources | outofprocess
sources | webform
sources | stagingfolder
tags | tagproperties
Any objects related to these content types by a foreign key will also
be deleted. Are you sure you want to delete these content types?
If you're unsure, answer 'no'.
Type 'yes' to continue, or 'no' to cancel:
You can safely answer “yes”.
Add new static media:
$ mayan-edms.py collectstatic --noinput
Remove unused dependencies:
$ pip uninstall APScheduler
$ pip uninstall django-taggit
The upgrade procedure is now complete.
Backward incompatible changes
You will have to redefine your document sources due to the new extended models for this app.
Check your configurations of smart links and indexes to use the newly provided arguments.
Bugs fixed or issues closed
GitHub issue #30 Document workflows
GitHub issue #32 Watched folders
GitHub issue #34 Postprocessing document queue
GitHub issue #35 Metadata validation
GitHub issue #37 Add from __future__ import unicode_literals
GitHub issue #39 Capitalization of messages
GitHub issue #40 Update references to root (‘/’) path
GitHub issue #46 Advanced search past 1st page
GitHub issue #49 Problems with large pdf files
GitHub issue #50 raise CommandNotFound(path)
GitHub issue #51 Search with ANONYMOUS error
GitHub issue #55 Document approval cycle?
GitHub issue #56 Removal of non essential features, views, models
GitHub issue #57 Migrate to Celery for task query and periodic tasks
GitHub issue #64 Pluralize messages properly
GitHub issue #65 Backport the ability to receive documents via email
GitHub issue #66 Python 3 compatibility: Add from __future__ import unicode_literals and remove all u’’
GitHub issue #68 Revise and update the use gettext vs. gettext_lazy
GitHub issue #69 Feature removal: remove “Unregistered” message from the title bar
GitHub issue #71 Add retry support to the converter task
GitHub issue #72 Delete unused static icons
GitHub issue #74 Cache a document’s first document version
GitHub issue #75 Move automatic OCR queueing from a configuration settings to a property of Document Type model
GitHub issue #77 Add document view permission support to the search app
GitHub issue #78 COMMON_TEMPORARY_DIRECTORY seems not to be used everywhere
GitHub issue #79 Error installing
GitHub issue #82 Make document type a required field
GitHub issue #83 Simplify source app views and navigation
GitHub issue #84 Remove template context variable ‘object_name’ to improve translations
GitHub issue #85 Reset page count for a single document
GitHub issue #86 Move migrations to new ‘south_migrations’ folders
GitHub issue #87 Per document language selection
GitHub issue #88 Remove metadata type selection from the upload wizard
GitHub issue #89 Allow metadata types to be required for specific document types
GitHub issue #90 Remove the app_registry app
GitHub issue #91 Don’t preserve the ?page= URL query string value when switching sources during document upload
GitHub issue #92 Make register_multi_item_links class aware
GitHub issue #95 Installation error on Mac OSX; OSError: [Errno 2] No such file or directory
GitHub issue #96 Remove hard code User model references
GitHub issue #97 Make multi item links a drop down list
GitHub issue #104 Finish polishing metadata validation patch
GitHub issue #105 Tie smart links setups to document types
GitHub issue #106 Convert document indexing app actions to Celery
GitHub issue #107 Restrict document metadata addition and removal
GitHub issue #108 New home screen
GitHub issue #109 Add Roles API endpoints
GitHub issue #111 Add Checkouts API endpoints
GitHub issue #112 Add OCR API endpoints
GitHub issue #114 Implement UI language as user preference
GitHub issue #116 Add documentation topic explicitly noting the binary requirements
GitHub issue #118 When a metadata type is removed from a document type, remove it from all the documents of that type
GitHub issue #119 When a required metadata type is added to a document type, add it to all documents of that type
GitHub issue #126 Failing migration with SQLite
GitHub issue #127 Failing migration with Postgres
GitHub issue #128 Add Indexes API endpoints
GitHub issue #129 Search api shouldn’t memorize requested page as part of the query
GitHub issue #130 Users API is not working correctly
GitHub issue #131 Is there an API to update a user’s password?
GitHub issue #137 Enhancement of language selection
GitHub issue #138 Possibility to keep zoom factor
GitHub issue #139 Translatability of language selection
GitHub issue #140 Thumbnail creation for ods crashing
GitHub issue #143 Exception Value: ‘exceptions.ValueError’ object has no attribute ‘messages’
GitHub issue #144 Behavior of ‘Edit metadata’ (Recent Documents)
GitHub issue #146 Periodic task not initiated for mail boxes and watch folders
GitHub issue #149 Attribute error in document download
GitHub issue #150 Double second menu entry
GitHub issue #152 Document content empty
GitHub issue #153 south migration with postgres: documents: 031_remove_orphan_documents
GitHub issue #154 south migration with postgres: tags: 0002_auto__add_tag__chg_field_tagproperties_tag
GitHub issue #157 upload new version of a document not working
GitHub issue #158 Plural form not matching singular form in ocr app bug i18n