Version 3.1.4

Released: October 4, 2018


Improved search logic

The previous search code was optimized for speed and this was achieved by analyzing and then performing searches on a field basis and then on a term basis, merging the results. This logic has been revised to work on terms first for each field and then the results are merged. This change improves the results of the search system at the expense of some speed.

The search system also worked by default in ‘AND’ mode. This meant that all terms had to be found in a field for the result to count. User were adding the word ‘AND’ in the searches and this cause the search system to look for the word ‘AND’ and when not finding would affect the search results. The word ‘AND’ is now explicitly supported and interpreted to be a search syntax modifier. Adding ‘AND’ will not affect the search results.

Indexing by OCR text

The indexing system has been updated to respond to the signal raise when the OCR engine finished processing a document. This allows the system to update location of a document in the index when the OCR is ready.

Another custom signal similar to the OCR completion one was added to the document parsing app. This allows the index app to also refresh the indexes when the parsing of document text is finished.

This example indexes documents if they have the fragment “quarterly report” in the OCR text:

{% if "quarterly report" document.latest_version.ocr_content|join:" "|lower %}Quarterly reports{% endif %} {# Detect the word "quarterly report" in the document OCR text #}

The same applies to text content extracted for the document:

{% if "quarterly report" document.latest_version.content|join:" "|lower %}Quarterly reports{% endif %} {# Detect the word "quarterly report" in the document text #}

Other changes

  • Fix the link to the documentation. Closes GitLab issue #516. Thanks to Matthias Urlichs @smurfix for the report.
  • Update related links. Add links to the new Wiki and Forum.
  • Add Redis config entries in the Docker images to disable saving the database and to only provision 1 database.
  • Remove use of hard coded font icon for document page rendering busy indicator.
  • Disable the fancybox caption link if the document is in the trash.
  • Load the DropZone CSS from package and remove the hard code CSS from appearance/base.css.
  • Strip HTML entities from the browser’s window title. Closes GitLab issue #517. Thanks to Daniel Carrico @daniel1113 for the report.
  • Add explanation to the launch workflows tool.


  • None

Upgrading from a previous version

If installed via Python’s PIP

Remove deprecated requirements:

$ curl | pip uninstall -r /dev/stdin

Type in the console:

$ pip install mayan-edms==3.1.4

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:

$ performupgrade

Add new static media:

$ collectstatic --noinput

The upgrade procedure is now complete.

Backward incompatible changes

  • None

Bugs fixed or issues closed