Version 3.1.5
=============

Released: October 8, 2018

Changes
-------


Index mirroring fixes
^^^^^^^^^^^^^^^^^^^^^

This release fixes the mountindex management command that mounts an index
as a FUSE filesystem. It also includes a fix for indexes that return a
multi line value. The carriage returns and newlines characters are now
converted into spaces to make the index value a valid filesystem directory.
Lastly an issue with the duplicated value was fixed. Indexes levels that
return a duplicated value will not show as directory entries when mounted
as a FUSE filesystem.


Page parsed text link
^^^^^^^^^^^^^^^^^^^^^

Recently a link was added to each document page to show the OCR text for
that particular page. This release adds another link but to allow users
to view the parsed text of each page.


Python 3
^^^^^^^^

This release includes several fixes for Python 3 compatibility and reduce
the fail count of the test suit to just one test.


Transformations arguments
^^^^^^^^^^^^^^^^^^^^^^^^^

Visually the view to create or edit a transformation remains the same. But
internally those views now use an explicit form to allow performing YAML
format validation of arguments.


Crop transformation
^^^^^^^^^^^^^^^^^^^

Stricter error checking was added to the crop transformation.


Other changes
^^^^^^^^^^^^^

* Consolidate some document indexing test code into a new mixin.
* Update compressed files class module to work with Python 3.
* Update document parsing app tests to work with Python 3.
* Handle office files in explicit binary mode for Python 3.
* Return a proper list of SearchModel instances (Python 3).
* Specify FUSE literals in explicit octal notation (Python 3).
* URL quote the encoded names of the staging files using Django's compat
  module. (Python 3)
* Open staging file in explicit binary mode. (Python 3)
* Add separate Python 2 and Python 3 versions of the MetadataType model
  .comma_splitter() static method.
* Update the metadata app tests to work on Python 3.
* Make sure metadata lookup choices are a list to be able to add the
  optional marker (Python 3).
* Make sure the image in the document preview view is centered when it is
  smaller than the viewport.
* Restore use of the .store_body variable accidentally remove in
  63a77d0235ffef3cd49924ba280879313c622682. Closes GitLab issue #519.
  Thanks to TheOneValen @TheOneValen for the report.
* Add shared cache class and add mounted index cache invalidation when
  document and index instance nodes are updated or deleted.
* Fix document metadata app view error when adding multiple optional
  metadata types. Closes GitLab issue #521. Thanks to the TheOneValen
  @TheOneValen for the report.


Removals
--------

* None


Upgrading from a previous version
---------------------------------

If installed via Python's PIP
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Remove deprecated requirements::

    $ curl https://gitlab.com/mayan-edms/mayan-edms/raw/master/removals.txt | pip uninstall -r /dev/stdin

Type in the console::

    $ pip install mayan-edms==3.1.5

the requirements will also be updated automatically.


Using Git
^^^^^^^^^

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.

Remove deprecated requirements::

    $ pip uninstall -y -r removals.txt

Next upgrade/add the new requirements::

    $ pip install --upgrade -r requirements.txt


Common steps
^^^^^^^^^^^^

Perform these steps after updating the code from either step above.

Migrate existing database schema with::

    $ mayan-edms.py performupgrade

Add new static media::

    $ mayan-edms.py collectstatic --noinput

The upgrade procedure is now complete.


Backward incompatible changes
-----------------------------

* None


Bugs fixed or issues closed
---------------------------

* :gitlab-issue:`518` mountindex broken (3.1.x)
* :gitlab-issue:`519` Mail body fetched despite setting not to
* :gitlab-issue:`521` Adding multiple metadata at once fails

.. _PyPI: https://pypi.python.org/pypi/mayan-edms/
