Version 4.8

Released: July 12, 2024

Changes

Celery

Increased the Celery workers maximum memory per child from 400MB to 500MB. This lowers the occurrence of workers being killed.

Decrease the Celery workers maximum tasks per child from 1000 to 500. This recycles workers sooner to clear out any lost memory due to unmanaged memory leaks external to Mayan EDMS.

Dependencies

The following Python dependency versions were updated:

  • boto3 from 1.33.7 to 1.34.122

  • celery from 5.3.6 to 5.4.0

  • coverage from 6.5.0 to 7.5.4

  • coveralls from 3.3.1 to 4.0.1

  • django from 4.2.11 to 4.2.14

  • django-auth-ldap from 4.6.0 to 4.8.0

  • django-cors-headers from 4.3.1 to 4.4.0

  • django-debug-toolbar from 4.3.0 to 4.4.5

  • django-model-utils from 4.4.0 to 4.5.1

  • django-solo from 2.2.0 to 2.3.0

  • django-storages from 1.14.2 to 1.14.4

  • django-test-migrations from 1.3.0 to 1.4.0

  • djangorestframework from 3.14.0 to 3.15.2

  • extract-msg from 0.48.5 to 0.48.7

  • google-cloud-storage from 2.15.0 to 2.17.0

  • gunicorn from 21.2.0 to 22.0.0

  • importlib-metadata from 7.0.2 to 8.0.0

  • ipython from 8.22.2 to 8.26.0

  • jsonschema from 4.21.1 to 4.22.0

  • mozilla-django-oidc from 4.0.0 to 4.0.1

  • packaging from 21.3 to 24.1

  • Pillow from 10.3.0 to 10.4.0

  • pip from 24.0 to 24.1.2

  • psutil from 5.9.8 to 6.0.0

  • psycopg from 3.1.14 to 3.2.1

  • pypdf from 4.1.0 to 4.2.0

  • redis from 5.0.3 to 5.0.7.

  • safety from 3.1.0 to 3.2.4

  • sentry-sdk from 1.41.0 to 2.8.0

  • setuptools from 69.5.1 to 70.3.0

  • twine from 5.1.0 to 5.1.1

  • wheel from 0.42.0 to 0.43.0

  • whitenoise from 6.6.0 to 6.7.0

Docker

The following Docker image tags were updated:

Support for configurable Docker Compose RabbitMQ port, Redis host, and Redis port has been added.

File metadata

Support was added for enabling or disabling file metadata driver per document type.

Added a new Ollama file metadata app. This app is able to interface with Ollama models for document file introspection and analysis.

Split the file metadata EXIF and MSG drivers to their own app named mayan.apps.file_metadata_exif.apps.FileMetadataEXIFApp and mayan.apps.file_metadata_msg.apps.FileMetadataMSGApp.

Added per file metadata option to enable the driver for new document types.

Made the file metadata view columns sortable.

Added a column to the document file metadata list showing the full path to an entry including the driver’s internal name.

Added file metadata API views.

Added API view to display registered file metadata drivers, document type configuration, document file driver list, document file metadata entries, submit document files for processing.

Notifications

Added support for deleting notifications via the user interface and API.

Platform

Split the Docker templates into their own call named mayan.apps.platform_docker.

Templating

Added support for syntax highlighting. The widget theme can be changed using the new setting named TEMPLATING_WIDGET_HIGHLIGHT_THEME.

The font family of the templating widget is now monospaced.

Ensured the overscroll of the edit and preview fields does not affect the parent element.

Restricted the scrolling of the edit, preview, and result fields to be vertical only.

Document sandbox errors are now returned in the result fields instead of a view message.

Fixed the latest file template helper.

Added a helper that returns the active version of a document.

Added a to_base64 template filter. This filter turns binary data into a base64 encoded string for sending to Ollama models or via the workflow HTTP action. The filter also accepts an optional altchars argument.

Added select2 support and a custom select2 HTML template to the templating field’s model attributes and filter/tags dropdowns. This enabled autocompletion to the fields.

User interface

The system menu icon was replaced.

