Merge remote-tracking branch 'origin/master' into development

This commit is contained in:
Roberto Rosario
2017-07-05 16:03:50 -04:00
1633 changed files with 37099 additions and 19831 deletions

View File

@@ -1,8 +1,8 @@
===============================
Mayan EDMS v2.2.1 release notes
===============================
=============================
Mayan EDMS v2.3 release notes
=============================
Released: May 25, 2017
Released: June 08, 2017
What's new
==========

156
docs/releases/2.4.rst Normal file
View File

@@ -0,0 +1,156 @@
=============================
Mayan EDMS v2.4 release notes
=============================
Released: June 23, 2017
What's new
==========
SANE document source
--------------------
A new document source has been added with the ability to retrieve documents from
scanners directly. This new document source uses the SANE (Scanner Access Now Easy)
(https://en.wikipedia.org/wiki/Scanner_Access_Now_Easy) API client to communicate
with USB and network scanners. SANE must be properly installed for this document
source to work. Your scanner must also be supported by the SANE API
(http://www.sane-project.org/sane-supported-devices.html).
Automatic PDF orientation detection
-----------------------------------
The orientation of PDF documents is now detected at creation and a rotation
transformation applied to each of the document's pages to correct the orientation.
Environment variables
---------------------
Configuration options can now be updated from environment variables. To update
a configuration option, prepend the string `MAYAN_` to the name of the configuration
option. For example, to increase the number of documents displayed per search results
page (from a default of 40) to 50 documents, set the environment variable
MAYAN_COMMON_PAGINATE_BY to 50 with::
$ export MAYAN_COMMON_PAGINATE_BY=50
and restart Mayan EDMS. A list of the configuration options can be found in the
`Setup` menu, under `Settings`.
Math filters
------------
The django-mathfilters (https://pypi.python.org/pypi/django-mathfilters) package
has been included to provide proper math filters in the indexes. An example of
this is indexing documents by quarter::
{% load mathfilters %}{{ document.metadata_value_of.date|date:"Y"}}Q{{ document.metadata_value_of.date|date:"m"|sub:1|intdiv:3|add:1 }}
Expand searchable objects
-------------------------
Previously, only documents and later on document pages were searchable. This release
add support for searching for tags, metadata types and cabinets. This search support
is available via the dynamic search API.
Management command to reset locks
---------------------------------
During testing or development error occur and locks can remain behind, blocking
execution of a process or task until they expire. To help resolve this a
management command has been added called `purgelocks` that will delete all locks
in the system.
Index by workflow state
-----------------------
Support was added to update the a document indexes from workflow state changes.
To make workflow referencing easier from the index template, a new fields was
added to the workflow model called internal_name. For example, for a workflow
called `Publishing Workflow` with an internal name of `publishing_workflow`,
use the following string to reference the current state in an index::
{{ document.workflow.publishing_workflow.get_current_state }}
Task manager
------------
A new app to monitor the distribution and consumption of background task has been
added. This app is call `Task manager` and can be found in the `Tools` menu.
Use this new tool to diagnose your background task workers or to determine when
to scale up the number of workers.
Other Changes
-------------
- Improve render of documents with no pages.
- Fix repeated permission list API URL. GitLab issue #389.
- Fix role creation API endpoint not returning id. GitLab issue #390.
- Fix index rebuilding for multi value first levels. GitLab issue #391.
- Add hardware requirements. GitHub issue #247.
- Fix URL query string encoding for the document page navigation views. GitLab
issue #383.
- Truncate views titles via the APPEARANCE_MAXIMUM_TITLE_LENGTH setting.
GitLab issue #217.
- Add link to show a document's OCR errors. GitLab issue #291.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
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.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
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
===========================
* `GitHub issue #247 <https://github.com/mayan-edms/mayan-edms/issues/247>`_ Hardware requirements
* `GitLab issue #132 <https://gitlab.com/mayan-edms/mayan-edms/issues/132>`_ Task queue viewer
* `GitLab issue #217 <https://gitlab.com/mayan-edms/mayan-edms/issues/217>`_ [Documents] Truncate document label for avoid double lines in mobile or reduce font
* `GitLab issue #221 <https://gitlab.com/mayan-edms/mayan-edms/issues/221>`_ Add flush lock management command
* `GitLab issue #291 <https://gitlab.com/mayan-edms/mayan-edms/issues/291>`_ Link to OCR error log from document OCR tab
* `GitLab issue #344 <https://gitlab.com/mayan-edms/mayan-edms/issues/344>`_ Add support for searching folders, tags, metadata.
* `GitLab issue #383 <https://gitlab.com/mayan-edms/mayan-edms/issues/383>`_ Page not found when deployed to sub-uri
* `GitLab issue #387 <https://gitlab.com/mayan-edms/mayan-edms/issues/387>`_ Document Scanning not Functioning on rotated landscape PDF's
* `GitLab issue #389 <https://gitlab.com/mayan-edms/mayan-edms/issues/389>`_ How can we map permissions with a particular role using REST API?
* `GitLab issue #390 <https://gitlab.com/mayan-edms/mayan-edms/issues/390>`_ Id is not getting in response
* `GitLab issue #391 <https://gitlab.com/mayan-edms/mayan-edms/issues/391>`_ "Rebuild indexes" does not work in Mayan EDMS 2.3
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

117
docs/releases/2.5.rst Normal file
View File

@@ -0,0 +1,117 @@
=============================
Mayan EDMS v2.5 release notes
=============================
Released: July XX, 2017
What's new
==========
Other Changes
-------------
- Add view to download a document's OCR text. GitLab issue #215.
- Add missing OCR migration.
- Improve error output of the performupgrade command to debug upgrade errors
that could stop an upgrade (missing document files, etc).
- Enable the django-mathfilters app added in version 2.4.
- Do a complete pull and synchronization of the translations to fix missing
translations for Polish. Thanks to Wojtek Warczakowski for the report.
- Allow null for the SANE source resolution field. Even though the field was
marked as allowing blank values it was failing because it is a number field
and number fields need to allow explicit null values when left blank.
- Rename the mayan_task_manager app to task_manager.
- Make the task manager translatable.
- Add Turkish to the list of processes languages.
- Add user configurable mailer support. GitLab issue #286.
- Use Toastr libary for screen messages.
- Reduce verbosity of some debug messages.
- New lineart transformation. Useful to increase the OCR accuracy on some kind
of documents.
- Make sure lookup selection widgets also trigger the metadata update
checkbox on change.
- Menu reorganization. The "About" menu has been renamed to "System". The
"Tools" and "Setup" sub menus, were moved from the "Profile" menu to the
"System" menu. The "Profile" menu has been renamed to "User".
- Usability improvements on small displays.
- Removal of the CONVERTER_LIBREOFFICE_PATH and CONVERTER_PDFTOPPM_PATH
settings. These setting have been consolidated into
CONVERTER_GRAPHICS_BACKEND_CONFIG.
- PDF compatibility improvements.
- Improve the documentation of the document creation API endpoint.
GitHub issue #255. Thanks to @lcerliani opening the issue.
- Libre Office conversion improvements. Give every libreoffice instance
its own separate $HOME directory. Additionally give every libreoffice
its own UserInstallation file in the $HOME directory. Works around
Libre Office issue: https://bugs.documentfoundation.org/show_bug.cgi?id=37531
Solves or affects GitLab issues #393 #258 #198 #175
- Document type-metadata type relationship. Add new UI method to switch between
required metadata and optional metadata for a document type. This new
method does not forces users to remove a metadata type before making the
switch and thus avoid deletion of existing metadata entries. GitLab issue #337.
- It is now possible to change the relationship between metadata types and
document types from either the metadata type list or document type list.
GitLab issue #373.
- Add support to search documents by their checksums.
- The document checksum field is now indexed for faster searches by checksum.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
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.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
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
===========================
* `GitHub issue #255 <https://github.com/mayan-edms/mayan-edms/issues/255>`_ Uploading a local file via api
* `GitLab issue #215 <https://gitlab.com/mayan-edms/mayan-edms/issues/215>`_ Download text contents
* `GitLab issue #286 <https://gitlab.com/mayan-edms/mayan-edms/issues/286>`_ User configurable mailer
* `GitLab issue #337 <https://gitlab.com/mayan-edms/mayan-edms/issues/337>`_ Better way to switch Optional to Required Metadata
* `GitLab issue #373 <https://gitlab.com/mayan-edms/mayan-edms/issues/373>`_ (feature request) Allow selecting document types for metadata
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -22,6 +22,7 @@ versions of the documentation contain the release notes for any later releases.
.. toctree::
:maxdepth: 1
2.4
2.3
2.2
2.1.11

View File

@@ -203,7 +203,7 @@ Mayan EDMS source is controlled with Git_.
The project is publicly accessible, hosted and can be cloned from **GitLab** using::
git clone https://gitlab.com/mayan-edms/mayan-edms.git
$ git clone https://gitlab.com/mayan-edms/mayan-edms.git
Git branch structure
@@ -235,14 +235,14 @@ Steps to deploy a development version
-------------------------------------
.. code-block:: bash
git clone https://gitlab.com/mayan-edms/mayan-edms.git
cd mayan-edms
git checkout development
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt
./manage.py initialsetup
./manage.py runserver
$ git clone https://gitlab.com/mayan-edms/mayan-edms.git
$ cd mayan-edms
$ git checkout development
$ virtualenv venv
$ source venv/bin/activate
$ pip install -r requirements.txt
$ ./manage.py initialsetup
$ ./manage.py runserver
Setting up a development version using Vagrant
@@ -254,36 +254,36 @@ Start and provision a machine using:
.. code-block:: bash
vagrant up development
$ vagrant up development
To launch a standalone development server
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: bash
vagrant ssh
vagrant@vagrant-ubuntu-trusty-32:~$ cd ~/mayan-edms/
vagrant@vagrant-ubuntu-trusty-32:~$ source venv/bin/activate
vagrant@vagrant-ubuntu-trusty-32:~$ ./manage.py runserver 0.0.0.0:8000
$ vagrant ssh
$ vagrant@vagrant-ubuntu-trusty-32:~$ cd ~/mayan-edms/
$ vagrant@vagrant-ubuntu-trusty-32:~$ source venv/bin/activate
$ vagrant@vagrant-ubuntu-trusty-32:~$ ./manage.py runserver 0.0.0.0:8000
To launch a development server with a celery worker and Redis as broker
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: bash
vagrant ssh
vagrant@vagrant-ubuntu-trusty-32:~$ cd ~/mayan-edms/
vagrant@vagrant-ubuntu-trusty-32:~$ source venv/bin/activate
vagrant@vagrant-ubuntu-trusty-32:~$ ./manage.py runserver 0.0.0.0:8000 --settings=mayan.settings.celery_redis
$ vagrant ssh
$ vagrant@vagrant-ubuntu-trusty-32:~$ cd ~/mayan-edms/
$ vagrant@vagrant-ubuntu-trusty-32:~$ source venv/bin/activate
$ vagrant@vagrant-ubuntu-trusty-32:~$ ./manage.py runserver 0.0.0.0:8000 --settings=mayan.settings.celery_redis
Then on a separate console launch a celery worker from the same provisioned Vagrant machine:
.. code-block:: bash
vagrant ssh
vagrant@vagrant-ubuntu-trusty-32:~$ cd ~/mayan-edms/
vagrant@vagrant-ubuntu-trusty-32:~$ source venv/bin/activate
vagrant@vagrant-ubuntu-trusty-32:~$ DJANGO_SETTINGS_MODULE='mayan.settings.celery_redis' celery -A mayan worker -l DEBUG -Q checkouts,mailing,uploads,converter,ocr,tools,indexing,metadata -Ofair -B
$ vagrant ssh
$ vagrant@vagrant-ubuntu-trusty-32:~$ cd ~/mayan-edms/
$ vagrant@vagrant-ubuntu-trusty-32:~$ source venv/bin/activate
$ vagrant@vagrant-ubuntu-trusty-32:~$ DJANGO_SETTINGS_MODULE='mayan.settings.celery_redis' celery -A mayan worker -l DEBUG -Q checkouts,mailing,uploads,converter,ocr,tools,indexing,metadata -Ofair -B
Contributing changes
@@ -361,12 +361,12 @@ The documentation is written in `reStructured Text`_ format, processed with
Sphinx_, and resides in the ``docs`` directory. In order to build it, you will
first need to install the documentation editing dependencies with::
pip install -r requirements/documentation.txt
$ pip install -r requirements/documentation.txt
Then, to build an HTML version of the documentation, run the following command
from the **docs** directory::
make livehtml
$ make docs_serve
The generated documentation can be viewed by browsing to http://127.0.0.1:8000
or by browsing to the ``docs/_build/html`` directory.
@@ -386,22 +386,18 @@ Source file package
This is the sequence of step used to produce an installable package:
1. Make sure there are no lingering packages from previous attempts::
1. Generate the packaged version (will produce dist/mayan-edms-x.y.z.tar.gz)::
rm dist -R
$ make sdist
2. Generate the packaged version (will produce dist/mayan-edms-x.y.z.tar.gz)::
2. Do a test install::
python setup.py sdist
3. Do a test install::
cd /tmp
virtualenv venv
source venv/bin/activate
pip install <path of the Git repository>/dist/mayan-edms-x.y.z.tar.gz
mayan-edms.py initialsetup
mayan-edms.py runserver
$ cd /tmp
$ virtualenv venv
$ source venv/bin/activate
$ pip install <path of the Git repository>/dist/mayan-edms-x.y.z.tar.gz
$ mayan-edms.py initialsetup
$ mayan-edms.py runserver
Wheel package
@@ -411,9 +407,9 @@ Wheel package
$ pip install -r requirements/development.txt
2. Create wheel package using the source file package (Until issue #99 of wheel is fixed: https://bitbucket.org/pypa/wheel/issue/99/cannot-exclude-directory)::
2. Create wheel package using the makefile::
$ pip wheel --no-index --no-deps --wheel-dir dist dist/mayan-edms-x.y.z.tar.gz
$ make wheel
3. Do a test install::
@@ -436,3 +432,43 @@ X.YaN # Alpha release
X.YbN # Beta release
X.YrcN # Release Candidate
X.Y # Final release
Release checklist
~~~~~~~~~~~~~~~~~
1. Synchronize translations::
$ make translations_pull
2. Compile translations::
$ make translations_compile
3. Write release notes.
4. Update changelog.
5. Update requirements version in `setup.py`
6. Bump version in `mayan/__init__.py`
7. Build source package and test::
$ make test_sdist_via_docker_ubuntu
8. Build wheel package and test::
$ make test_whell_via_docker_ubuntu
9. Tag version::
$ git tag -a vX.Y.Z -m "Version X.Y.Z"
10. Push tag upstream::
$ git push --tags
11. Build and upload a test release::
$ make release_test_via_docker_ubuntu
12. Build and upload a final release::
$ make release_via_docker_ubuntu

View File

@@ -2,110 +2,21 @@ Installation
============
The easiest way to use Mayan EDMS is by using the official Docker_ image.
Make sure Docker_ is properly installed and working before attempting to install
Make sure Docker is properly installed and working before attempting to install
Mayan EDMS.
With Docker properly installed, proceed to download the Mayan EDMS image using
the command:
.. code-block:: bash
docker pull mayanedms/mayanedms
After the image finishes downloading, initialize a Mayan EDMS container.
.. code-block:: bash
docker run --rm -v mayan_media:/var/lib/mayan \
-v mayan_settings:/etc/mayan mayanedms/mayanedms mayan:init
With initialization complete, launch the container. If another web server is
running on port 80 use a different port in the -p option, ie: -p 81:80.
.. code-block:: bash
docker run -d --name mayan-edms --restart=always -p 80:80 \
-v mayan_media:/var/lib/mayan -v mayan_settings:/etc/mayan \
mayanedms/mayanedms
Point your browser to 127.0.0.1 (or the alternate port chosen, ie: 127.0.0.1:81)
and use the automatically created admin account.
All files will be stored in the following two volumes:
- mayan_media
- mayan_settings
Stopping and starting
Hardware requirements
---------------------
To stop the container use::
docker stop mayan-edms
- 2 Gigabytes of RAM (1 Gigabyte if OCR is turned off).
- Multiple core CPU (64 bit, faster than 1 GHz recommended).
To start the container again::
Docker procedure
----------------
docker start mayan-edms
Configuring
-----------
To edit the settings file, check the physical location of the `mayan_settings`
volume using::
docker volume inspect mayan_settings
Which should produce an output similar to this one:
.. code-block:: bash
[
{
"Name": "mayan_settings",
"Driver": "local",
"Mountpoint": "/var/lib/docker/volumes/mayan_settings/_data",
"Labels": null,
"Scope": "local"
}
]
In this case the physical location of the `mayan_settings` volume is
`/var/lib/docker/volumes/mayan_settings/_data`. Edit the settings file with your
favorite editor::
sudo vi /var/lib/docker/volumes/mayan_settings/_data/local.py
Backups
-------
To backup the existing data, check the physical location of the `mayan_media`
volume using::
docker volume inspect mayan_media
Which should produce an output similar to this one:
.. code-block:: bash
[
{
"Name": "mayan_settings",
"Driver": "local",
"Mountpoint": "/var/lib/docker/volumes/mayan_media/_data",
"Labels": null,
"Scope": "local"
}
]
Only the `db.sqlite3` file and the `document_storage` folder need to be backed
up::
sudo tar -zcvf backup.tar.gz /var/lib/docker/volumes/mayan_media/_data/document_storage /var/lib/docker/volumes/mayan_media/_data/db.sqlite3
sudo chown `whoami` backup.tar.gz
Restore
-------
Uncompress the archive in the original docker volume using::
sudo tar -xvzf backup.tar.gz -C /
For the complete set of installation, configuration, upgrade, and backup
instructions visit the Mayan EDMS Docker Hub page at:
https://hub.docker.com/r/mayanedms/mayanedms/
.. _Docker: https://www.docker.com/

View File

@@ -10,3 +10,9 @@ the directory: ``/usr/share/mayan-edms/mayan/settings/local.py``.
For a list of all the configuration options, go to "Setup" then "Settings" on
your browser. This is also a good place to check if your overrided setting
option value in your ``local.py`` file is being interpreted correctly.
Settings can also be changed via environment variables by prepending the string
"MAYAN_" to the configuration name. For example, to change the number of documents
displayed per page (COMMON_PAGINATE_BY, by default 40), use::
MAYAN_COMMON_PAGINATE_BY=10