Version 0.12
February 2012
This release commemorates Mayan EDMS first anniversary!
Overview
Aside from new features, the focus of this release of Mayan EDMS also been about improving the code and documentation quality standard even further. The permission system has been completely overhauled to make it entire class based. The other big change is the addition of object level permissions, with this new system being applied to documents, folder, tags and smart links. There is also a small batch of navigation improvements. Big code cleanup and lots of changes ‘under the hood’, most of these are not visible to the end user, but make the code cleaner and more manageable so that more and better features can be added in future releases:
Absolute imports used through the code
All app permissions have been move to a separate permissions.py file per app
Complete permission system refactor.
Document signing code moved to it’s own app
Initial unit tests
A lot of logging used through the entire project.
Much functionality moved to model managers.
A lot of code converted into classes.
Coding style improvements.
Template user authentication state logic improvements, for stronger prevention against intrusion or unintentional display or access of restricted data.
Removal of remarked code.
Changes
ACL support
Object level access control is now in place for documents, folders, tags and smart links. What this means is that administrators can now grant permissions to users, groups or roles on for specific objects. A more in-depth explanation of how this new ACL system can be found in the 3 tier access control section of the permissions chapter.
Default class ACL support. Administrators can setup the access control lists that new documents, folders and tags will automatically inherit when created. Aside from assigning permission to users, groups and roles to specific objects, there is a special user called Creator, use to allow the access control list that the actual creator of an object will inherit.
Anonymous user support
Anonymous user support is a two tier function, first is the addition of
the COMMON_ALLOW_ANONYMOUS_ACCESS
configuration option that
allows non authenticated user to browse all the pages of a Mayan EDMS
installation. The second part of this support is the ability to assign
permissions or individual access to objects to anonymous users.
Translations
A new Italian translation is available, provided by SeeOpen.IT (www.seeopen.it, info@seeopen.it) as well as complete Russian translation update by Sergei Glita. Included in this release also the initial translation to Polish by mic.
Usability improvements
Detached signature behavior improved, uploading a new detached signature erases the previous one.
Usability improvement in the role member’s add/removal form, by using HTML’s option groups tag property
2 Step download process
The code for downloading single and multiple document and document versions has been merged with compression support also added. This allows for the download of documents in their original format or compressed and well as the download of several documents in a single compressed file.
Customizable GPG home directory
Addition of the SIGNATURES_GPG_HOME
configuration option to let
administrators set Mayan EDMS’s GPG instance home directory, used to
store keyrings and other GPG configuration files.
Out of process bulk uploading
A management command has been added to help upload a large number of documents from a compressed file. For information about this new feature check the Initial data loading chapter.
Out of process user import
A management command has been added to import a large number users from a CSV file. More information about this new feature can also be found in the Initial data loading chapter.
Refactored document indexing
The document indexing functionality has been
improved and moved from experimental
stage to beta stage. Index configuration menus are now available on the
Setup
menu and allows administrators to create skeleton trees that will
be populated with document links depending on their metadata and properties.
These populated trees can also be mirrored on the physical filesystem and shared
using Samba or another filesharing server giving users a structured view
of the documents contained within Mayan EDMS from the Indexes
tab
or from a mirrored index shared via the network. A new configuration option
has been added, DOCUMENT_INDEXING_FILESYSTEM_SERVING
, which maps
the index internal name with the physical directory where such index will be
mirrored on disk.
Help shape Mayan EDMS’s future
Included in this version is a small feedback application, found under the
About
main menu, where users by just answering some questions can
help determine the priority of the next planned features on the pipeline,
or even help add new features if enough requests are received. All questions
are optional but answering as many as possible will help greatly understand
the need of the Mayan EDMS user base.
Staging file previews
The staging file previews now show the filename for easier identification and speedier upload selection. The staging files previews are now treated as a gallery which means that users can preview an entire page of staging files without having to click and close each one individually.
Removals
Support for Celery and Sentry has been drop for now.
Removed the ‘db_index’ argument from Text fields definition and migrations as it was causing error messages for MySQL users, thanks to Sergei Glita for reporting this one.
Configuration options removed:
OCR_CACHE_URI
DOCUMENT_INDEXING_FILESYSTEM_FILESERVING_PATH - Use the newest DOCUMENT_INDEXING_FILESYSTEM_SERVING
DOCUMENT_INDEXING_FILESYSTEM_FILESERVING_ENABLE - Use the newest DOCUMENT_INDEXING_FILESYSTEM_SERVING
Upgrading from a previous version
Start off by adding the new requirements:
$ pip install -r requirements/production.txt
Then create the new database structures with:
$ ./manage.py syncdb
Afterwards migrate existing database schema with:
$ ./manage.py migrate permissions 0001 --fake
$ ./manage.py migrate permissions
When the following message appears
The following content types are stale and need to be deleted:
permissions | permission
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:
Type yes
and press Enter
And continue migrating database schema with:
$ ./manage.py migrate documents
$ ./manage.py migrate document_signatures
$ ./manage.py migrate folders 0001 --fake
$ ./manage.py migrate folders
$ ./manage.py migrate document_indexing 0001 --fake
$ ./manage.py migrate document_indexing
$ ./manage.py migrate sources 0001 --fake
$ ./manage.py migrate sources
Again when a similar messages appears
The following content types are stale and need to be deleted:
document_indexing | indexinstance
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:
Type yes
and press Enter
The upgrade procedure is now complete.
Backward incompatible changes
The permission system has been completely reworked so sadly this is a place where even data migration can’t help and the permissions assigned to roles will be lost during the upgrade to version 0.12. Users, groups and roles will be preserved only permissions need to be assigned again, so write down your role permission setup before upgrading.
Bugs fixed
- GitHub issue #17 special thanks to Dave Herring for all the help including
access to a machine suffering with the issue, and to Sergei Glita for his research and eventual find of the core cause.
Statistics fixes.
Fixed get_image_cache_name regression in the OCR app.