Removed hardcoded dropdown markup in partials/list/toolbar.html. Instead the general purpose template actions_dropdown.html is now used.

Split the menu link resolution into two stages. This allowed caching the class results of the navigation object inspection resulting in faster page loading and lower CPU usage in the frontend process.

Removed AJAX navigation exclusion for the .btn-multi-item-action class and shifted the responsibility of interaction from HTML/CSS to JavaScript.

Renamed menu_about to menu_system to reflect it true purpose.

Split Bootstrap specific markup and style into the new appearance_bootstrap app. This makes restyling Mayan EDMS much easier.

Humanized the document file size column.

Added support for link hover titles.

Added support for menus dropdowns without text.

Removed the text from the user and system menus to reduce space used.

Added hover title for the reload button, system menu, user menu, and messages link.

Improved SourceColumn resolution of kwargs. Keyword arguments can now access the template context reducing the need for lambdas.

Removed the specialized and custom animated list toolbar checkbox and instead use a styled standard HTML checkbox which makes this feature more compatible with multiple browsers.

Tweaked the FontAwesome icon spacing and composition styling.

Improved the logic to show or hide the filter clear icon.

The filter clear icon is now shown if a filter has a value after a refresh or full page load.

Added persistent view mode setting. This features stores the user selected view mode for a specific list view. A user view was added to show the detail of each user view modes.

Update the message delete view to use the MultipleObjectDeleteView instead of a custom MultipleObjectConfirmActionView.

Workflows

The workflow instance log entry is now available to the workflow instance states actions. This allows actions to have access to the log entry that triggered the workflow transition regardless of the current state or transition of the workflow. The workflow state action context is now composed of the keys: workflow_instance, workflow_instance_context, action, and log_entry.

Other

  • Update Copyright year from 2011 to 2024.

  • Split URL pattern definitions.

  • Reorganize events app modules.

  • Fix model proxy menu exclusion.

  • Update the document type file metadata and OCR link labels for clarity.

  • Fix file caching app class name from FileCachingConfig to FileCachingAppConfig.

  • Split document indexing serializers into separate modules.

  • Show more information when a source column attribute can’t be resolved.

  • Moved inline CSS styles.

  • Rename the internal name of the file metadata events for correctness. Renamed from document_version_submit to document_file_submitted, document_version_finish to document_file_finished. Renamed using migration 0018. There is no user impact.

  • Add support for file metadata driver migrations.

Removals

  • Removed devpi-server and related make file targets.

  • Removed Docker Compose file version tag (https://github.com/docker/compose/issues/11628).

  • Removed vagrant files and make file targets.

  • Removed KeyCloak from the Docker Compose file.

  • Removed icons class fontawesome-stack.

  • Removed templating field help text link to upstream Django template documentation. GitLab issue #1172.

  • Removed the icons class fontawesome-dual-classes. Replaced the two last uses with fontawesome-dual.

  • Removed document count column of document types. This information is already available via the chart “Total documents per document type” and does not impact the database as much as the removed column.

Backward incompatible changes

Split form related code and moved it to its own app. All imports from django.forms are updated to explicit imports from mayan.apps.forms modules. New form modules are: form_fields, formsets, form_widgets, forms.

The setting VIEWS_SHOW_DROPZONE_SUBMIT_BUTTON has been renamed to FORMS_SHOW_DROPZONE_SUBMIT_BUTTON.

The module navigation.classes has been split into three separate modules: navigation.links, navigation.menus, and navigation.source_columns.

The default Docker image no longer includes Debian Chinese and Korean font packages. Removed package names: fonts-arphic-uming, fonts-arphic-ukai, fonts-unfonts-core.

Updated the permission required to view the list of detected file metadata drivers from “view file metadata” to “view settings”. This change is required as the driver list view now may contain low level credentials.

Renamed development setup targets. Changed the prefix setup-dev to dev-setup. Updated the OS target to include the OS name ubuntu.

Renamed the icon class fontawesomecss to fontawesome-css.

Pass the value to SourceColumnWidget subclasses during initialization instead of during rendering. 3rd party apps using custom column widgets need to be updated.

Deprecations

None

Issues closed

  • None