Compare commits

..

2 Commits

Author SHA1 Message Date
Roberto Rosario
bbcf7f53fb Change PCL conversion output format to PNG. Add special case for empty pages at the end of PCL documents. 2016-02-25 02:04:47 -04:00
Roberto Rosario
7e67a2384f Add PCL detection and rendering support. 2016-02-25 01:27:43 -04:00
6029 changed files with 173523 additions and 319615 deletions

View File

@@ -1,10 +0,0 @@
.git
.gitignore
HISTORY.md
mayan/media
db.sqlite*
docker
!docker/etc
!docker/entrypoint.sh
./.*
docs

View File

@@ -1,2 +0,0 @@
[flake8]
ignore = E501

39
.gitignore vendored
View File

@@ -3,29 +3,26 @@
*.pyo
*.sqlite
*.sqlite3
*egg-info*
.coverage
.coverage.tox*
.idea/
.tox/
.vagrant
_build/
/build/
coverage.xml
document_storage/
gpg_home/
htmlcov/
mayan/media/
mayan/media/document_cache/
mayan/settings/local.py
mayan/error.log
settings_local.py
static_collected/
/celerybeat-schedule
/fabfile_install
/dist/
document_storage/
/misc/mayan.geany
mayan/media/document_cache/
build/
_build/
gpg_home/
/mayan/media/static/
/venv/
/whoosh_index/
node_modules/
/fabfile_install
/venv/
.coverage
/dist/
.idea/
static_collected/
*egg-info*
mayan/settings/local.py
.vagrant
.tox/
coverage.xml
.coverage.tox*
htmlcov/

View File

@@ -1,82 +1,35 @@
stages:
- test
- build
job_docker_master:
stage: build
image: docker:latest
services:
- docker:dind
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
image: python:2.7
services:
- mysql
- postgres
before_script:
- apt-get update -qq
- apt-get install -qq python-dev gcc tesseract-ocr tesseract-ocr-deu unpaper ghostscript libjpeg-dev libpng-dev libtiff-dev poppler-utils libreoffice
variables:
POSTGRES_DB: "mayan_edms"
POSTGRES_PASSWORD: "postgres"
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
MYSQL_DATABASE: "mayan_edms"
test:mysql:
script:
- docker build --pull -t "$CI_REGISTRY_IMAGE" -f docker/Dockerfile .
- docker run --rm "$CI_REGISTRY_IMAGE" run-tests
- docker push "$CI_REGISTRY_IMAGE"
only:
- master
job_docker_other:
stage: build
image: docker:latest
services:
- docker:dind
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
script:
- docker build --pull -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" -f docker/Dockerfile .
- docker run --rm "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" run-tests
- docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG"
except:
- master
.test_base: &test_base
stage: test
image: ubuntu:16.04
cache:
paths:
- ~/.cache/pip/
- /var/cache/apt/archives/
before_script:
- apt-get -qq update
- apt-get install -qq locales
- echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale
- locale-gen en_US.UTF-8
- update-locale LANG=en_US.UTF-8
- export LC_ALL=en_US.UTF-8
- apt-get install -qq curl gcc ghostscript gpgv gnupg graphviz libjpeg-dev libmagic1 libpng-dev libtiff-dev poppler-utils libreoffice poppler-utils python-dev python-pip tesseract-ocr tesseract-ocr-deu
- pip install -r requirements/testing.txt
test-mysql:
<<: *test_base
variables:
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
MYSQL_DATABASE: "mayan_edms"
services:
- mysql:8.0.3
script:
- apt-get install -qq libmysqlclient-dev mysql-client
- pip install mysql-python
- mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD" -e "set global character_set_server=utf8mb4;"
- python manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci.db_mysql --nomigrations
- pip install -r requirements/testing.txt
- pip install -q mysql-python
- apt-get install -qq mysql-client
- mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD" -e "ALTER DATABASE $MYSQL_DATABASE CHARACTER SET utf8 COLLATE utf8_unicode_ci;"
- coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci.db_mysql --nomigrations
- bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN
tags:
- mysql
test-postgres:
<<: *test_base
variables:
POSTGRES_DB: "mayan_edms"
POSTGRES_PASSWORD: "postgres"
services:
- postgres
test:postgres:
script:
- apt-get install -qq libpq-dev
- pip install psycopg2
- python manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci.db_postgres --nomigrations
- pip install -r requirements/testing.txt
- pip install -q psycopg2
- coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci.db_postgres --nomigrations
- bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN
tags:
- postgres
test-sqlite:
<<: *test_base
test:sqlite:
script:
- python manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci --nomigrations
- pip install -r requirements/testing.txt
- coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci --nomigrations
- bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN

View File

@@ -1,5 +1,3 @@
dist: trusty
sudo: required
language: python
python:
- 2.7
@@ -10,7 +8,7 @@ env:
- DB=sqlite
before_install:
- sudo apt-get update -qq
- sudo apt-get install -qq python-dev python-pip gcc tesseract-ocr tesseract-ocr-deu ghostscript libjpeg-dev libpng-dev libtiff-dev poppler-utils libreoffice
- sudo apt-get install -qq python-dev gcc tesseract-ocr tesseract-ocr-deu unpaper ghostscript libjpeg-dev libpng-dev poppler-utils libreoffice
install:
- "pip install -r requirements/testing.txt"
- if [[ $DB == mysql ]]; then pip install -q mysql-python; fi
@@ -19,9 +17,9 @@ before_script:
- mysql -e 'create database mayan_edms;'
- psql -c 'create database mayan_edms;' -U postgres
script:
- if [[ $DB == mysql ]]; then coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.travis.db_mysql --nomigrations; fi
- if [[ $DB == postgres ]]; then coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.travis.db_postgres --nomigrations; fi
- if [[ $DB == sqlite ]]; then coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.base --nomigrations; fi
- if [[ $DB == mysql ]]; then coverage run manage.py runtests --settings=mayan.settings.testing.travis.db_mysql --nomigrations; fi
- if [[ $DB == postgres ]]; then coverage run manage.py runtests --settings=mayan.settings.testing.travis.db_postgres --nomigrations; fi
- if [[ $DB == sqlite ]]; then coverage run manage.py runtests --settings=mayan.settings.testing.base --nomigrations; fi
after_success:
- coveralls
branches:

View File

@@ -19,12 +19,6 @@ source_lang = en
source_file = mayan/apps/authentication/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.cabinets-2-0]
file_filter = mayan/apps/cabinets/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/cabinets/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.checkouts-2-0]
file_filter = mayan/apps/checkouts/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
@@ -67,12 +61,6 @@ source_lang = en
source_file = mayan/apps/document_indexing/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.document_parsing-2-0]
file_filter = mayan/apps/document_parsing/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/document_parsing/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.document_signatures-2-0]
file_filter = mayan/apps/document_signatures/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
@@ -97,6 +85,18 @@ source_lang = en
source_file = mayan/apps/events/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.folders-2-0]
file_filter = mayan/apps/folders/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/folders/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.installation-2-0]
file_filter = mayan/apps/installation/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/installation/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.linking-2-0]
file_filter = mayan/apps/linking/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
@@ -127,10 +127,10 @@ source_lang = en
source_file = mayan/apps/mirroring/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.motd-2-0]
file_filter = mayan/apps/motd/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.navigation-2-0]
file_filter = mayan/apps/navigation/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/motd/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/navigation/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.ocr-2-0]
@@ -164,9 +164,9 @@ source_file = mayan/apps/sources/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.statistics-2-0]
file_filter = mayan/apps/mayan_statistics/locale/<lang>/LC_MESSAGES/django.po
file_filter = mayan/apps/statistics/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/mayan_statistics/locale/en/LC_MESSAGES/django.po
source_file = mayan/apps/statistics/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.storage-2-0]
@@ -181,12 +181,6 @@ source_lang = en
source_file = mayan/apps/tags/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.task_manager-2-0]
file_filter = mayan/apps/task_manager/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/task_manager/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.user_management-2-0]
file_filter = mayan/apps/user_management/locale/<lang>/LC_MESSAGES/django.po
source_lang = en

View File

@@ -1,79 +0,0 @@
Contributing to Mayan EDMS
==========================
Issues
------
- Before submitting a new issue, check for **open issues** first and join the
discussion.
- If your issue is not attended in a while, **be patient**, the core team is
small and the codebase big.
- Try to reproduce the issue using a **separate, clean installation**, sometimes
the issue can be caused by an error in a configuration file and not with the
code itself.
- **Do not upload** sensitive, private or classified information or files with
your issue. If the issue is triggered by a user file, create a dummy file with the
same properties that can trigger the issue and upload that file instead.
- Add steps that trigger the issue in a **repeatable manner**.
- **Screenshots** go a long way in helping understand problems.
- The issue must be related to the code only, do not open issues for problems
with deployments, webservers, cloud providers, etc.
- Do not open issues asking for **support or consulting**.
Code
----
1. Complete and mail, or scan and email the corresponding Contributor Assignment Agreement: [Mayan EDMS Individual Contributor Assignment Agreement](http://mayan.readthedocs.io/en/latest/topics/caa_individual.rst) or [Mayan EDMS Entity Contributor Assignment Agreement](http://mayan.readthedocs.io/en/latest/topics/caa_entity.rst).
1. Fork [the repository](http://gitlab.com/mayan-edms/mayan-edms).
1. Choose the version for which you want to develop. The code is divided in the
following branches:
a. **master:** Current stable version.
a. **series/X.Y:** There will be a **series** branch for each major version
release (1.0, 2.0). The **master** branch will be in sync with the latest
**series** branch.
a. **development:** Unstable branch where the development for the next minor or
major release is happening.
a. **feature/X:** These are branches dealing with a specific bug or feature
that is not yet ready to be merged.
a. The **master** and **series** branches are stable and not braking changes
must be submitted or merged. The **development** and **feature** branches
are unstable and should not be used in production.
1. Start making your changes in your own separate branch.
1. Write a test which shows that the bug was fixed or that the feature works as
expected.
1. Sign your work. Your signature certifies your submission according to the
articles of the [Developer Certificate of Origin](https://gitlab.com/mayan-edms/mayan-edms/blob/master/DCO).
The sign-off should be in the form:
````
Signed-off-by: John Doe <john.doe@example.com>
````
You must use your real name and email, pseudonyms or anonymous contributions
are not allowed. If you set your user.name and user.email git configs, you can
sign your commit automatically with git commit -s.
1. Submit a merge request for your changes.
Feature requests
----------------
- Opening issues to start a discussion around a new feature or idea are welcomed.
- Be explicit about your idea and provide a simple scenario, others need to really
understand the concepts behind your idea if it is to be implemented.
- Be realistic in your expectation and scope of your idea.
Translations
------------
- Translations are handled using [Transifex](https://www.transifex.com/rosarior/mayan-edms/).
- Join an existing team for the language to which you wish to contribute,
if there is no team for your language, request for one to be created.
- Don't request the creation of a new language and expect others to do all the
work. If you request the creation of a new language try to do some of the
translation. Language teams that don't see activity for a while are deleted.
Code style
----------
- Refer to the [Development](http://mayan.readthedocs.io/en/latest/topics/development.html)
chapter for information and examples of the code style.

36
DCO
View File

@@ -1,36 +0,0 @@
Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
660 York Street, Suite 102,
San Francisco, CA 94110 USA
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,3 @@
include README.md LICENSE HISTORY.rst mayan/LICENSE
recursive-include mayan/apps *.txt *.html *.css *.ico *.png *.jpg *.js *.po *.mo *.ttf *.woff *.woff2 *.gif *.eot *.svg *.doc *.pdf *.tiff *.sig *.asc *.gpg *.zip package.json
include README.rst LICENSE HISTORY.rst
recursive-include mayan *.txt *.html *.css *.ico *.png *.jpg *.js *.po *.mo *.ttf *.woff *.woff2 LICENSE
global-exclude mayan/settings/local.py mayan/settings/travis/* mayan/media/*

326
Makefile
View File

@@ -1,326 +0,0 @@
.PHONY: clean-pyc clean-build
help: docker-help
@echo
@echo "**** Main makefile ****"
@echo "clean-build - Remove build artifacts."
@echo "clean-pyc - Remove Python artifacts."
@echo "clean - Remove Python and build artifacts."
@echo "generate-setup - Create and updated setup.py"
@echo "check-readme - Checks validity of the README.rst file for PyPI publication."
@echo "check-missing_migrations - Make sure all models have proper migrations."
@echo "test-all - Run all tests."
@echo "test MODULE=<python module name> - Run tests for a single app, module or test class."
@echo "test-with-postgres-all - Run all tests against a Postgres database container."
@echo "test-postgres MODULE=<python module name> - Run tests for a single app, module or test class against a Postgres database container."
@echo "test-with-mysql-all - Run all tests against a MySQL database container."
@echo "test-mysql MODULE=<python module name> - Run tests for a single app, module or test class against a MySQL database container."
@echo "test-with-oracle-all - Run all tests against a Oracle database container."
@echo "test-oracle MODULE=<python module name> - Run tests for a single app, module or test class against a Oracle database container."
@echo "docs-serve - Run the livehtml documentation generator."
@echo "translations-make - Refresh all translation files."
@echo "translations-compile - Compile all translation files."
@echo "translations-push - Upload all translation files to Transifex."
@echo "translations-pull - Download all translation files from Transifex."
@echo "sdist - Build the source distribution package."
@echo "wheel - Build the wheel distribution package."
@echo "release - Package (sdist and wheel) and upload a release."
@echo "test-release - Package (sdist and wheel) and upload to the PyPI test server."
@echo "release-test-via-docker-ubuntu - Package (sdist and wheel) and upload to the PyPI test server using an Ubuntu Docker builder."
@echo "release-via-docker-ubuntu - Package (sdist and wheel) and upload to PyPI using an Ubuntu Docker builder."
@echo "test-sdist-via-docker-ubuntu - Make an sdist packange and test it using an Ubuntu Docker container."
@echo "test-wheel-via-docker-ubuntu - Make a wheel package and test it using an Ubuntu Docker container."
@echo "runserver - Run the development server."
@echo "runserver_plus - Run the Django extension's development server."
@echo "shell_plus - Run the shell_plus command."
@echo "test-with-docker-services-on - Launch and initialize production-like services using Docker (Postgres and Redis)."
@echo "test-with-docker-services-off - Stop and delete the Docker production-like services."
@echo "test-with-docker-frontend - Launch a front end instance that uses the production-like services."
@echo "test-with-docker-worker - Launch a worker instance that uses the production-like services."
@echo "docker-mysql-on - Launch and initialize a MySQL Docker container."
@echo "docker-mysql-off - Stop and delete the MySQL Docker container."
@echo "docker-postgres-on - Launch and initialize a PostgreSQL Docker container."
@echo "docker-postgres-off - Stop and delete the PostgreSQL Docker container."
@echo "safety-check - Run a package safety check."
# Cleaning
clean: clean-build clean-pyc
clean-build:
rm -fr build/
rm -fr dist/
rm -fr *.egg-info
clean-pyc:
find . -name '*.pyc' -exec rm -f {} +
find . -name '*.pyo' -exec rm -f {} +
find . -name '*~' -exec rm -f {} +
# Testing
test:
./manage.py test $(MODULE) --settings=mayan.settings.testing.development --nomigrations
test-all:
./manage.py test --mayan-apps --settings=mayan.settings.testing.development --nomigrations
test-launch-postgres:
@docker rm -f test-postgres || true
@docker volume rm test-postgres || true
docker run -d --name test-postgres -p 5432:5432 -v test-postgres:/var/lib/postgresql/data healthcheck/postgres
sudo apt-get install -qq libpq-dev
pip install psycopg2
while ! docker inspect --format='{{json .State.Health}}' test-postgres|grep 'Status":"healthy"'; do sleep 1; done
test-with-postgres: test-launch-postgres
./manage.py test $(MODULE) --settings=mayan.settings.testing.docker.db_postgres --nomigrations
@docker rm -f test-postgres || true
@docker volume rm test-postgres || true
test-with-postgres-all: test-launch-postgres
./manage.py test --mayan-apps --settings=mayan.settings.testing.docker.db_postgres --nomigrations
@docker rm -f test-postgres || true
@docker volume rm test-postgres || true
test-launch-mysql:
@docker rm -f test-mysql || true
@docker volume rm test-mysql || true
docker run -d --name test-mysql -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=True -e MYSQL_DATABASE=mayan -v test-mysql:/var/lib/mysql healthcheck/mysql
sudo apt-get install -qq libmysqlclient-dev mysql-client
pip install mysql-python
while ! docker inspect --format='{{json .State.Health}}' test-mysql|grep 'Status":"healthy"'; do sleep 1; done
mysql -h 127.0.0.1 -P 3306 -uroot -e "set global character_set_server=utf8mb4;"
test-with-mysql: test-launch-mysql
./manage.py test $(MODULE) --settings=mayan.settings.testing.docker.db_mysql --nomigrations
@docker rm -f test-mysql || true
@docker volume rm test-mysql || true
test-with-mysql-all: test-launch-mysql
./manage.py test --mayan-apps --settings=mayan.settings.testing.docker.db_mysql --nomigrations
@docker rm -f test-mysql || true
@docker volume rm test-mysql || true
test-launch-oracle:
@docker rm -f test-oracle || true
@docker volume rm test-oracle || true
docker run -d --name test-oracle -p 49160:22 -p 49161:1521 -e ORACLE_ALLOW_REMOTE=true -v test-oracle:/u01/app/oracle wnameless/oracle-xe-11g
# https://gist.github.com/kimus/10012910
pip install cx_Oracle
while ! nc -z 127.0.0.1 49161; do sleep 1; done
sleep 10
test-with-oracle: test-launch-oracle
./manage.py test $(MODULE) --settings=mayan.settings.testing.docker.db_oracle --nomigrations
@docker rm -f test-oracle || true
@docker volume rm test-oracle || true
test-with-oracle-all: test-launch-oracle
./manage.py test --mayan-apps --settings=mayan.settings.testing.docker.db_oracle --nomigrations
@docker rm -f test-oracle || true
@docker volume rm test-oracle || true
# Documentation
docs-serve:
cd docs;make livehtml
# Translations
translations_make:
contrib/scripts/process_messages.py -m
translations_compile:
contrib/scripts/process_messages.py -c
translations_push:
tx push -s
translations_pull:
tx pull -f
generate-setup:
@./generate_setup.py
@echo "Complete."
# Releases
test-release: clean wheel
twine upload dist/* -r testpypi
@echo "Test with: pip install -i https://testpypi.python.org/pypi mayan-edms"
release: clean wheel
twine upload dist/* -r pypi
sdist: clean
python setup.py sdist
ls -l dist
wheel: clean sdist
pip wheel --no-index --no-deps --wheel-dir dist dist/*.tar.gz
ls -l dist
release-test-via-docker-ubuntu:
docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source ubuntu:16.04 /bin/bash -c "\
echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale && \
locale-gen en_US.UTF-8 && \
update-locale LANG=en_US.UTF-8 && \
export LC_ALL=en_US.UTF-8 && \
cp -r /host_source/* . && \
apt-get update && \
apt-get install make python-pip -y && \
pip install -r requirements/build.txt && \
cp -r /host_home/.pypirc ~/.pypirc && \
make test-release"
release-via-docker-ubuntu:
docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source ubuntu:16.04 /bin/bash -c "\
echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale && \
locale-gen en_US.UTF-8 && \
update-locale LANG=en_US.UTF-8 && \
export LC_ALL=en_US.UTF-8 && \
cp -r /host_source/* . && \
apt-get update && \
apt-get install make python-pip -y && \
pip install -r requirements/build.txt && \
cp -r /host_home/.pypirc ~/.pypirc && \
make release"
test-sdist-via-docker-ubuntu:
docker run --rm --name mayan_sdist_test -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source ubuntu:16.04 /bin/bash -c "\
cp -r /host_source/* . && \
echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale && \
locale-gen en_US.UTF-8 && \
update-locale LANG=en_US.UTF-8 && \
export LC_ALL=en_US.UTF-8 && \
apt-get update && \
apt-get install make python-pip libreoffice tesseract-ocr tesseract-ocr-deu poppler-utils -y && \
pip install -r requirements/development.txt && \
make sdist-test-suit \
"
test-wheel-via-docker-ubuntu:
docker run --rm --name mayan_wheel_test -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source ubuntu:16.04 /bin/bash -c "\
cp -r /host_source/* . && \
echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale && \
locale-gen en_US.UTF-8 && \
update-locale LANG=en_US.UTF-8 && \
export LC_ALL=en_US.UTF-8 && \
apt-get update && \
apt-get install make python-pip libreoffice tesseract-ocr tesseract-ocr-deu poppler-utils -y && \
pip install -r requirements/development.txt && \
make wheel-test-suit \
"
sdist-test-suit: sdist
rm -f -R _virtualenv
virtualenv _virtualenv
sh -c '\
. _virtualenv/bin/activate; \
pip install `ls dist/*.gz`; \
_virtualenv/bin/mayan-edms.py initialsetup; \
pip install mock==2.0.0; \
_virtualenv/bin/mayan-edms.py test --mayan-apps \
'
wheel-test-suit: wheel
rm -f -R _virtualenv
virtualenv _virtualenv
sh -c '\
. _virtualenv/bin/activate; \
pip install `ls dist/*.whl`; \
_virtualenv/bin/mayan-edms.py initialsetup; \
pip install mock==2.0.0; \
_virtualenv/bin/mayan-edms.py test --mayan-apps \
'
# Dev server
runserver:
./manage.py runserver --settings=mayan.settings.development $(ADDRPORT)
runserver_plus:
./manage.py runserver_plus --settings=mayan.settings.development $(ADDRPORT)
shell_plus:
./manage.py shell_plus --settings=mayan.settings.development
test-with-docker-services-on:
docker run -d --name redis -p 6379:6379 redis
docker run -d --name postgres -p 5432:5432 postgres
while ! nc -z 127.0.0.1 6379; do sleep 1; done
while ! nc -z 127.0.0.1 5432; do sleep 1; done
sleep 4
./manage.py initialsetup --settings=mayan.settings.staging.docker
test-with-docker-services-off:
docker stop postgres redis
docker rm postgres redis
test-with-docker-frontend:
./manage.py runserver --settings=mayan.settings.staging.docker
test-with-docker-worker:
./manage.py celery worker --settings=mayan.settings.staging.docker -B -l INFO -O fair
docker-mysql-on:
docker run -d --name mysql -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=True -e MYSQL_DATABASE=mayan_edms mysql
while ! nc -z 127.0.0.1 3306; do sleep 1; done
docker-mysql-off:
docker stop mysql
docker rm mysql
docker-postgres-on:
docker run -d --name postgres -p 5432:5432 postgres
while ! nc -z 127.0.0.1 5432; do sleep 1; done
docker-postgres-off:
docker stop postgres
docker rm postgres
# Security
safety-check:
safety check
# Other
find-gitignores:
@export FIND_GITIGNORES=`find -name '.gitignore'| wc -l`; \
if [ $${FIND_GITIGNORES} -gt 1 ] ;then echo "More than one .gitignore found."; fi
build:
docker rm -f mayan-edms-build || true && \
docker run --rm --name mayan-edms-build -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source python:2-alpine3.7 /bin/busybox sh -c "\
rm /host_source/dist -R || true && \
mkdir /host_source/dist || true && \
export LC_ALL=en_US.UTF-8 && \
cp -r /host_source/* . && \
apk update && \
apk add make && \
pip install -r requirements/build.txt && \
cp -r /host_home/.pypirc ~/.pypirc && \
make wheel && \
cp dist/* /host_source/dist/"
check-readme:
python setup.py check -r -s
check-missing-migrations:
./manage.py makemigrations --dry-run --noinput --check
include docker/Makefile

View File

@@ -1,74 +0,0 @@
[![pypi][pypi]][pypi-url]
[![builds][builds]][builds-url]
[![coverage][cover]][cover-url]
![python][python]
![license][license]
[![Docker pulls](https://img.shields.io/docker/pulls/mayanedms/mayanedms.svg?maxAge=3600)](https://hub.docker.com/r/mayanedms/mayanedms/)
[![Docker Stars](https://img.shields.io/docker/stars/mayanedms/mayanedms.svg?maxAge=3600)](https://hub.docker.com/r/mayanedms/mayanedms/)
[![Docker layers](https://images.microbadger.com/badges/image/mayanedms/mayanedms.svg)](https://microbadger.com/images/mayanedms/mayanedms)
[pypi]: http://img.shields.io/pypi/v/mayan-edms.svg
[pypi-url]: http://badge.fury.io/py/mayan-edms
[builds]: https://gitlab.com/mayan-edms/mayan-edms/badges/master/build.svg
[builds-url]: https://gitlab.com/mayan-edms/mayan-edms/pipelines
[cover]: https://codecov.io/gitlab/mayan-edms/mayan-edms/coverage.svg?branch=master
[cover-url]: https://codecov.io/gitlab/mayan-edms/mayan-edms?branch=master
[python]: https://img.shields.io/pypi/pyversions/mayan-edms.svg
[python-url]: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat
[license]: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat
[license-url]: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat
<div align="center">
<a href="http://www.mayan-edms.com">
<img width="200" heigth="200" src="https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/mayan_logo.png">
</a>
<br>
<br>
<p>
Mayan EDMS is a document management system. Its main purpose is to store,
introspect, and categorize files, with a strong emphasis on preserving the
contextual and business information of documents. It can also OCR, preview,
label, sign, send, and receive thoses files. Other features of interest
are its workflow system, role based access control, and REST API.
<p>
<p align="center">
<img width="400" src="https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/overview.gif">
</p>
</div>
<h2 align="center">Installation</h2>
The easiest way to use Mayan EDMS is by using the official
[Docker](https://www.docker.com/) image. Make sure Docker is properly installed
and working before attempting to install Mayan EDMS.
For the complete set of installation instructions visit the Mayan EDMS documentation
at: http://mayan.readthedocs.io/en/latest/topics/installation.html
<h2 align="center">Hardware requirements</h2>
- 2 Gigabytes of RAM (1 Gigabyte if OCR is turned off).
- Multiple core CPU (64 bit, faster than 1 GHz recommended).
<h2 align="center">Important links</h2>
- [Homepage](http://www.mayan-edms.com)
- [Videos](https://www.youtube.com/channel/UCJOOXHP1MJ9lVA7d8ZTlHPw)
- [Documentation](http://mayan.readthedocs.io/en/stable/)
- [Paid support](http://www.mayan-edms.com/providers/)
- [Roadmap](https://gitlab.com/mayan-edms/mayan-edms/wikis/roadmap)
- [Contributing](https://gitlab.com/mayan-edms/mayan-edms/blob/master/CONTRIBUTING.md)
- [Community forum](https://groups.google.com/forum/#!forum/mayan-edms)
- [Community forum archive](http://mayan-edms.1003.x6.nabble.com/)
- [Source code, issues, bugs](https://gitlab.com/mayan-edms/mayan-edms)
- [Plug-ins, other related projects](https://gitlab.com/mayan-edms/)
- [Translations](https://www.transifex.com/rosarior/mayan-edms/)

View File

@@ -1,62 +1,79 @@
|pypi| |builds| |coverage| |python| |license| |docker_pulls| |docker_stars| |docker_layers|
|Build Status| |Coverage badge| |PyPI badge| |Installs badge| |License badge|
|Logo|
Description
-----------
Free Open Source Electronic Document Management System.
`Website`_
`Video demostration`_
`Documentation`_
`Translations`_
`Mailing list (via Google Groups)`_
|Animation|
Support
-------
Help support further improvements and development by donating at: https://www.patreon.com/siloraptor
License
-------
This project is open sourced under `Apache 2.0 License`_.
Installation
------------
To install **Mayan EDMS**, simply do:
.. code-block:: bash
$ virtualenv venv
$ source venv/bin/activate
$ pip install mayan-edms
$ mayan-edms.py initialsetup
$ mayan-edms.py runserver
Point your browser to 127.0.0.1:8000 and use the automatically created admin
account.
Contribute
----------
- Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.
- Fork `the repository`_ on GitLab to start making your changes to the **development** branch (or branch off of it).
- Write a test which shows that the bug was fixed or that the feature works as expected.
- Add yourself to the `contributors file`_.
- Send a merge request.
.. image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/mayan_logo.png
:align: center
:width: 200
:height: 200
.. _Website: http://www.mayan-edms.com
.. _Video demostration: http://bit.ly/pADNXv
.. _Documentation: http://readthedocs.org/docs/mayan/en/latest/
.. _Translations: https://www.transifex.com/projects/p/mayan-edms/
.. _Mailing list (via Google Groups): http://groups.google.com/group/mayan-edms
.. _Apache 2.0 License: https://www.apache.org/licenses/LICENSE-2.0.txt
.. _`the repository`: http://gitlab.com/mayan-edms/mayan-edms
.. _`contributors file`: https://gitlab.com/mayan-edms/mayan-edms/blob/master/docs/topics/contributors.rst
Mayan EDMS is a document management system. Its main purpose is to store,
introspect, and categorize files, with a strong emphasis on preserving the
contextual and business information of documents. It can also OCR, preview,
label, sign, send, and receive thoses files. Other features of interest
are its workflow system, role based access control, and REST API.
.. image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/overview.gif
:align: center
:width: 300
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
Mayan EDMS.
For the complete set of installation instructions visit the Mayan EDMS documentation
at: http://mayan.readthedocs.io/en/latest/topics/installation.html
.. _Docker: https://www.docker.com/
Hardware requirements
- 2 Gigabytes of RAM (1 Gigabyte if OCR is turned off).
- Multiple core CPU (64 bit, faster than 1 GHz recommended).
Important links
- `Homepage <http://www.mayan-edms.com>`__
- `Videos <https://www.youtube.com/channel/UCJOOXHP1MJ9lVA7d8ZTlHPw>`__
- `Documentation <http://mayan.readthedocs.io/en/stable/>`__
- `Paid support <http://www.mayan-edms.com/providers/>`__
- `Roadmap <https://gitlab.com/mayan-edms/mayan-edms/wikis/roadmap>`__
- `Contributing <https://gitlab.com/mayan-edms/mayan-edms/blob/master/CONTRIBUTING.md>`__
- `Community forum <https://groups.google.com/forum/#!forum/mayan-edms>`__
- `Community forum archive <http://mayan-edms.1003.x6.nabble.com/>`__
- `Source code, issues, bugs <https://gitlab.com/mayan-edms/mayan-edms>`__
- `Plug-ins, other related projects <https://gitlab.com/mayan-edms/>`__
- `Translations <https://www.transifex.com/rosarior/mayan-edms/>`__
.. |pypi| image:: http://img.shields.io/pypi/v/mayan-edms.svg
.. |Build Status| image:: https://gitlab.com/ci/projects/6169/status.png?ref=master
:target: https://gitlab.com/ci/projects/6169?ref=master
.. |Logo| image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/mayan_logo.png
.. |Animation| image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/overview.gif
.. |Installs badge| image:: http://img.shields.io/pypi/dm/mayan-edms.svg?style=flat
:target: https://crate.io/packages/mayan-edms/
.. |PyPI badge| image:: http://img.shields.io/pypi/v/mayan-edms.svg?style=flat
:target: http://badge.fury.io/py/mayan-edms
.. |builds| image:: https://gitlab.com/mayan-edms/mayan-edms/badges/master/build.svg
:target: https://gitlab.com/mayan-edms/mayan-edms/pipelines
.. |coverage| image:: https://codecov.io/gitlab/mayan-edms/mayan-edms/coverage.svg?branch=master
.. |License badge| image:: http://img.shields.io/badge/license-Apache%202.0-green.svg?style=flat
.. |Analytics| image:: https://ga-beacon.appspot.com/UA-52965619-2/mayan-edms/readme?pixel
.. |Coverage badge| image:: https://codecov.io/gitlab/mayan-edms/mayan-edms/coverage.svg?branch=master
:target: https://codecov.io/gitlab/mayan-edms/mayan-edms?branch=master
.. |python| image:: https://img.shields.io/pypi/pyversions/mayan-edms.svg
.. |license| image:: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat
.. |docker_pulls| image:: https://img.shields.io/docker/pulls/mayanedms/mayanedms.svg?maxAge=3600
:target: https://hub.docker.com/r/mayanedms/mayanedms/
.. |docker_stars| image:: https://img.shields.io/docker/stars/mayanedms/mayanedms.svg?maxAge=3600
:target: https://hub.docker.com/r/mayanedms/mayanedms/
.. |docker_layers| image:: https://images.microbadger.com/badges/image/mayanedms/mayanedms.svg
:target: https://microbadger.com/images/mayanedms/mayanedms
|Analytics|

33
Vagrantfile vendored Normal file
View File

@@ -0,0 +1,33 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.provider :lxc do |v, override|
override.vm.box = "fgrehm/trusty64-lxc"
end
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "1024"]
end
# Development box
config.vm.define "development", autostart: false do |development|
development.vm.network "forwarded_port", guest: 8000, host: 8000
development.vm.synced_folder ".", "/mayan-edms-repository"
development.vm.provision :shell, :path => "contrib/scripts/install/development.sh", privileged: false
development.vm.provision "file", destination: "/home/vagrant/mayan-edms/mayan/settings/celery_redis.py", source: "contrib/settings/celery_redis.py"
development.vm.provision "file", destination: "/home/vagrant/mayan-edms/mayan_edms_worker.sh", source: "contrib/misc/mayan_edms_worker.sh"
end
# Production box
config.vm.define "production", autostart: false do |production|
production.vm.network "forwarded_port", guest: 80, host: 8080
production.vm.provision :shell, :path => "contrib/scripts/install/production.sh", privileged: true
end
end

View File

@@ -0,0 +1,3 @@
#!/bin/sh
DJANGO_SETTINGS_MODULE='mayan.settings.celery_redis' celery -A mayan worker -l DEBUG -Ofair -B

22
contrib/nginx/mayan Normal file
View File

@@ -0,0 +1,22 @@
server {
listen 80;
server_name localhost;
location / {
include uwsgi_params;
uwsgi_pass unix:/usr/share/mayan-edms/uwsgi.sock;
client_max_body_size 30M; # Increse if your plan to upload bigger documents
proxy_read_timeout 30s; # Increase if your document uploads take more than 30 seconds
}
location /static {
alias /usr/share/mayan-edms/mayan/media/static;
expires 1h;
}
location /favicon.ico {
alias /usr/share/mayan-edms/mayan/media/static/appearance/images/favicon.ico;
expires 1h;
}
}

View File

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

1
contrib/scripts/PEP8_check.sh Executable file
View File

@@ -0,0 +1 @@
flake8 --ignore=E501 mayan/apps | grep -v "F401 'models' imported but unused" | grep -v "F811 redefinition of unused 'models'"| grep -v "F401 'db' imported but unused" | grep -v "F812 list comprehension redefines 'user_id'" | grep -v "F812 list comprehension redefines 'document_id'" |less

View File

@@ -1,8 +0,0 @@
#!/bin/sh
apt-get update
apt-get install -y --no-install-recommends tesseract-ocr-deu
pip install -r $DOCKER_ROOT/requirements-testing.txt
mayan-edms.py test --mayan-apps --settings=mayan.settings.testing

View File

@@ -18,7 +18,7 @@ sudo apt-get -qq update
sudo apt-get -y upgrade
echo -e "\n -> Installing core binaries \n"
sudo apt-get -y install git-core python-virtualenv gcc python-dev libjpeg-dev libpng-dev libtiff-dev tesseract-ocr poppler-utils libreoffice
sudo apt-get -y install git-core python-virtualenv gcc python-dev libjpeg-dev libpng-dev libtiff-dev tesseract-ocr poppler-utils unpaper libreoffice
echo -e "\n -> Cloning development branch of repository \n"
git clone /mayan-edms-repository/ $INSTALLATION_DIRECTORY

View File

@@ -20,7 +20,7 @@ apt-get -qq update
apt-get -y upgrade
echo -e "\n -> Installing core binaries \n"
apt-get install nginx supervisor redis-server postgresql libpq-dev libjpeg-dev libmagic1 libpng-dev libreoffice libtiff-dev gcc ghostscript gpgv python-dev python-virtualenv tesseract-ocr poppler-utils -y
apt-get install nginx supervisor redis-server postgresql libpq-dev libjpeg-dev libmagic1 libpng-dev libreoffice libtiff-dev gcc ghostscript gpgv python-dev python-virtualenv tesseract-ocr unpaper poppler-utils -y
echo -e "\n -> Setting up virtualenv \n"
rm -f ${INSTALLATION_DIRECTORY}

4
contrib/scripts/make_dists.sh Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/sh
python setup.py sdist
pip wheel --no-index --no-deps --wheel-dir dist dist/*.tar.gz

View File

@@ -0,0 +1,3 @@
#!/bin/sh
find 'fabfile' -depth -name '*.pyc' -exec rm {} \;
tar -czvf contrib/fabfile.tar.gz fabfile

View File

@@ -4,23 +4,24 @@ import optparse
import sh
APP_LIST = (
'acls', 'appearance', 'authentication', 'cabinets', 'checkouts', 'common',
'acls', 'appearance', 'authentication', 'checkouts', 'common',
'converter', 'django_gpg', 'document_comments', 'document_indexing',
'document_parsing', 'document_signatures', 'document_states', 'documents',
'dynamic_search', 'events', 'linking', 'lock_manager', 'mayan_statistics',
'mailer', 'metadata', 'mirroring', 'motd', 'navigation', 'ocr', 'permissions',
'rest_api', 'smart_settings', 'sources', 'storage', 'tags', 'task_manager',
'document_signatures', 'document_states', 'documents', 'dynamic_search',
'events', 'folders', 'installation', 'linking', 'lock_manager', 'mailer',
'metadata', 'mirroring', 'navigation', 'ocr', 'permissions', 'rest_api',
'smart_settings', 'sources', 'statistics', 'storage', 'tags',
'user_management'
)
LANGUAGE_LIST = (
'ar', 'bg', 'bs_BA', 'da', 'de_DE', 'en', 'es', 'fa', 'fr', 'hu', 'id',
'it', 'nl_NL', 'pl', 'pt', 'pt_BR', 'ro_RO', 'ru', 'sl_SI', 'tr_TR',
'vi_VN', 'zh_CN',
'it', 'nl_NL', 'pl', 'pt', 'pt_BR', 'ro_RO', 'ru', 'sl_SI', 'vi_VN',
'zh_CN',
)
# Inactive translations
# 'de_CH', 'hr_HR', 'lv', 'nb', 'sq', 'tr_TR', 'zh_TW'
makemessages = sh.Command('django-admin.py')
makemessages = makemessages.bake('makemessages')

View File

@@ -1,103 +0,0 @@
#!/usr/bin/env python
import os
BASE_PATH = 'mayan/apps'
def print_views_summary(module_filename):
with open(module_filename) as file_object:
print ' module:', module_filename
count_class_based_views = 0
count_function_based_views = 0
for line in file_object:
if line.startswith('class') and 'View' in line:
count_class_based_views += 1
if line.startswith('def') and 'request' in line:
count_function_based_views += 1
print ' class based views: {}'.format(count_class_based_views)
print ' function based views: {}'.format(count_function_based_views)
return count_class_based_views, count_function_based_views
def print_tests_summary(module_filename):
with open(module_filename) as file_object:
print ' module:', module_filename
count_tests = 0
for line in file_object:
if line.startswith(' def test'):
count_tests += 1
print ' tests: {}'.format(count_tests)
return count_tests
if __name__ == '__main__':
count_totals = {
'Apps': 0,
'Class based views': 0,
'Function based views': 0,
'Class based API views': 0,
'Function based API views': 0,
'Tests': 0,
}
for app_name in sorted(os.listdir(BASE_PATH)):
if app_name != '__init__.py':
count_totals['Apps'] += 1
print '\n\nApp name: {}'.format(app_name)
app_path = os.path.join(BASE_PATH, app_name)
print '\n Views'
try:
module_filename = os.path.join(app_path, 'views.py')
count_class_based_views, count_function_based_views = print_views_summary(module_filename=module_filename)
count_totals['Class based views'] += count_class_based_views
count_totals['Function based views'] += count_function_based_views
except IOError:
# Check for multiple view files inside a view directory
try:
module_path = os.path.join(app_path, 'views')
for module_name in os.listdir(module_path):
if not module_name.startswith('__init__.py') and not module_name.endswith('.pyc'):
module_filename = os.path.join(module_path, module_name)
count_class_based_views, count_function_based_views = print_views_summary(module_filename=module_filename)
count_totals['Class based views'] += count_class_based_views
count_totals['Function based views'] += count_function_based_views
except OSError:
# No views directory, skip app
print ' No views'
print '\n API Views'
try:
module_filename = os.path.join(app_path, 'api_views.py')
count_class_based_views, count_function_based_views = print_views_summary(module_filename=module_filename)
count_totals['Class based API views'] += count_class_based_views
count_totals['Function based API views'] += count_function_based_views
except IOError:
# No API views directory, skip app
print ' No API views'
print '\n Tests'
module_path = os.path.join(app_path, 'tests')
try:
for module_name in os.listdir(module_path):
if not module_name.startswith('__init__.py') and not module_name.endswith('.pyc'):
module_filename = os.path.join(module_path, module_name)
if module_name.startswith('test'):
count_tests = print_tests_summary(module_filename=module_filename)
count_totals['Tests'] += count_tests
except OSError:
# No tests directory, skip app
print ' No tests'
print '-' * 10
print 'Totals:'
for key, value in count_totals.items():
print ' {}: {}'.format(key, value)

View File

@@ -0,0 +1,5 @@
from .local import *
CELERY_ALWAYS_EAGER = False
BROKER_URL = 'redis://127.0.0.1:6379/0'
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/0'

View File

@@ -1,64 +0,0 @@
from __future__ import absolute_import
import ldap
from django_auth_ldap.config import LDAPSearch
from .base import * # NOQA
from django.contrib.auth import get_user_model
SECRET_KEY = '<your secret key>'
# makes sure this works in Active Directory
ldap.set_option(ldap.OPT_REFERRALS, 0)
# This is the default, but I like to be explicit.
AUTH_LDAP_ALWAYS_UPDATE_USER = True
LDAP_USER_AUTO_CREATION = "False"
LDAP_URL = "ldap://<your ldap server IP>:389/"
LDAP_BASE_DN = "dc=paramatrix,dc=co,dc=in"
LDAP_ADDITIONAL_USER_DN = "dc=people"
LDAP_ADMIN_DN = ""
LDAP_PASSWORD = ""
AUTH_LDAP_SERVER_URI = LDAP_URL
AUTH_LDAP_BIND_DN = LDAP_ADMIN_DN
AUTH_LDAP_BIND_PASSWORD = LDAP_PASSWORD
AUTH_LDAP_USER_SEARCH = LDAPSearch(
'%s,%s' % (LDAP_ADDITIONAL_USER_DN, LDAP_BASE_DN),
ldap.SCOPE_SUBTREE, '(uid=%(user)s)'
)
AUTH_LDAP_USER_ATTR_MAP = {
'first_name': 'cn',
'last_name': 'sn',
'email': 'mail'
}
AUTHENTICATION_BACKENDS = (
'django_auth_ldap.backend.LDAPBackend',
'mayan.settings.settings_local.EmailOrUsernameModelBackend',
)
class EmailOrUsernameModelBackend(object):
"""
This is a ModelBacked that allows authentication with either a username or an email address.
"""
def authenticate(self, username=None, password=None):
if '@' in username:
kwargs = {'email': username}
else:
kwargs = {'username': username}
try:
user = get_user_model().objects.get(**kwargs)
if user.check_password(password):
return user
except get_user_model().DoesNotExist:
return None
def get_user(self, username):
try:
return get_user_model().objects.get(pk=username)
except get_user_model().DoesNotExist:
return None

View File

@@ -0,0 +1,26 @@
[program:mayan-worker]
command = /usr/share/mayan-edms/bin/python /usr/share/mayan-edms/bin/mayan-edms.py celery --settings=mayan.settings.production worker -Ofair -l ERROR
directory = /usr/share/mayan-edms
user = www-data
stdout_logfile = /var/log/mayan/worker-stdout.log
stderr_logfile = /var/log/mayan/worker-stderr.log
autostart = true
autorestart = true
startsecs = 10
stopwaitsecs = 10
killasgroup = true
priority = 998
[program:mayan-beat]
command = /usr/share/mayan-edms/bin/python /usr/share/mayan-edms/bin/mayan-edms.py celery --settings=mayan.settings.production beat -l ERROR
directory = /usr/share/mayan-edms
user = www-data
numprocs = 1
stdout_logfile = /var/log/mayan/beat-stdout.log
stderr_logfile = /var/log/mayan/beat-stderr.log
autostart = true
autorestart = true
startsecs = 10
stopwaitsecs = 1
killasgroup = true
priority = 998

View File

@@ -0,0 +1,6 @@
[program:mayan-uwsgi]
command = /usr/share/mayan-edms/bin/uwsgi --ini /usr/share/mayan-edms/uwsgi.ini
user = root
autostart = true
autorestart = true
redirect_stderr = true

View File

@@ -1,149 +0,0 @@
# vim:set ft=dockerfile:
####################
# Base image start #
####################
FROM debian:9.4-slim as BASE_IMAGE
MAINTAINER Roberto Rosario "roberto.rosario@mayan-edms.com"
ENV DEBIAN_FRONTEND noninteractive
ENV PYTHONUNBUFFERED 1
ENV LC_ALL C.UTF-8
ENV PROJECT_INSTALL_DIR=/usr/local/lib/python2.7/dist-packages/mayan
ARG APT_PROXY
# Package caching
RUN if [ "${APT_PROXY}" ]; then echo "Acquire::http { Proxy \"http://${APT_PROXY}\"; };" > /etc/apt/apt.conf.d/01proxy; fi
# Install base Ubuntu libraries
RUN apt-get update && \
apt-get install -y --no-install-recommends \
g++ \
gcc \
ghostscript \
gpgv \
gnupg1 \
graphviz \
libffi-dev \
libjpeg-dev \
libmagic1 \
default-libmysqlclient-dev \
libpng-dev \
libpq-dev \
libreoffice \
libtiff-dev \
poppler-utils \
python-dev \
python-pip \
python-setuptools \
python-wheel \
redis-server \
sane-utils \
supervisor \
tesseract-ocr \
zlib1g-dev \
&& \
apt-get clean autoclean && \
apt-get autoremove --purge -y && \
rm -rf /var/lib/apt/lists/* && \
rm -f /var/cache/apt/archives/*.deb
# Install apt-get-install
ADD https://raw.githubusercontent.com/guilhem/apt-get-install/master/apt-get-install /usr/bin/
RUN chmod +x /usr/bin/apt-get-install
# Install Python clients for PostgreSQL, REDIS, librabbitmq
RUN pip install psycopg2==2.7.3.2 redis==2.10.6 mysql-python==1.2.5 librabbitmq==1.6.1
RUN adduser mayan --disabled-password --disabled-login --no-create-home --gecos ""
# Pillow can't find zlib or libjpeg on aarch64 (ODROID C2)
RUN if [ "$(uname -m)" = "aarch64" ]; then \
ln -s /usr/lib/aarch64-linux-gnu/libz.so /usr/lib/ && \
ln -s /usr/lib/aarch64-linux-gnu/libjpeg.so /usr/lib/ \
; fi
# Pillow can't find zlib or libjpeg on armv7l (ODROID HC1)
RUN if [ "$(uname -m)" = "armv7l" ]; then \
apt-get install libssl-dev -y && \
ln -s /usr/lib/arm-linux-gnueabihf/libz.so /usr/lib/ && \
ln -s /usr/lib/arm-linux-gnueabihf/libjpeg.so /usr/lib/ \
; fi
#####################
# Build image start #
#####################
FROM debian:9.4-slim as BUILDER_IMAGE
ARG APT_PROXY
# Package caching
RUN if [ "${APT_PROXY}" ]; then echo "Acquire::http { Proxy \"http://${APT_PROXY}\"; };" > /etc/apt/apt.conf.d/01proxy; fi
WORKDIR /code
COPY . /code
RUN apt-get update && apt-get install make python-dev python-pip -y
RUN pip install -r requirements/build.txt
ENV LC_ALL C.UTF-8
RUN touch docker/Makefile
RUN make wheel
RUN chmod 777 dist -R
#####################
# Final image start #
#####################
FROM BASE_IMAGE
WORKDIR /root/
COPY --from=BUILDER_IMAGE /code/dist/*.whl .
COPY --from=BUILDER_IMAGE /code/contrib/scripts/docker/run-tests.sh .
COPY --from=BUILDER_IMAGE /code/requirements/testing-base.txt requirements-testing.txt
# Install build Mayan EDMS
RUN pip install *.whl && \
rm *.whl
# Setup supervisor
COPY docker/etc/supervisor/mayan.conf /etc/supervisor/conf.d
# Fix ownership
RUN chown -R mayan:mayan $PROJECT_INSTALL_DIR
# Allow flanker to autogenerate its PLY files
RUN chown -R mayan:mayan /usr/local/lib/python2.7/dist-packages/flanker/
RUN mkdir /var/lib/mayan
VOLUME ["/var/lib/mayan"]
COPY docker/entrypoint.sh /usr/local/bin/
RUN ln -s usr/local/bin/entrypoint.sh / # backwards compat
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 8000
CMD ["mayan"]
RUN rm /root/.cache -R
RUN rm -rf /tmp/*
RUN apt-get -y autoremove --purge && apt-get -y autoclean && apt-get -y clean
RUN rm -rf /usr/share/man/*
RUN rm -rf /usr/share/doc/*
RUN find /var/lib/apt -type f | xargs rm -f
RUN find /var/cache -type f -exec rm -rf {} \;
RUN find /var/log -type f | while read f; do echo -ne '' > $f; done;

View File

@@ -1,150 +0,0 @@
# vim:set ft=dockerfile:
####################
# Base image start #
####################
FROM ubuntu:16.04 as BASE_IMAGE
MAINTAINER Roberto Rosario "roberto.rosario@mayan-edms.com"
ENV DEBIAN_FRONTEND noninteractive
ENV PYTHONUNBUFFERED 1
ENV LANG en_US.UTF-8
ENV PROJECT_INSTALL_DIR=/usr/local/lib/python2.7/dist-packages/mayan
ARG APT_PROXY
# Package caching
RUN if [ "${APT_PROXY}" ]; then echo "Acquire::http { Proxy \"http://${APT_PROXY}\"; };" > /etc/apt/apt.conf.d/01proxy; fi
# Install base Ubuntu libraries
RUN apt-get update && \
apt-get install -y --no-install-recommends \
curl \
g++ \
gcc \
gettext-base \
ghostscript \
gpgv \
graphviz \
libffi-dev \
libjpeg-dev \
libmagic1 \
libmysqlclient-dev \
libpng-dev \
libpq-dev \
libreoffice \
libtiff-dev \
locales \
netcat-openbsd \
poppler-utils \
python-dev \
python-pip \
python-setuptools \
python-wheel \
redis-server \
supervisor \
tesseract-ocr \
zlib1g-dev \
&& \
apt-get clean autoclean && \
apt-get autoremove --purge -y && \
rm -rf /var/lib/apt/lists/* && \
rm -f /var/cache/apt/archives/*.deb
# Switch to UTF locale
RUN echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale && \
locale-gen en_US.UTF-8 && \
update-locale LANG=en_US.UTF-8 && \
export LC_ALL=en_US.UTF-8
# Install apt-get-install
ADD https://raw.githubusercontent.com/guilhem/apt-get-install/master/apt-get-install /usr/bin/
RUN chmod +x /usr/bin/apt-get-install
# Install Python clients for PostgreSQL, REDIS, librabbitmq
RUN pip install psycopg2==2.7.3.2 redis==2.10.6 mysql-python==1.2.5 librabbitmq==1.6.1
RUN adduser mayan --disabled-password --disabled-login --no-create-home --gecos ""
# Pillow can't find zlib or libjpeg on aarch64
RUN if [ "$(uname -m)" = "aarch64" ]; then \
ln -s /usr/lib/aarch64-linux-gnu/libz.so /usr/lib/ && \
ln -s /usr/lib/aarch64-linux-gnu/libjpeg.so /usr/lib/ \
; fi
#####################
# Build image start #
#####################
FROM python:2-alpine3.7 as BUILDER_IMAGE
WORKDIR /code
COPY . /code
RUN apk update && \
apk add make
RUN pip install -r requirements/build.txt
RUN make wheel
RUN chmod 777 dist -R
#####################
# Final image start #
#####################
FROM BASE_IMAGE
WORKDIR /root/
COPY --from=BUILDER_IMAGE /code/dist/*.whl .
# Install build Mayan EDMS
RUN pip install *.whl && \
rm *.whl
# Setup supervisor
#RUN mkdir /etc/supervisor.d/
COPY docker/etc/supervisor/beat.conf /etc/supervisor/conf.d
COPY docker/etc/supervisor/gunicorn.conf /etc/supervisor/conf.d
COPY docker/etc/supervisor/redis.conf /etc/supervisor/conf.d
COPY docker/etc/supervisor/workers.conf /etc/supervisor/conf.d
# Create the directory for the logs
RUN mkdir /var/log/mayan
# Fix ownership
RUN chown -R mayan:mayan $PROJECT_INSTALL_DIR
# Allow flanker to autogenerate its PLY files
RUN chown -R mayan:mayan /usr/local/lib/python2.7/dist-packages/flanker/
RUN mkdir /var/lib/mayan
VOLUME ["/var/lib/mayan"]
COPY docker/entrypoint.sh /usr/local/bin/
RUN ln -s usr/local/bin/entrypoint.sh / # backwards compat
ENTRYPOINT ["entrypoint.sh"]
# Healthcheck setup
HEALTHCHECK --interval=15s --timeout=1s --retries=20 \
CMD curl -s -f http://localhost/authentication/login/ | grep 'form' > /dev/null || exit 1
EXPOSE 8000
CMD ["mayan"]
RUN rm /root/.cache -R
RUN rm -rf /tmp/*
RUN apt-get -y autoremove --purge && apt-get -y autoclean && apt-get -y clean
RUN rm -rf /usr/share/man/*
RUN rm -rf /usr/share/doc/*
RUN find /var/lib/apt -type f | xargs rm -f
RUN find /var/cache -type f -exec rm -rf {} \;
RUN find /var/log -type f | while read f; do echo -ne '' > $f; done;

View File

@@ -1,33 +0,0 @@
APT_PROXY ?= `/sbin/ip route|awk '/docker0/ { print $$9 }'`:3142
IMAGE_VERSION ?= `cat docker/version`
CONSOLE_COLUMNS ?= `echo $$(tput cols)`
CONSOLE_LINES ?= `echo $$(tput lines)`
docker-help:
@echo
@echo "**** Docker makefile ****"
@echo "docker-build - Build a new image locally."
@echo "docker-build-with-proxy - Build a new image locally using an APT proxy."
@echo "docker-test-container - Build and run a test container."
@echo "docker-test-cleanup - Delete the test container and the test volume."
@echo "docker-test-all - Build and executed the test suite in a test container."
@echo "docker-shell - Launch a bash instance inside a running container. Pass the container name via DOCKER_CONTAINER."
docker-build:
docker build -t mayanedms/mayanedms:$(IMAGE_VERSION) -f docker/Dockerfile .
docker-build-with-proxy:
docker build -t mayanedms/mayanedms:$(IMAGE_VERSION) -f docker/Dockerfile --build-arg APT_PROXY=$(APT_PROXY) .
docker-shell:
docker exec -e TERM=$(TERM) -e "COLUMNS=$(CONSOLE_COLUMNS)" -e "LINES=$(CONSOLE_LINES)" -it $(DOCKER_CONTAINER) /bin/bash
docker-test-container: docker-build-with-proxy docker-test-cleanup
docker run -d --name test-mayan-edms -p 80:8000 -v test-mayan_data:/var/lib/mayan mayanedms/mayanedms:$(DOCKER_VERSION)
docker-test-cleanup:
@docker rm -f test-mayan-edms || true
@docker volume rm test-mayan_data || true
docker-test-all: docker-build-with-proxy
docker run --rm run-tests

View File

@@ -1 +0,0 @@
Mayan EDMS is a free open source electronic document management system.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,72 +0,0 @@
version: '2.1'
volumes:
broker:
driver: local
app:
driver: local
db:
driver: local
results:
driver: local
services:
broker:
container_name: mayan-edms-broker
image: healthcheck/rabbitmq
environment:
RABBITMQ_DEFAULT_USER: mayan
RABBITMQ_DEFAULT_PASS: mayan
RABBITMQ_DEFAULT_VHOST: mayan
volumes:
- broker:/var/lib/rabbitmq
results:
container_name: mayan-edms-results
image: healthcheck/redis
volumes:
- results:/data
#db:
# container_name: mayan-edms-db
# image: healthcheck/mysql
# environment:
# MYSQL_DATABASE: mayan
# MYSQL_PASSWORD: mayan-password
# MYSQL_ROOT_PASSWORD: root-password
# MYSQL_USER: mayan
# volumes:
# - db:/var/lib/mysql
db:
container_name: mayan-edms-db
image: healthcheck/postgres
environment:
POSTGRES_DB: mayan
POSTGRES_PASSWORD: mayan-password
POSTGRES_USER: mayan
volumes:
- db:/var/lib/postgresql/data
mayan-edms:
container_name: mayan-edms-app
image: mayan-edms/next
build:
context: ./
args:
- APT_PROXY=172.18.0.1:3142
depends_on:
broker:
condition: service_healthy
db:
condition: service_healthy
results:
condition: service_healthy
environment:
MAYAN_BROKER_URL: amqp://mayan:mayan@broker:5672/mayan
MAYAN_CELERY_RESULT_BACKEND: redis://results:6379/0
MAYAN_DATABASE_DRIVER: django.db.backends.postgres
MAYAN_DATABASE_HOST: db
MAYAN_DATABASE_NAME: mayan
MAYAN_DATABASE_PASSWORD: mayan-password
MAYAN_DATABASE_USER: mayan
ports:
- "80:80"
volumes:
- app:/var/lib/mayan

View File

@@ -1,58 +0,0 @@
version: '2.1'
volumes:
broker:
driver: local
app:
driver: local
db:
driver: local
results:
driver: local
services:
broker:
container_name: mayan-edms-broker
image: healthcheck/rabbitmq
environment:
RABBITMQ_DEFAULT_USER: mayan
RABBITMQ_DEFAULT_PASS: mayan
RABBITMQ_DEFAULT_VHOST: mayan
volumes:
- broker:/var/lib/rabbitmq
results:
container_name: mayan-edms-results
image: healthcheck/redis
volumes:
- results:/data
db:
container_name: mayan-edms-db
image: healthcheck/postgres
environment:
POSTGRES_DB: mayan
POSTGRES_PASSWORD: mayan-password
POSTGRES_USER: mayan
volumes:
- db:/var/lib/postgresql/data
mayan-edms:
container_name: mayan-edms-app
image: mayanedms/mayanedms:latest
depends_on:
broker:
condition: service_healthy
db:
condition: service_healthy
results:
condition: service_healthy
environment:
MAYAN_BROKER_URL: amqp://mayan:mayan@broker:5672/mayan
MAYAN_CELERY_RESULT_BACKEND: redis://results:6379/0
MAYAN_DATABASE_DRIVER: django.db.backends.postgres
MAYAN_DATABASE_HOST: db
MAYAN_DATABASE_NAME: mayan
MAYAN_DATABASE_PASSWORD: mayan-password
MAYAN_DATABASE_USER: mayan
ports:
- "80:8000"
volumes:
- app:/var/lib/mayan

View File

@@ -1,86 +0,0 @@
#!/bin/sh
set -e
echo "mayan: starting entrypoint.sh"
INSTALL_FLAG=/var/lib/mayan/media/system/SECRET_KEY
export DOCKER_ROOT=/root
export MAYAN_DEFAULT_BROKER_URL=redis://127.0.0.1:6379/0
export MAYAN_DEFAULT_CELERY_RESULT_BACKEND=redis://127.0.0.1:6379/0
export MAYAN_ALLOWED_HOSTS=*
export MAYAN_BIN=/usr/local/lib/python2.7/dist-packages/mayan/bin/mayan-edms.py
export MAYAN_BROKER_URL=${MAYAN_BROKER_URL:-${MAYAN_DEFAULT_BROKER_URL}}
export MAYAN_CELERY_RESULT_BACKEND=${MAYAN_CELERY_RESULT_BACKEND:-${MAYAN_DEFAULT_CELERY_RESULT_BACKEND}}
export MAYAN_GUNICORN_WORKERS=${MAYAN_GUNICORN_WORKERS:-2}
export MAYAN_INSTALL_DIR=/usr/local/lib/python2.7/dist-packages/mayan
export MAYAN_PYTHON_DIR=/usr/local/bin
export MAYAN_MEDIA_ROOT=/var/lib/mayan
export MAYAN_SETTINGS_MODULE=${MAYAN_SETTINGS_MODULE:-mayan.settings.production}
export CELERY_ALWAYS_EAGER=False
export PYTHONPATH=$PYTHONPATH:$MAYAN_MEDIA_ROOT
chown mayan:mayan /var/lib/mayan -R
initialize() {
echo "mayan: initialize()"
su mayan -c "mayan-edms.py initialsetup --force"
su mayan -c "mayan-edms.py collectstatic --noinput --clear"
}
upgrade() {
echo "mayan: upgrade()"
su mayan -c "mayan-edms.py performupgrade"
su mayan -c "mayan-edms.py collectstatic --noinput --clear"
}
start() {
echo "mayan: start()"
rm -rf /var/run/supervisor.sock
exec /usr/bin/supervisord -nc /etc/supervisor/supervisord.conf
}
os_package_installs() {
echo "mayan: os_package_installs()"
if [ "${MAYAN_APT_INSTALLS}" ]; then
apt-get-install $MAYAN_APT_INSTALLS
fi
}
pip_installs() {
echo "mayan: pip_installs()"
if [ "${MAYAN_PIP_INSTALLS}" ]; then
pip install $MAYAN_PIP_INSTALLS
fi
}
os_package_installs || true
pip_installs || true
case "$1" in
mayan) # Check if this is a new install, otherwise try to upgrade the existing
# installation on subsequent starts
if [ ! -f $INSTALL_FLAG ]; then
initialize
else
upgrade
fi
start
;;
run-tests) # Check if this is a new install, otherwise try to upgrade the existing
# installation on subsequent starts
if [ ! -f $INSTALL_FLAG ]; then
initialize
else
upgrade
fi
$DOCKER_ROOT/run-tests.sh
;;
*) su mayan -c "$@";
;;
esac

View File

@@ -1,80 +0,0 @@
[program:mayan-gunicorn]
autorestart = false
autostart = true
command = /bin/bash -c "cd ${MAYAN_PYTHON_DIR}; gunicorn -w ${MAYAN_GUNICORN_WORKERS} mayan.wsgi --max-requests 500 --max-requests-jitter 50 --worker-class gevent --bind 0.0.0.0:8000 --env DJANGO_SETTINGS_MODULE=${MAYAN_SETTINGS_MODULE}"
redirect_stderr = true
stderr_logfile = /dev/fd/2
stderr_logfile_maxbytes = 0
stdout_logfile = /dev/fd/1
stdout_logfile_maxbytes = 0
user = mayan
[program:redis]
autorestart = false
autostart = true
command = /bin/bash -c "if [ ${MAYAN_BROKER_URL} == ${MAYAN_DEFAULT_BROKER_URL} ] && [ ${MAYAN_CELERY_RESULT_BACKEND} == ${MAYAN_DEFAULT_CELERY_RESULT_BACKEND} ];then /usr/bin/redis-server /etc/redis/;fi"
stderr_logfile = /dev/fd/2
stderr_logfile_maxbytes = 0
stdout_logfile = /dev/fd/1
stdout_logfile_maxbytes = 0
user = root
[program:mayan-worker-fast]
autorestart = false
autostart = true
command = nice -n 1 /bin/bash -c "cd ${MAYAN_PYTHON_DIR}; python ${MAYAN_BIN} celery --settings=${MAYAN_SETTINGS_MODULE} worker -Ofair -l ERROR -Q converter -n mayan-worker-fast.%%h --concurrency=1"
killasgroup = true
numprocs = 1
priority = 998
startsecs = 10
stderr_logfile = /dev/fd/2
stderr_logfile_maxbytes = 0
stdout_logfile = /dev/fd/1
stdout_logfile_maxbytes = 0
stopwaitsecs = 1
user = mayan
[program:mayan-worker-medium]
autorestart = false
autostart = true
command = nice -n 18 /bin/bash -c "cd ${MAYAN_PYTHON_DIR}; python ${MAYAN_BIN} celery --settings=${MAYAN_SETTINGS_MODULE} worker -Ofair -l ERROR -Q checkouts_periodic,documents_periodic,indexing,metadata,sources,sources_periodic,uploads,documents -n mayan-worker-medium.%%h --concurrency=1"
killasgroup = true
numprocs = 1
priority = 998
startsecs = 10
stderr_logfile = /dev/fd/2
stderr_logfile_maxbytes = 0
stdout_logfile = /dev/fd/1
stdout_logfile_maxbytes = 0
stopwaitsecs = 1
user = mayan
[program:mayan-worker-slow]
autorestart = false
autostart = true
command = nice -n 19 /bin/bash -c "cd ${MAYAN_PYTHON_DIR}; python ${MAYAN_BIN} celery --settings=${MAYAN_SETTINGS_MODULE} worker -Ofair -l ERROR -Q mailing,tools,statistics,parsing,ocr -n mayan-worker-slow.%%h --concurrency=1"
killasgroup = true
numprocs = 1
priority = 998
startsecs = 10
stderr_logfile = /dev/fd/2
stderr_logfile_maxbytes = 0
stdout_logfile = /dev/fd/1
stdout_logfile_maxbytes = 0
stopwaitsecs = 1
user = mayan
[program:mayan-celery-beat]
autorestart = false
autostart = true
command = nice -n 1 /bin/bash -c "cd ${MAYAN_PYTHON_DIR}; python ${MAYAN_BIN} celery --settings=${MAYAN_SETTINGS_MODULE} beat --pidfile= -l ERROR"
killasgroup = true
numprocs = 1
priority = 998
stderr_logfile = /dev/fd/2
stderr_logfile_maxbytes = 0
stdout_logfile = /dev/fd/1
stdout_logfile_maxbytes = 0
startsecs = 10
stopwaitsecs = 1
user = mayan

View File

@@ -1,30 +0,0 @@
version: '3.1'
volumes:
app:
driver: local
db:
driver: local
services:
db:
image: postgres
environment:
POSTGRES_DB: mayan
POSTGRES_PASSWORD: mayan-password
POSTGRES_USER: mayan
app:
image: mayanedms/mayanedms:latest
ports:
- 80:8000
environment:
MAYAN_DATABASE_ENGINE: django.db.backends.postgresql
MAYAN_DATABASE_HOST: db
MAYAN_DATABASE_NAME: mayan
MAYAN_DATABASE_PASSWORD: mayan-password
MAYAN_DATABASE_USER: mayan
volumes:
- app:/var/lib/mayan

View File

@@ -1 +0,0 @@
3.0rc1

BIN
docs/_static/api.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

BIN
docs/_static/document_view.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
docs/_static/main.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 MiB

After

Width:  |  Height:  |  Size: 628 KiB

BIN
docs/_static/page_view.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

BIN
docs/_static/setup.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

BIN
docs/_static/statistics.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
docs/_static/tools.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

View File

@@ -1,16 +1,15 @@
<h3>Support</h3>
<p>
<a href='http://www.mayan-edms.com/providers/'>Consulting and support plans are available, click here</a>.
<h3>Donate</h3>
<p>Help support further improvements and development, via:
<ul>
<li>
- <a href="https://www.paypal.me/RobertoRosario">PayPal.Me</a>
</li>
<li>
- <a href="https://www.patreon.com/siloraptor">Patreon</a>
</li>
<li>- or Gumroad:
<script type="text/javascript" src="https://gumroad.com/js/gumroad.js"></script>
<a href="https://gumroad.com/l/UNApl" class="gumroad-button">Buy Mayan EDMS</a>
</li>
</ul>
</p>
<hr />
<p>
Or consider supporting Mayan EDMS by contributing to its development. (US tax payers, please note this contribution is not tax deductible).
</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="3PXN336XFXQNN">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1" style="display: none !important;">
</form>
<hr />

View File

@@ -33,11 +33,12 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "_ext"))
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
#extensions = ['sphinx.ext.autodoc', 'sphinx.ext.viewcode']
#extensions = ["djangodocs", "sphinx.ext.intersphinx"]
extensions = ['sphinxcontrib.blockdiag']
extensions = ['djangodocs', 'sphinxcontrib.blockdiag']
blockdiag_antialias = True
blockdiag_html_image_format = "SVG"
blockdiag_latex_image_format = "PDF"
blockdiag_tex_image_format = "PDF"
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
@@ -53,7 +54,7 @@ master_doc = 'index'
# General information about the project.
project = mayan.__title__
copyright = mayan.__copyright_short__
copyright = mayan.__copyright__
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
@@ -179,9 +180,6 @@ html_static_path = ['_static']
# Output file base name for HTML help builder.
htmlhelp_basename = 'MayanEDMSdoc'
html_show_sourcelink = False
html_show_sphinx = False
# -- Options for LaTeX output --------------------------------------------------
@@ -227,8 +225,28 @@ latex_documents = [
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
('index', 'mayanedms', '{} Documentation'.format(mayan.__title__),
('index', 'mayanedms', 'Mayan EDMS Documentation',
[mayan.__author__], 1)
]
html_theme = 'sphinx_rtd_theme'
# -- Custom options
import alabaster
html_theme_path = [alabaster.get_path()]
extensions.append('alabaster')
html_theme = 'alabaster'
html_sidebars = {
'**': [
'about.html', 'donate.html', 'navigation.html', 'searchbox.html',
]
}
html_theme_options = {
'description': mayan.__description__,
'github_button': False,
'travis_button': False,
'gratipay_user': 'rosarior',
'github_banner': False,
}
html_logo = '_static/logo_pyramid_only.png'

View File

@@ -1,15 +1,24 @@
Welcome to Mayan EDMS!
======================
.. image:: /_static/mayan_logo.png
:alt: Logo is a trademark of Roberto Rosario
:align: center
**Mayan EDMS** is a `Free Open Source`_ `Electronic Document Management System`_, coded in
the Python language using the Django_ web application framework and released
under the `Apache 2.0 License`_. It provides an electronic vault or repository for electronic documents.
The easiest way to install and try **Mayan EDMS** is by using a Debian based Linux distribution
and installing it from PyPI with the following commands:
Mayan EDMS is a `Free Open Source`_ `Electronic Document Management System`_,
coded in the Python language using the Django_ web application framework and
released under the `Apache 2.0 License`_. It provides an electronic vault or
repository for electronic documents.
.. code-block:: bash
sudo apt-get install libjpeg-dev libmagic1 libpng-dev libreoffice libtiff-dev gcc ghostscript gpgv python-dev python-virtualenv tesseract-ocr unpaper poppler-utils -y
virtualenv venv
source venv/bin/activate
pip install mayan-edms
mayan-edms.py initialsetup
mayan-edms.py runserver
Point your browser to 127.0.0.1:8000 and use the automatically created admin
account.
.. image:: /_static/overview.gif
:alt: Overview
@@ -17,47 +26,20 @@ repository for electronic documents.
.. toctree::
:hidden:
Installation <topics/installation>
Features <topics/features>
Installation <topics/installation>
Deploying <topics/deploying>
Release notes and upgrading <releases/index>
ACLs <topics/acls>
Backups <topics/backups>
Checkouts <topics/checkouts>
Document types <topics/document_types>
File storage <topics/file_storage>
Document indexes <topics/indexes>
Document languages <topics/languages>
Document signatures <topics/signatures>
Mailing <topics/mailing>
Metadata <topics/metadata>
OCR <topics/ocr_backend>
Permissions <topics/permissions>
Settings <topics/settings>
Sources <topics/sources>
Smart links <topics/smart_links>
Tags <topics/tags>
Transformations <topics/transformations>
Upload wizard <topics/upload_wizard>
Versioning <topics/versioning>
Docker image <topics/docker>
Advanced deployment <topics/deploying>
Concepts <topics/index>
Development <topics/development>
App creation <topics/app_creation>
Pending work <topics/pending_work>
Code statistics <topics/code_statistics>
Translations <topics/translations>
Contributors <topics/contributors>
Screenshots <topics/screenshots>
Licensing <topics/license>
FAQ <topics/faq>
Contact <topics/contact>
MERCs <mercs/index>
Pending work <topics/pending_work>
Individual Contributor Assignment Agreement <topics/caa_individual>
Entity Contributor Assignment Agreement <topics/caa_entity>
.. _Docker: https://www.docker.com/
.. _Django: http://www.djangoproject.com/
.. _Free Open Source: http://en.wikipedia.org/wiki/Open_source
.. _Electronic Document Management System: https://en.wikipedia.org/wiki/Document_management_system

View File

@@ -1,211 +0,0 @@
==============================
MERC 1: Purpose and Guidelines
==============================
:MERC: 1
:Author: Michael Price
:Status: Accepted
:Type: Process
:Created: 2018-02-17
:Last-Modified: 2018-02-17
.. contents:: Table of Contents
:depth: 3
:local:
What is a MERC?
===============
A Mayan EDMS Request For Comment document or MERC document is a design
document providing information to the Mayan EDMS community, or
describing a new feature or process for Mayan EDMS. MERCs provide
concise technical specifications of features, along with rationales.
MERC Types
==========
There are three kinds of MERCs:
1. A **Feature** MERC describes a new feature or implementation
for Mayan EDMS. Most MERCs will be Feature MERCs.
2. An **Informational** MERC describes a Mayan EDMS design issue, or
provides general guidelines or information to the Mayan EDMS community,
but does not propose a new feature. Informational MERCs do not
necessarily represent a community consensus or
recommendation, so users and implementers are free to ignore
Informational MERCs or follow their advice.
3. A **Process** MERC describes a process surrounding Mayan EDMS, or
proposes a change to (or an event in) a process. Process MERCs are
like Feature MERCs but apply to areas other than the Mayan EDMS
framework itself. They may propose an implementation, but not to
Mayan EDMS's codebase; they often require community consensus; unlike
Informational MERCs, they are more than recommendations, and users
are typically not free to ignore them. Examples include
procedures, guidelines, changes to the decision-making process, and
changes to the tools or environment used in Mayan EDMS development.
Any meta-MERC is also considered a Process MERC. (So this document
is a Process MERC).
MERC submission workflow
========================
Pre-proposal
------------
The MERC process begins with a new idea for Mayan EDMS. It is highly recommended
that a single MERC contain a single key proposal or new idea. Small enhancements
or patches usually don't need a MERC and follow Mayan EDMS's normal contribution
process.
MERCs should be focused on a single topic. If in doubt, split your MERC
into several well-focused ones.
Once the idea's been vetted, a draft MERC should be presented to the
Mayan EDMS mailing list. This gives the author a chance to flesh out the
draft MERC to make sure it's properly formatted, of high quality, and to address
initial concerns about the proposal.
The Core Developers will be responsible for accepting or rejecting the MERC proposal.
Submitting the draft
--------------------
Following the discussion on Mayan EDMS mailing list, the proposal
should be sent as a merge request to the Mayan EDMS repository. The draft must
be written in MERC style; if it isn't the merge request may be rejected until proper
formatting rules are followed.
Implementation
--------------
Finally, once a MERC has been accepted, the implementation must be completed. In
many cases some (or all) implementation will actually happen during the MERC
process: Feature MERCs will often have fairly complete implementations before
being reviewed. When the implementation is complete and incorporated
into the main source code repository, the status will be changed to
"Final".
MERC format
===========
MERCs need to follow a common format and outline; this section describes
that format.
MERCs must be written in `reStructuredText <http://docutils.sourceforge.net/rst.html>`_
(the same format as Mayan EDMS's documentation).
Each MERC should have the following parts:
#. A short descriptive title (e.g. "User document filters"), which is also reflected
in the MERC's filename (e.g. ``0002-user-document-filters.rst``).
#. A preamble -- a rST `field list <http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#field-lists>`_
containing metadata about the MERC, including the MERC number and so forth. See
`MERC Metadata`_ below for specific details.
#. Abstract -- a short (~200 word) description of the technical issue
being addressed.
#. Specification -- The technical specification should describe the syntax and
semantics of any new feature. The specification should be detailed enough to
allow implementation -- that is, developers other than the author should
(given the right experience) be able to independently implement the feature,
given only the MERC.
#. Motivation -- The motivation is critical for MERCs that want to add
substantial new features or materially refactor existing ones. It should
clearly explain why the existing solutions are inadequate to address the
problem that the MERC solves. MERC submissions without sufficient motivation
may be rejected outright.
#. Rationale -- The rationale fleshes out the specification by describing what
motivated the design and why particular design decisions were made. It
should describe alternate designs that were considered and related work.
The rationale should provide evidence of consensus within the community and
discuss important objections or concerns raised during discussion.
#. Backwards Compatibility -- All MERCs that introduce backwards
incompatibilities must include a section describing these incompatibilities
and their severity. The MERC must explain how the author proposes to deal
with these incompatibilities. MERC submissions without a sufficient backwards
compatibility treatise may be rejected outright.
#. Reference Implementation -- The reference implementation must be completed
before any MERC is given status "Final", but it need not be completed before
the MERC is accepted. While there is merit to the approach of reaching
consensus on the specification and rationale before writing code, the
principle of "rough consensus and running code" is still useful when it comes
to resolving many discussions of API details.
The final implementation must include tests and documentation, per Mayan EDMS
development guide.
MERC Metadata
-------------
Each MERC must begin with some metadata given as an rST
`field list <http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#field-lists>`_.
The headers must contain the following fields:
``MERC``
The MERC number. In an initial merge request, this can be left out or given
as ``XXXX``; the reviewer who merges the pull request will assign the MERC
number.
``Type``
``Feature``, ``Informational``, or ``Process``
``Status``
``Draft``, ``Accepted``, ``Rejected``, ``Withdrawn``, ``Final``, or ``Superseded``
``Created``
Original creation date of the MERC (in ``yyyy-mm-dd`` format)
``Last-Modified``
Date the MERC was last modified (in ``yyyy-mm-dd`` format)
``Author``
The MERC's author(s).
``Implementation-Team``
The person/people who have committed to implementing this MERC
``Requires``
If this MERC depends on another MERC being implemented first,
this should be a link to the required MERC.
``Mayan EDMS-Version`` (optional)
For Feature MERCs, the version of Mayan EDMS (e.g. ``2.7.3``) that this
feature will be released in.
``Replaces`` and ``Superseded-By`` (optional)
These fields indicate that a MERC has been rendered obsolete. The newer MERC
must have a ``Replaces`` header containing the number of the MERC that it
rendered obsolete; the older MERC has a ``Superseded-By`` header pointing to
the newer MERC.
``Resolution`` (optional)
For MERCs that have been decided upon, this can be a link to the final
rationale for acceptance/rejection. It's also reasonable to simply update
the MERC with a "Resolution" section, in which case this header can be left
out.
Auxiliary Files
---------------
MERCs may include auxiliary files such as diagrams. Such files must be named
``XXXX-descriptive-title.ext``, where "XXXX" is the MERC number,
"descriptive-title" is a short slug indicating what the file contains, and
"ext" is replaced by the actual file extension (e.g. "png").
Reporting MERC Bugs, or Submitting MERC Updates
===============================================
How you report a bug, or submit a MERC update depends on several factors, such as
the maturity of the MERC, the preferences of the MERC author, and the nature of
your comments. For the early draft stages of the MERC, it's probably best to
send your comments and changes directly to the MERC author. For more mature, or
finished MERCs you can submit corrections as repository issues or merge requests
against the git repository.
When in doubt about where to send your changes, please check first with the MERC
author and/or a core developer.
MERC authors with git push privileges for the MERC repository can update the MERCs
themselves.

View File

@@ -1,82 +0,0 @@
=====================
MERC 2: Test writing
=====================
:MERC: 2
:Author: Michael Price
:Status: Accepted
:Type: Feature
:Created: 2018-02-22
:Last-Modified: 2018-04-01
.. contents:: Table of Contents
:depth: 3
:local:
Abstract
========
This MERC proposes a standard methodology for writing tests for Mayan EDMS.
Motivation
==========
Having a standard methodology for writing tests has the following advantages:
1. Scaffolding can be reduced by providing the most frequently used
paradigms as methods or helper functions.
2. Reduce the probabilities of errors slipping through poorly written tests.
Specification
=============
1. Tests must test each view in at least two ways:
A. Object creations views must be tested with and without permissions.
B. Object detail, list and delete views must be tested with and without
object access.
2. Tests must assert the status code of the response even
when the expected status is HTTP 200.
3. The actual request performed must be enclosed in a private methods
so that the fail and pass tests use the same HTTP request.
4. Test must verify that changes happened and didn't happened in the
database regardless of the return code. Even is an edit view returns
and error 4XX (404-Not found, 403-Forbidden, etc), the test must
ensure that the data was not indeed modified.
5. All tests must use the test user created by the BaseAPITestCase and not
an super user unless absolutely required by the test.
6. Each test must test just one thing.
7. If a test object needs to be created before the execution of a request
this object must be created by a private method.
Example:
.. code-block:: python
def _request_tag_create(self):
return self.post(
viewname='rest_api:tag-list', data={
'label': TEST_TAG_LABEL, 'color': TEST_TAG_COLOR
}
)
def test_tag_create_view_no_permission(self):
response = self._request_tag_create()
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
self.assertEqual(Tag.objects.count(), 0)
def test_tag_create_view_with_permission(self):
self.grant_permission(permission=permission_tag_create)
response = self._request_tag_create()
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
tag = Tag.objects.first()
self.assertEqual(response.data['id'], tag.pk)
self.assertEqual(response.data['label'], TEST_TAG_LABEL)
self.assertEqual(response.data['color'], TEST_TAG_COLOR)
self.assertEqual(Tag.objects.count(), 1)
self.assertEqual(tag.label, TEST_TAG_LABEL)
self.assertEqual(tag.color, TEST_TAG_COLOR)

View File

@@ -1,74 +0,0 @@
==================================
MERC 3: Using javascript libraries
==================================
:MERC: 3
:Author: Eric Riggs
:Status: Accepted
:Type: Feature
:Created: 2018-03-08
:Last-Modified: 2018-06-04
.. contents:: Table of Contents
:depth: 3
:local:
Abstract
========
This MERC proposes a standard way to use javascript libraries.
Rationale
=========
Mayan EDMS uses several javascript libraries for user interface features.
Currently, the libraries are not installed using any javascript package
manager but copied uncompressed. Installing the libraries in this manner
carries some disadvantages.
Motivation
==========
The inclusion of the libraries in source form is required by many licenses
if the library is not installed by a package manager in distributable form.
There are several disavantages with the current approach:
1. Having the library in source form means that the entire weight of the
library's size carries over the overall size of the Mayan EDMS distribution files.
The justification for not doing this is the same as with the Python libraries
which are not copied with the code but downloaded upon installation.
2. Upgrading the libraries means manually examining the version of the
installed in the project and manually searching, downloading, compressing
and adding the files to the repository.
3. The source form of the libraries includes normal and minified versions
of the code and the accompaning CSS files. There is no define preference
and through the project both versions of the libraries are loaded
interchangeably. Using a packager manager the minified version would be
used of a pipeline to minify the installed libraries should be added.
Backwards Compatibility
=======================
There are no backwards compatibility issues with this proposal.
Specification
=============
Changes needed:
1. Python based javascript package manager. Alternatively a Python wrapper
for a javascript package manager could be used.
2. Package manifest for the javascript libraries used.
3. Installation pipeline to install the javascript libraries during the
installation and setup of the project.
References:
- https://github.com/JDeuce/powser
- https://github.com/javrasya/version-manager
- https://github.com/inveniosoftware-attic/setuptools-bower
- https://pypi.python.org/pypi/django-bower-cache/0.5.0
- http://django-pipeline.readthedocs.io/en/latest/index.html
- https://github.com/nvbn/django-bower

View File

@@ -1,51 +0,0 @@
=====
MECRs
=====
Mayan EDMS Request For Comment documents index.
.. contents:: Table of Contents
:depth: 2
:local:
Status
======
Accepted
--------
.. toctree::
:maxdepth: 1
0001-merc-process
0002-test-writing
0003-using-javascript-libraries
Draft
-----
.. toctree::
:maxdepth: 1
merging-roles-and-groups
support-forum
Type
====
Process
-------
.. toctree::
:maxdepth: 1
0001-merc-process
Feature
-------
.. toctree::
:maxdepth: 1
0002-test-writing
0003-using-javascript-libraries

View File

@@ -1,67 +0,0 @@
===============================
MERC XX: Unify Roles and Groups
===============================
:MERC: XX
:Author: Michael Price
:Status: Draft
:Type: Feature
:Created: 2018-02-27
:Last-Modified: 2018-02-27
.. contents:: Table of Contents
:depth: 3
:local:
Abstract
========
This MERC proposes the merging of the Roles and Group models.
Rationale
=========
Mayan EDMS uses Groups as units of users that are meant to mirror an
organization's actual user hierarchy. Roles are used as permission units.
Separation of concerns is a concept Mayan EDMS executes very successfully
but when it comes to the Roles/Groups relationship that execution causes
overheads without providing advantages in the day to day operations.
In reality there is almost a 1 to 1 correlation between Roles and Groups.
Other permissions systems already use Groups as permission units without
disavantages. An example of this is LDAP and its commercial counterpart
Active Directory.
Motivation
==========
Merging the Role and Group model will reduce some complexity when initially
setting up Mayan EDMS. The merge allows removing a Mayan EDMS model in
favor of using a native Django model for the same task.
Merging the Role and Group models will also provide a speed boost in every
permission check and queryset filtering. These checks are nested in nature.
Since the access checks are performed for every view and for every link
in the view the performace gain should be substantial.
Backwards Compatibility
=======================
To avoid loss of role configuration a data migration will be needed to
convert existing roles to groups.
Specification
=============
Changes needed:
1. Data migration to convert existing roles to groups.
2. Prepend or append an identifier to the migrated roles.
3. Intermediate model to map permissions to a group. This will substitute
the Role model's permissions many to many field.
4. Update the ``AccessControlList`` models roles field to point to the group
models.
5. Update the role checks in the ``check_access`` and ``filter_by_access``
``AccessControlList`` model manager methods.

View File

@@ -1,48 +0,0 @@
======================
MERC XX: Support forum
======================
:MERC: XX
:Author: Michael Price
:Status: Draft
:Type: Process
:Created: 2018-02-27
:Last-Modified: 2018-02-27
.. contents:: Table of Contents
:depth: 3
:local:
Abstract
========
This MERC proposes the move of the official community meeting place
from Google Group to a self hosted forum platform.
Motivation
==========
Google Groups is not a proper forum platform and as such is lacking many
features that would increase participation. Google Groups has not had any
significant update in years and the age of the platform is visible. There
are no official mobile apps for Google Groups, no responsible template
is not provided. There are not integration options. These factors
contribute to the problems of knowledge dilution and one time
participation being experienced in the Mayan EDMS community.
Other concerns for moving the community to a self hosted forum solution
are that Google Groups presents a single point of failure by relying on
a free product hosted by a commercial company with no continuation plan
for the product. Google Groups doesn't provide archiving features and
the current archive solution relies on other third party services, one
of which (GMANE) has stopped working. Recent user privacy and censorship
issues regarding Google, reinforce the need for a self hosted solution.
Specification
=============
The proposed solution is to use the bbPress (https://wordpress.org/plugins/bbpress/)
forum plugin for Wordpress. After 14 years, Wordpress dominance continues
unrivaled. The wealth of material, themes, templates and professional avaialbe make
it a safe option.

View File

@@ -25,9 +25,9 @@ What's new in Mayan EDMS v0.12.1
Fabric file (fabfile)
~~~~~~~~~~~~~~~~~~~~~
A Fabric file is included to help users not very familiar with Ubuntu,
Python and Django install Mayan EDMS, or for system administrators
Python and Django install **Mayan EDMS**, or for system administrators
looking to automate the install whether in local or remote systems.
At the moment the fabfile will install Mayan EDMS in the same configurations
At the moment the fabfile will install **Mayan EDMS** in the same configurations
listed in this documentation, that is: (Ubuntu/Debian/Fedora) + virtualenv + Apache + MySQL.
Feel free to submit your configuration settings and files for different databases,
webserver or Linux distribution. More configurations will be added to
@@ -38,7 +38,7 @@ Documentation update
The installation instructions were updated to include the installation of
the libpng-dev and libjpeg-dev libraries as well as the installation of
the poppler-utils package. An additional step to help users test their
new installation of Mayan EDMS was also added.
new installation of **Mayan EDMS** was also added.
Translations
~~~~~~~~~~~~

View File

@@ -24,7 +24,7 @@ What's new in Mayan EDMS v0.12.2
Smarter auto admin creation
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Mayan EDMS creates a administrator user during the
**Mayan EDMS** creates a administrator user during the
database creation phase to reduce the amount of steps required for a
functional install. The creation of this account is controlled by the configuration
option `COMMON_AUTO_CREATE_ADMIN`, the username of the account is
@@ -41,7 +41,7 @@ As per the feature request filed under `issue #26`_, a new document
check out and check in functionality has been added. Users can now
check out a document and lock new version of it from being uploaded to avoid
editing conflicts. Document check outs have an expiration period after which
Mayan EDMS will automatically check them back in to avoid a permanent
**Mayan EDMS** will automatically check them back in to avoid a permanent
document lockout. Only the user who has checked out a document can upload
new versions of it or check the document back in before the expiration period,
unless being granted the ``Allow overriding check out restrictions`` or
@@ -52,14 +52,14 @@ Installation environment app
Diagnosting remote installations of web based applications without access to the
command line can be a bit hard, to alleviate this situation a new installation
environment details app has been added. The purpose of this app is to provide
support staff information about the physical environment where Mayan EDMS has
support staff information about the physical environment where **Mayan EDMS** has
been installed. To avoid possible security compromises only administrators
can access this app.
Editable compressed documents filename
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Previously when downloading more than one document in a compressed manner,
Mayan EDMS would produce a file with the name ``document_bundle.zip`` for
**Mayan EDMS** would produce a file with the name ``document_bundle.zip`` for
download. A different filename can now be specified at the same download dialog.
German translation
@@ -71,7 +71,7 @@ Statistics gathering
~~~~~~~~~~~~~~~~~~~~
Previous attempts at gathering usage statistics have been met with deficient results.
User participation in surveys as well as the quality of the data entered by users
was disappointing. That is why this version of Mayan EDMS features an
was disappointing. That is why this version of **Mayan EDMS** features an
anonymous statistics gathering functionality.

View File

@@ -6,12 +6,12 @@ Mayan EDMS v0.12 release notes
Welcome to Mayan EDMS v0.12!
This release commemorates Mayan EDMS first aniversary!
This release commemorates **Mayan EDMS** first aniversary!
Overview
========
Aside from new features, the focus of this release of Mayan EDMS also
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
@@ -61,7 +61,7 @@ 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.
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.
@@ -89,7 +89,7 @@ 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
administrators set **Mayan EDMS**'s GPG instance home directory, used to
store keyrings and other GPG configuration files.
Out of process bulk uploading
@@ -114,7 +114,7 @@ stage to beta stage. Index configuration menus are now available on the
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
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
@@ -127,7 +127,7 @@ Included in this version is a small feedback application, found under the
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.
the need of the **Mayan EDMS** user base.
Staging file previews
~~~~~~~~~~~~~~~~~~~~~

View File

@@ -31,39 +31,39 @@ Attaching or removing tags from a large number of documents is now much easier.
Registration
~~~~~~~~~~~~
Based on requests made by the community for greater commercial support and services for
Mayan EDMS, a new feature has been added that allows users to register their
copies of Mayan EDMS and better help users with commercial support packages.
**Mayan EDMS**, a new feature has been added that allows users to register their
copies of **Mayan EDMS** and better help users with commercial support packages.
Registration for non commercial users is voluntary and optional, and in no way
affects the functionality of Mayan EDMS. However even for non commercial users
affects the functionality of **Mayan EDMS**. However even for non commercial users
registration offers the advantage of automatically branding the user's copy
of Mayan EDMS with their name or the company name in the title area.
of **Mayan EDMS** with their name or the company name in the title area.
Per document type indexing
~~~~~~~~~~~~~~~~~~~~~~~~~~
Index can now be restricted to update only on specific document types, this
greatly increases the usefulness of indexes, and prevents unwanted index
updates.
updates.
Bootstrap
~~~~~~~~~
Setting up Mayan EDMS after installation has been indetified by users as the
main difficulty when knowledge about Mayan EDMS is relatively low. To
Setting up **Mayan EDMS** after installation has been indetified by users as the
main difficulty when knowledge about **Mayan EDMS** is relatively low. To
address this situation a new feature that provides preconfigured setups has been
added. These preconfigured setups are published in the Mayan EDMS website and
added. These preconfigured setups are published in the **Mayan EDMS** website and
upon synchonization are available to users, this gives users access and integrators
access to new setups without having to wait for new versions of Mayan EDMS.
access to new setups without having to wait for new versions of **Mayan EDMS**.
Aside from including preconfigured setups, the new bootstrap app
has the ability of dumping an user's current setup into a serialized text file
which can be tweaked by hand and sent via email to other users. The possibilities
enabled by this range from company wide defaults setups to consultants providing
their clients with customized setups without having to access their clients'
Mayan EDMS instances. ``JSON``, ``YAML`` and a custom ``YAML`` format
**Mayan EDMS** instances. ``JSON``, ``YAML`` and a custom ``YAML`` format
(http://djangosnippets.org/snippets/2461/) are supported by this new app.
Add documents to folders in bulk
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
As requested, the ability to add more than one document at a time to a selected
folder has been added.
folder has been added.
Translation updates
~~~~~~~~~~~~~~~~~~~
@@ -96,7 +96,7 @@ removes any traces of code and configuration options related to UNOCONV.
Optimizations
~~~~~~~~~~~~~
Inspired by the idea of getting Mayan EDMS running effectively on low power hardware such as
Inspired by the idea of getting **Mayan EDMS** running effectively on low power hardware such as
the Raspberry Pi, several rounds or profiling and optimization were done.
Some caching optimization were introduced to the permission model, resulting in
@@ -105,13 +105,13 @@ and a 18% query reduction on cache hits.
Upgrading from a previous version
=================================
If you installed Mayan EDMS by cloning the Git repository issue the commands::
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 add the new requirements::
$ pip install -r requirements/production.txt

View File

@@ -118,7 +118,7 @@ to do document OCR using software or services other than Tesseract.
OCR improvements
~~~~~~~~~~~~~~~~
OCR queue state is now reset when reloading Mayan EMDS, avoiding the OCR queue
OCR queue state is now reset when reloading **Mayan EMDS**, avoiding the OCR queue
to remain locked. `unpaper` binary is now an optional pre OCR requirement, the OCR
queue will now continue working is `unpaper` is not installed. Addition of post
OCR processing support for French and German.
@@ -131,7 +131,7 @@ commercial products is now explicitly allowed.
PyPI package
~~~~~~~~~~~~
Mayan EDMS has been packaged and submitted to the PyPI_ Python Package Index
**Mayan EDMS** has been packaged and submitted to the PyPI_ Python Package Index
making it even easier to install and use.
New REST API

View File

@@ -13,7 +13,7 @@ What's new in Mayan EDMS v1.1
Celery
~~~~~~
All background tasks processing has been converted to use Celery_. By default
Mayan EDMS runs in "Eager" until a broker and result backend are configured
**Mayan EDMS** runs in "Eager" until a broker and result backend are configured
as per `Celery's documentation`_. This change made the built-in scheduler and
job_processing apps obsolete, both were removed.
@@ -21,7 +21,7 @@ job_processing apps obsolete, both were removed.
Views namespaces
~~~~~~~~~~~~~~~~
All views are namespaced_ with the name of the app which defines them. If you have
developed 3rd party apps for Mayan EDMS be sure to update any reference to a view
developed 3rd party apps for **Mayan EDMS** be sure to update any reference to a view
by prepending the app name to the view name.
@@ -43,7 +43,7 @@ mail serving.
Update to Django 1.6.8
~~~~~~~~~~~~~~~~~~~~~~
Mayan EDMS has been updated to use Django 1.6.8.
**Mayan EDMS** has been updated to use Django 1.6.8.
Events app
@@ -55,13 +55,13 @@ for `Django activity stream`_
Watch folders
~~~~~~~~~~~~~
Filesystem folders can be monitored for change and their files automatically
uploaded as documents in Mayan EDMS.
uploaded as documents in **Mayan EDMS**.
Vagrant file included
~~~~~~~~~~~~~~~~~~~~~
A vagrant file is now included to allow developers to provision a virtual machine
with the latest development version of Mayan EDMS.
with the latest development version of **Mayan EDMS**.
User locale profile (language and timezone)
@@ -101,7 +101,7 @@ the metadata types of the new document type are automatically assigned.
New release cycle
~~~~~~~~~~~~~~~~~
Starting with this version a new release cycle methodology will come into effect.
The goal of this release cycle is to allow two series of versions of Mayan EDMS to be
The goal of this release cycle is to allow two series of versions of **Mayan EDMS** to be
active at a given time: A new major version with new functionality and a minor version
providing upgrades and fixes. This release (1.1) will be active and supported
during releases of versions 2.x, but will go into end-of-life as soon as
@@ -111,24 +111,24 @@ maintenance mode.
Deprecation of Python 2.6
~~~~~~~~~~~~~~~~~~~~~~~~~
Series 1.0 of Mayan EDMS will be the last series supporting Python 2.6. Series
Series 1.0 of **Mayan EDMS** will be the last series supporting Python 2.6. Series
2.0 will be using Django 1.7.x which itself requires Python 2.7 or later.
Improved testings
~~~~~~~~~~~~~~~~~
Mayan EDMS is now automatically tested against SQLite, MySQL and PostgreSQL.
**Mayan EDMS** is now automatically tested against SQLite, MySQL and PostgreSQL.
API updates
~~~~~~~~~~~
Many new API endpoints have been added exposing the majority of Mayan EDMS functionality.
Many new API endpoints have been added exposing the majority of **Mayan EDMS** functionality.
Messages contextual improvements
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Many updates and simplifications were made to the source text messages to reduce the
difficulty of translating Mayan EDMS and maintaing the contextual meaning of the
difficulty of translating **Mayan EDMS** and maintaing the contextual meaning of the
text messages.
Improved method for custom settings
@@ -186,7 +186,7 @@ More technical documentation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Many new sub topics were added to the development section of the documentation
to allow developers to better understand the inner workings and philosophies
of Mayan EDMS.
of **Mayan EDMS**.
Other changes

View File

@@ -13,7 +13,7 @@ What's new in Mayan EDMS v2.0
Update to Django 1.7
--------------------
The biggest change of this release comes in the form of support for Django 1.7.
Mayan EDMS makes use of several new features of Django 1.7 like: migrations,
**Mayan EDMS** makes use of several new features of Django 1.7 like: migrations,
app config and transaction handling. The version of Django supported in this
version is 1.7.10. With the move to Django 1.7, support for South migrations
and Python 2.6 is removed. The switch to Django 1.7's app config means that
@@ -27,10 +27,10 @@ update a lot of legacy HTML and CSS was removed, greatly simplifying the
existing template and allowing the removal of some.
Theming and re-branding
-----------------------
----------------------
All the presentation logic and markup has been moved into it's own app, the
'appearance' app. All modifications required to customize the entire look of
the Mayan EDMS can now be done in a single app. Very little markup remains
the **Mayan EDMS** can now be done in a single app. Very little markup remains
in the other apps, and it's usually because of necessity, namely the widgets.py
modules.
@@ -98,7 +98,7 @@ app are no longer required. These are:
* slate
ACL system re-factor
--------------------
-------------------
The Access Control System has been greatly simplified and optimized. The
logistics to grant and revoke permissions are now as follows: Only Roles can
hold permissions, groups and user can no longer on their own be granted a
@@ -135,7 +135,7 @@ support. Administrators wanting to make a group of documents public are
encouraged to create an user, group and role for that purpose.
Metadata validators re-factor
-----------------------------
----------------------------
The metadata validators have been split into: Validators and Parsers.
Validators will just check that the input value conforms to certain
specification, raising a validation error is not and blocking the user from
@@ -194,11 +194,11 @@ Failure tolerance
-----------------
Previous versions made use of transactions to prevent data loss in the event of
an unexpected error. This release improves on that approach by also reacting
to infrastructure failures. Mayan EDMS can now recover without any or
to infrastructure failures. **Mayan EDMS** can now recover without any or
minimal data loss from critical events such as loss of connectivity to the
database manager. This changes allow installation of using database managers
that do not provide guaranteed concurrency such as SQLite, to scale to thousand
of documents. While this configuration is still not recommended, Mayan EDMS
of documents. While this configuration is still not recommended, **Mayan EDMS**
will now work and scale much better in environments where parts of the
infrastructure cannot be changed (such as the database manager).
@@ -219,7 +219,7 @@ new scheme.
Default document type and default document source
-------------------------------------------------
After installation a default document type and document source are created,
this means that users can start uploading documents as soon as Mayan EDMS
this means that users can start uploading documents as soon as **Mayan EDMS**
is installed without having to do any configuration setting changes. The
default document type and default document source are both called 'Default'.
@@ -229,7 +229,7 @@ Support for allowing 3rd party apps to unbind links binded by the core apps
was added to further improve re-branding and customization.
Statistics re-factor
--------------------
-------------------
Statistics gathering and generation has been overhauled to allow for the
creation of scheduled statistics. This allows statistics computation to be
scheduled during low load times. A new management command was added to

View File

@@ -1,87 +0,0 @@
===============================
Mayan EDMS v2.1.1 release notes
===============================
Released: May 17, 2016
What's new
==========
This is a bugfix release and all users are encouraged to upgrade.
Fix object column resolution issue in navigation app
----------------------------------------------------
Version 2.1 includes a navigation feature that allows model instances from a
queryset generated using the .defer() or .only() Django filter optimization
features to resolve to their parent class transparently. This optimization
caused problems with the sources app which uses a
Missing Tesseract language files
--------------------------------
The Tesseract OCR backend now reports if the tesseract language file is missing
for the requested document's language.
Other changes
-------------
- Ensure the automatic default index is created after the default document type.
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
===========================
* `GitLab issue #288 <https://gitlab.com/mayan-edms/mayan-edms/issues/288>`_ Can't add sources in mayan-edms 2.1.
* `GitLab issue #289 <https://gitlab.com/mayan-edms/mayan-edms/issues/289>`_ OCR fails with Exception.
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,75 +0,0 @@
================================
Mayan EDMS v2.1.10 release notes
================================
Released: February 13, 2017
What's new
==========
This is a micro release equal to the previews version from the user's point of view.
The version number was increase to workaround some issues with the Python
Package Index not allowing re-uploads.
Changes
-------------
- Update Makefile to use twine for releases.
- Add Makefile target to make test releases.
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
===========================
* None
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,94 +0,0 @@
================================
Mayan EDMS v2.1.11 release notes
================================
Released: March 14, 2017
What's new
==========
This is a bug-fix release and all users are encouraged to upgrade. The focus
of this micro release was REST API improvement.
Changes
-------------
- Added a quick rename serializer to the document type API serializer.
- Added per document type, workflow list API view. The URL for this endpoint is
GET /api/document_states/document_type/{pk}/workflows/
- Added Developer Certificate of Origin. Mayan EDMS was adopted a version 1.1 of
the Linux Foundation Developer Certificate of Origin. All commits must be
signed (`git commit -s`) in order to be merged.
- Added the detail url of a permission in the permission serializer.
- Added endpoints for the ACL app API.
- Implemented document workflows transition ACLs. GitLab issue #321.
- Add document comments API endpoints. GitHub issue #249.
- Add support for overriding the Celery class. The setting is named
MAYAN_CELERY_CLASS and expects a dotted python path to the class to use.
- Changed the document upload view in source app to not use the HTTP referer
URL blindly, but instead recompose the URL using known view name. Needed
when integrating Mayan EDMS into other app via using iframes.
- Addes size field to the document version serializer.
- Removed the serializer from the deleted document restore API endpoint
it doesn't need a serializer being just an action POST endpoint.
- Added support for adding or editing document types to smart links via the
API.
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 #249 <https://github.com/mayan-edms/mayan-edms/issues/249>`_ Add document comments API [$50 US]
* `GitLab issue #321 <https://gitlab.com/mayan-edms/mayan-edms/issues/321>`_ Transition ACLS
* `GitLab issue #357 <https://gitlab.com/mayan-edms/mayan-edms/issues/357>`_ It should be possible to retrieve all workflows for a given DocumentType from the API
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,86 +0,0 @@
===============================
Mayan EDMS v2.1.2 release notes
===============================
Released: May 20, 2016
What's new
==========
This is a bugfix release and all users are encouraged to upgrade.
Language list sorting
---------------------
The document language list and the user locale profile language list are now
sorted to make it easier to find the desired language.
Fixed the metadata lookup options: {{ users }} and {{ groups }}
---------------------------------------------------------------
When configuring metadata type lookup options the {{ users }} and {{ groups }}
special options can be used to display a list of users or a list of groups.
These options where producing a list in the wrong format and were updated.
Other changes
-------------
- Add Makefile for common development tasks
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
===========================
* `GitLab issue #290 <https://gitlab.com/mayan-edms/mayan-edms/issues/290>`_ Unicode characters not supported as metadata values
* `GitLab issue #292 <https://gitlab.com/mayan-edms/mayan-edms/issues/292>`_ Sort languages by name not by abbreviation
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,87 +0,0 @@
===============================
Mayan EDMS v2.1.3 release notes
===============================
Released: June 29, 2016
What's new
==========
This is a bug-fix release and all users are encouraged to upgrade.
Temporary files cleanup
-----------------------
When uploading PDF files that had been OCRed by previous software, the text
parser backend that uses Poppler, would leave behind some temporary files in
the /tmp folder. The issue has been resolved and from the fix a test mixin
system check has been devised that will identify places in the codebase with
similar behaviors, reducing the recurrence of similar issues in the future.
Other changes
-------------
- Add help message when initialsetup migration phase fails. Relates to GitLab issue #296
- Start using self.setdout instead of print as per documentation.
- Fix GitLab issue #295, "When editing a user the top bar jumps to the name of the user".
- Normalize handling of temporary file and directory creation.
- Explicitly check for residual temporary files in tests.
- Add missing temporary file cleanup for office documents.
- Fix file descriptor leak in the document signature download test.
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
===========================
* `GitLab issue #295 <https://gitlab.com/mayan-edms/mayan-edms/issues/295>`_ When editing a user the top bar jumps to the name of the user
* `GitLab issue #309 <https://gitlab.com/mayan-edms/mayan-edms/issues/309>`_ Temp files quickly filling-up my /tmp (1GB tmpfs)
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,81 +0,0 @@
===============================
Mayan EDMS v2.1.4 release notes
===============================
Released: October 28, 2016
What's new
==========
This is a bug-fix release and all users are encouraged to upgrade.
Other changes
-------------
- Fix statistics namespace list display view
- Fix events list display view
- Update required Django version to 1.8.15
- Update required python-gnupg version to 0.3.9
- Improved orphaned temporary files test mixin
- Re-enable and improve GitLab CI MySQL testing
- Improved GPG handling
- New GPG backend system
- Minor documentation updates
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
===========================
* `GitLab issue #311 <https://gitlab.com/mayan-edms/mayan-edms/issues/311>`_ acl page return ContentType:Document
* `GitLab issue #316 <https://gitlab.com/mayan-edms/mayan-edms/issues/316>`_ Error when trying to access the statistics
* `GitLab issue #324 <https://gitlab.com/mayan-edms/mayan-edms/issues/324>`_ Document signature tests fail in Ubuntu 16.10
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,87 +0,0 @@
===============================
Mayan EDMS v2.1.5 release notes
===============================
Released: November 8, 2016
What's new
==========
This is a bug-fix release and all users are encouraged to upgrade.
Other changes
-------------
- Backport resize transformation math operation fix (GitLab #319).
- Update Pillow to 3.1.2
- https://pillow.readthedocs.io/en/3.4.x/releasenotes/3.1.1.html
- https://pillow.readthedocs.io/en/3.4.x/releasenotes/3.1.2.html
- Backport zoom performance improvement (GitLab #334).
- Backport trash can navigation link resolution fix (GitLab #331).
- Improve documentation regarding the use of GPG version 1 (GitLab #333).
- Fix ACL create view HTML response type. (GitLab #335).
- Expland staging folder and watch folder explanation.
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
===========================
* `GitLab issue #319 <https://gitlab.com/mayan-edms/mayan-edms/issues/319>`_ TransformationResize issue with very "long" image
* `GitLab issue #331 <https://gitlab.com/mayan-edms/mayan-edms/issues/331>`_ Trash List View: Items actions should be limited
* `GitLab issue #333 <https://gitlab.com/mayan-edms/mayan-edms/issues/333>`_ "Unable to run gpg - it may not be available."
* `GitLab issue #334 <https://gitlab.com/mayan-edms/mayan-edms/issues/334>`_ Perfomance improvment: prevent unnecessary image.resize in TransformationZoom
* `GitLab issue #335 <https://gitlab.com/mayan-edms/mayan-edms/issues/335>`_ Wrong HTML Content-Type in ACL->NEW
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,73 +0,0 @@
===============================
Mayan EDMS v2.1.6 release notes
===============================
Released: November 23, 2016
What's new
==========
This is a bug-fix release and all users are encouraged to upgrade.
Changes
-------------
- Fix variable name typo in the rotation transformation class.
- Update translations
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
===========================
* None
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,102 +0,0 @@
===============================
Mayan EDMS v2.1.7 release notes
===============================
Released: February 2, 2017
What's new
==========
This is a bug-fix release and all users are encouraged to upgrade. The focus
of this micro release was REST API improvement.
Changes
-------------
- Improved user management API endpoints (initial work by @lokeshmanmode):
- Improved user creation API endpoint to allow specifying the group
membership.
- Improved user editing API endpoint to allow specifying the group
membership.
- Improved permissions API endpoints (initial work by @lokeshmanmode):
- Add permission list API endpoint. This API endpoint lists all possible
permissions in the system.
- Improved role creation API endpoint to allow specifying the role's group
membership and role's permissions.
- Improved role editing API endpoint to allow specifying the role's group
membership and role's permissions.
- Improvements in the API tests of a few apps.
- Add content type list API view to the common app. Content type is required
when querying the events of an object, this view show list of content types
available.
- Add event type list api view. This API view shows all the possible events
that are registered in the system.
- Add event list API view. This view shows all the events that have taken
place in the system.
- Add object event list API view. This view show all the events for a specific
object (document, etc). The content type of the object whose events are being
requested must be specified. The list of available content types is provided
now by the common app API.
- The parser and validation fields of the metadata type model have been enable
in the metadata type API serializer.
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
===========================
* None
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,83 +0,0 @@
===============================
Mayan EDMS v2.1.8 release notes
===============================
Released: February 12, 2017
What's new
==========
This is a bug-fix release and all users are encouraged to upgrade. The focus
of this micro release was REST API improvement.
Changes
-------------
- Fixes in the trashed document API endpoints.
- Improved tags API PUT and PATCH endpoints.
- Bulk document adding when creating and editing tags.
- The version of django-mptt is preserved in case mayan-cabinets is installed.
- Add Django GPG API endpoints for singing keys.
- Add API endpoints for the document states app.
- Add API endpoints for the messsage of the day (MOTD) app.
- Add Smart link API endpoints.
- Add writable versions of the Document and Document Type serializers (GitLab issues #348 and #349).
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
===========================
* `GitLab issue #310 <https://gitlab.com/mayan-edms/mayan-edms/issues/310>`_ Metadata's lookup with chinese messages when new document
* `GitLab issue #348 <https://gitlab.com/mayan-edms/mayan-edms/issues/348>`_ REST API: Document version comments are not getting updated
* `GitLab issue #349 <https://gitlab.com/mayan-edms/mayan-edms/issues/349>`_ REST API: Document Label, Description are not able to update
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,74 +0,0 @@
===============================
Mayan EDMS v2.1.9 release notes
===============================
Released: February 13, 2017
What's new
==========
This is a micro release equal to the previews version from the user's point of view.
The version number was increase to workaround some issues with the Python
Package Index not allowing re-uploads.
Changes
-------------
- Update make file to Workaround long standing pypa wheel bug #99
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
===========================
* None
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,238 +0,0 @@
=============================
Mayan EDMS v2.1 release notes
=============================
Released: May 14, 2016
What's new
==========
Upgrade to use Django 1.8.13
----------------------------
With the end of life support for Django 1.7, moving to the next Mayan EDMS
minor version was a target for this release. The Django minor release chosen was
1.8 as it is very compatible with 1.7 and required minimal changes. Django 1.8
is an LTS release (Long Term Support) meaning that is no new big feature of a
new Django version is required, the project can stay in Django 1.8 for a good
amount of time with no downsides.
Remove remaining references to Django's User model
--------------------------------------------------
The few remaining hard code references to Django's User model that were missed
in a previous release have been removed. Using a custom User model with Mayan
should present very little if any obstacles.
Remove included login required middleware
-----------------------------------------
The custom middleware include with Mayan EDMS that forces user to be
authenticated before being able to access any view has been removed in favor of
a dedicated 3rd party Django app for that purpose. The app chosen was
django-stronghold (http://mikegrouchy.com/django-stronghold/).
Improve generation of success and error messages for class based views
----------------------------------------------------------------------
In the past success messages for actions would show a generic mention to the
object being manipulated (document, folder, tag). Now the errors and success
messages with be more explicit in describing what the view has or was trying
to manipulate.
Remove ownership concept from folders
-------------------------------------
Currently Folders in Mayan EDMS have a field that stores a reference to the
user that has created that folders. One of the design decisions of Mayan EDMS
is that there should never be any explicit ownership of any object. Ownership
is relative and is defined by the Access Control List of an object. The
removal of the user field from the Folders model brings this app in line with
the defined behavior.
Replacement of strip_spaces middleware with the spaceless template tag
----------------------------------------------------------------------
As a size optimization technique HTML content was dynamically stripped of spaces
as it was being served. The technique used involved detecting the MIME type of
the content being served and if found to be of text/HTML type spaces between
tags were stripped. An edge case was found where this did not worked always.
The approached has been changed to use Django's official tag to strip spaces.
In addition to using an official approach, the removal of spaces only happens
when the template is compiled and not at each HTTP response. The optimization
is minimal but since it happened at every response a small increase in speed
is expected for all deployment scenarios.
Deselect the update checkbox for optional metadata by default
-------------------------------------------------------------
During the last releases the behavior of the of metadata edit checkbox has seen
several tune ups. Thanks to community feedback one small change has been
introduced. The edit checkbox will be deselected by default for all optional
document type metadata entries.
Implement per document type document creation permission
--------------------------------------------------------
If is now possible to grant the document creation permission to a role for a
document type. Previously document creation was a "blanket" permission. Having
the permission meant that user could create any type of document. With this
change it is now possible to restrict which types of document users of a
specific role can create.
Make document type delete time period optional
----------------------------------------------
The entries that defined after how long a document in the trash would be
permanently deleted have been made optional. This means that if a document
type has this option blank, the corresponding document of this type would never
be deleted from the trash can.
Fixed date locale handling in document properties, checkout and user detail views
---------------------------------------------------------------------------------
A few releases back the ability to for users to set their timezone was added.
This change also included a smart date rendering update to adjust the dates
and times fields to the user's timezone. Some users reported a few views where
this timezone adjustment was not happening, this has been fully fixed.
Default index
-------------
During new installations a default index that organizes document by year/month
when they were uploaded will be created to help users better understand the
concept of indexes in Mayan EDMS.
HTML5 upload widget
-------------------
A common request is the ability to just drap and drop documents from other
windows into Mayan EDMS's document upload wizard. This release includes that
capability and will also show a completion bar for the upload. Document
uploading is sped up dramatically with this change.
Message of the Day app
----------------------
Administrators wanting to display announcements has no other way to do so
than to customize the login template. To avoid this a new app has been added
that allows for the creation of messages to be shown at the user login
screen. These messages can have an activation and an expiration date and
time. These messages are useful for display company access policies,
maintenance announcement, etc.
Document signing
----------------
The biggest change for this release if the addition of document signing from
within the UI. Enterprise users request this feature very often as in those
environments cryptographic signatures are a basic requirement. Previously
Mayan EDMS had the ability to automatically check if a document was signed and
if signed, verify the validity of the signature. However, to sign documents
user had to download the document, sign the document offline, and either
re-upload the signed document as a new version or upload a detached
signature for the existing document version. Aside from being now able to sign
documents from the web user interface, the way keys are handled has been
rewritten from scratch to support distributed key storage. This means that
a key uploaded in one computer by one user can be used transparently by
other users in other computers to sign documents. The relevant access control
updates were added to the new document signing system. Users wanting to sign a
document need the singing permission for the document (or document type),
for the private key they intend to use, and the passphrase (if the key has one).
Finally documents are now checked just once for signatures and not every time
they are accessed, this provides a very sizable speed improvement in document
access and availability.
Other changes
=============
- Upgrade Python requirements to recent versions.
- Rename 'Content' search box to 'OCR'.
- Silence all Django 1.8 model import warnings.
- Add icons to the document face menu links.
- Increase icon to text spacing to 3px.
- Add new permission: checkout details view.
- Add HTML tags stripping to the browser title generation template.
- Folder and Tag creation API calls now return the id of the created instances.
- Update Document model's uuid field to use Django's native UUIDField class.
- Add new split view index navigation
- Newly uploaded documents appear in the Recent document list of the user.
- Start migration from django-sendfile to django-downloadview.
- Index more model fields.
- Navigation system support querysets using .defer() or .only() optimizations.
- API fixes and improvements.
- Increase total test count to 311.
- Increase test coverage to 77%.
- Documentation improvements.
- Handle unicode filenames in staging folders.
- Add staging file deletion permission.
- New document_signature_view permission.
- Instead of multiple keyservers only one keyserver is now supported.
- Replace document type selection widget with an opened selection list.
- Add roadmap documentation chapter.
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
===========================
* `GitLab issue #137 <https://gitlab.com/mayan-edms/mayan-edms/issues/137>`_ Add app creation chapter to documentation.
* `GitLab issue #147 <https://gitlab.com/mayan-edms/mayan-edms/issues/147>`_ Add in app document signing.
* `GitLab issue #161 <https://gitlab.com/mayan-edms/mayan-edms/issues/161>`_ Email backend setup documentation.
* `GitLab issue #162 <https://gitlab.com/mayan-edms/mayan-edms/issues/162>`_ Add HTML5 file uploader.
* `GitLab issue #191 <https://gitlab.com/mayan-edms/mayan-edms/issues/191>`_ Split index contents title into title and path/breadcrumb widget.
* `GitLab issue #206 <https://gitlab.com/mayan-edms/mayan-edms/issues/206>`_ Support for dynamic LOGIN_EXEMPT_URLS.
* `GitLab issue #208 <https://gitlab.com/mayan-edms/mayan-edms/issues/208>`_ Add tagging step to upload wizard.
* `GitLab issue #218 <https://gitlab.com/mayan-edms/mayan-edms/issues/218>`_ Cookie cutter template for Mayan apps.
* `GitLab issue #222 <https://gitlab.com/mayan-edms/mayan-edms/issues/222>`_ Add notice board or Message of the Day.
* `GitLab issue #225 <https://gitlab.com/mayan-edms/mayan-edms/issues/225>`_ Remove hard coded User model.
* `GitLab issue #232 <https://gitlab.com/mayan-edms/mayan-edms/issues/232>`_ "Create documents" is a blanket permission for a user to create a document of any document type.
* `GitLab issue #246 <https://gitlab.com/mayan-edms/mayan-edms/issues/246>`_ Upgrade to Django version 1.8 as Django 1.7 is end-of-life.
* `GitLab issue #251 <https://gitlab.com/mayan-edms/mayan-edms/issues/251>`_ Add method to disable metadata edit form "update" checkbox when not needed.
* `GitLab issue #255 <https://gitlab.com/mayan-edms/mayan-edms/issues/255>`_ UnicodeDecodeError in apps/common/middleware/strip_spaces_widdleware.py.
* `GitLab issue #256 <https://gitlab.com/mayan-edms/mayan-edms/issues/256>`_ typo in locale settings (Dutch).
* `GitLab issue #261 <https://gitlab.com/mayan-edms/mayan-edms/issues/261>`_ Feature: Document Access Audit Logging.
* `GitLab issue #265 <https://gitlab.com/mayan-edms/mayan-edms/issues/265>`_ Indexes show list (show indexe only if the user has ACLs on document type).
* `GitLab issue #266 <https://gitlab.com/mayan-edms/mayan-edms/issues/266>`_ Smart links : Dynamic label with Postgresql.
* `GitLab issue #267 <https://gitlab.com/mayan-edms/mayan-edms/issues/267>`_ Release 2.1 RC1 : Notes and ideas.
* `GitLab issue #268 <https://gitlab.com/mayan-edms/mayan-edms/issues/268>`_ Release 2.1 RC1 : Bug to access inside an indexes.
* `GitLab issue #270 <https://gitlab.com/mayan-edms/mayan-edms/issues/270>`_ Release 2.1 RC1 : Bug statistics.
* `GitLab issue #274 <https://gitlab.com/mayan-edms/mayan-edms/issues/274>`_ [Release 2.1 RC2] Web Tests.
* `GitLab issue #275 <https://gitlab.com/mayan-edms/mayan-edms/issues/275>`_ [Release 2.1 RC2] Notes.
* `GitLab issue #276 <https://gitlab.com/mayan-edms/mayan-edms/issues/276>`_ [Release 2.1 RC2] API Tests.
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,258 +0,0 @@
=============================
Mayan EDMS v2.2 release notes
=============================
Released: April 26, 2017
What's new
==========
API changes
-----------
Refactor of the metadata API URLs to use the resource/sub resource paradigm.
Before:
/api/metadata/metadata_types/
/api/metadata/metadata_types/{pk}/
/api/metadata/document/metadata/{pk}/
/api/metadata/document/{pk}/metadata/
/api/metadata/document_type/{document_type_pk}/metadata_types/optional/
/api/metadata/document_type/{document_type_pk}/metadata_types/required/
After:
/api/metadata/metadata_types/
/api/metadata/metadata_types/{metadata_type_pk}/
/api/metadata/document_types/{document_type_pk}/metadata_types/
/api/metadata/document_types/{document_type_pk}/metadata_types/{metadata_type_pk}/
/api/metadata/documents/{document_pk}/metadata/
/api/metadata/documents/{document_pk}/metadata/{metadata_pk}/
Document API URLs updated to use the resource/sub resource paradigm.
Before:
/api/documents/document_version<pk>
/api/documents/document_pages<pk>
After:
/api/documents/<pk>/version/<version_pk>
/api/documents/<pk>/version/<version_pk>/pages/<page_pk>
Fields that reference a resource by URL now have the suffix '_url' to differentiate
then from fields include the resource.
Before:
'document': '/api/documents/10'
After:
'document_url': '/api/documents/10'
Removal of the document version revert API endpoint. To revert a document to a
previous version using the API, use the DELETE verb to delete the most recent
document version to be discarded.
Pages data is no longer included as part of the version data. Instead a link to
the document version's pages has been added by the name 'pages_url'. This
resolved to '/api/documents/<pk>/pages/<page_pk>/pages'.
- New API endpoints (initial work by @lokeshmanmode):
- API endpoint to change an user's groups subscription.
- API endpoint that list all available permissions types.
- API endpoint to view or change a role's groups.
- API endpoint to view or change a role's permissions.
Code cleanups
-------------
As with every release time was dedicated to improve the organization, size, and
readability of code. To this end the licenses of each app were moved to their
own module in every app, called licenses.py. As part of the code cleanup the
seldom used app called 'installation' which tracked runtime Python packages
installed alongside Mayan EDMS for debugging purposes has been removed. The
dependency on django-filetransfer has been removed by using
django-downloadviews which allows the creation of class based download views.
Performance
-----------
The document language list has been moved from the document model to the
document form. This change speeds up loading time, document properties views
and API documentation views. This version includes the new image caching
pipeline which stores transformed (rotated, scaled, etc) versions of the
document's images resulting in an overall display loading speed up. The fonts
used are now loaded from Mayan EDMS itself and not from the web. This change
also allow Mayan EDMS to work in a completely off-line manner.
Searching
---------
Support for searching pages as well as documents has been added. This
functionality has been exposed in the API too.
Security
--------
This release enables the password validation for the user password validation
support provided by Django. This change allows administrator to set password
policies limiting the minimum amount of characters needed for example. For
more information on how to configure the password validation feature refer
to Django's documentation at: https://docs.djangoproject.com/en/1.11/topics/auth/passwords/#enabling-password-validation
Sources
-------
To help test the interval sources (POP3 Email, IMAP Email, Watch folders) a
"Check now" button was added that allows users to trigger the source's
document fetching code instantly. Previously users had to wait until the next
scheduled interval to verify if their source's settings were correct.
Testing
-------
The testing process has been simplified by adding a new option '--mayan-apps'
to the test runner that automatically tests all Mayan EDMS apps that report to
include tests. The app flag that indicates when an app has test was changed
from 'test' to the more explicit 'has_test'. The packaging manifest now
includes test files, this means that tests can now be executed in production.
The total number of tests was raised to 359 and the total coverage increased
to 81%.
A custom test runner replacing the previous custom management command
called `runtests`. Testing for orphaned temporary files and orphaned file
handles is now optional and controlled by the COMMON_TEST_FILE_HANDLES and
COMMON_TEST_FILE_HANDLES settings.
User interface
--------------
To avoid warping on long full names or usernames, the user's full name or
username is no longer displayed in the main menu. Instead the word "Profile"
is displayed and the users's full name or username is displayed when the
"Profile" icon is clicked. Drop down menus support has been added and enabled
for several apps like documents, folders, and tags. This change make navigation
much faster and required less mouse travel.
Support was added for a dashboard widgets and several default widgets are
included and enabled.
A view to clone a document page transformation to other pages has been added.
A document page transformation navigation bug has been fixed. To aid visual
lookup, tags are now alphabetically ordered by label.
A new workflow view that lists documents currently executing a workflow and
documents by their specific current workflow state has been added to the
main menu.
Other changes
-------------
- Cabinets app is now integrated as a core app.
- Now that the Cabinets app is included, the Folders app has been disabled
by default. To enable the Folders apps add the following line to your
settings/local.py file::
INSTALLED_APPS += ('folders',)
- Fix height calculation in resize transformation.
- Improve upgrade instructions.
- Update project to work with Django 1.10.
- Add support for attaching multiple tags to single or multiple documents.
- Refactor the workflow for removing tags from single and multiple documents.
- Move new version creation blocking from the documents app to the checkouts app.
- DEBUG now defaults to False.
- Production settings don't override the DEBUG variable. DEBUG can be set to True
on production install to debug errors live.
- Refactor add document to folder view to allow adding a documents to multiple folders at the same time.
- Refactor the remove document from folder view to allow removing documents from multiple folders at the same time.
- Refactor the document mailing views and add support for sending multiple documents via email at the same time.
- Refactor the document metadata views and add support for adding multiple metadata types to a document at the same time.
- Addition of a new OCR backend using PyOCR. This backend tries first to do OCR
using libtesseract. If libtesseract is not available the backend defaults to
calling the Tesseract executable.
- Make the lock_manager.backends.file_lock.FileLock the new default locking backend.
- New transformations added:
- Rotate 90 degrees
- Rotate 180 degrees
- Rotate 270 degrees
- Mirror (horizontal)
- Flip (vertical)
- Gaussian blur
- Unsharp masking
- Add tool to launch all workflows. GitLab issue #355
Removals
--------
- Removal of the OCR_TESSERACT_PATH configuration setting.
- Removal of the Tesseract OCR backend. Replaced with a PyOCR backend.
- Remove usage of pytesseract Python library.
- Installation app.
- Recent searches feature.
Upgrading from a previous version
---------------------------------
If installed via PIP
~~~~~~~~~~~~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
If installed 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.
Manually upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Remove deprecated requirements::
$ pip uninstall -y -r removals.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
===========================
* `GitLab issue #185 <https://gitlab.com/mayan-edms/mayan-edms/issues/185>`_ Add support for nested menus
* `GitLab issue #285 <https://gitlab.com/mayan-edms/mayan-edms/issues/285>`_ Dashboard widgets
* `GitLab issue #294 <https://gitlab.com/mayan-edms/mayan-edms/issues/294>`_ Move new version creation blocking from the documents app to the checkouts app
* `GitLab issue #301 <https://gitlab.com/mayan-edms/mayan-edms/issues/301>`_ Remove the installation app
* `GitLab issue #303 <https://gitlab.com/mayan-edms/mayan-edms/issues/303>`_ Update urlpatterns in urls.py files to be a list of django.conf.urls.url() instances instead.
* `GitLab issue #304 <https://gitlab.com/mayan-edms/mayan-edms/issues/304>`_ Remove string view arguments of url() in urls.py files.
* `GitLab issue #307 <https://gitlab.com/mayan-edms/mayan-edms/issues/307>`_ Enter multiple Tags at once
* `GitLab issue #310 <https://gitlab.com/mayan-edms/mayan-edms/issues/310>`_ Metadata's lookup with chinese messages when new document
* `GitLab issue #311 <https://gitlab.com/mayan-edms/mayan-edms/issues/311>`_ acl page return ContentType:Document
* `GitLab issue #319 <https://gitlab.com/mayan-edms/mayan-edms/issues/319>`_ TransformationResize issue with very "long" image
* `GitLab issue #328 <https://gitlab.com/mayan-edms/mayan-edms/issues/328>`_ Upgrade Warning/Error during performupgrade (v2.1.3 to v2.1.4)
* `GitLab issue #342 <https://gitlab.com/mayan-edms/mayan-edms/issues/342>`_ Tags should be of unordered / unsorted data type
* `GitLab issue #343 <https://gitlab.com/mayan-edms/mayan-edms/issues/343>`_ Bootstrap's dependency on fonts.googleapis.com causes Mayan EDMS web interface load slowly if public internet is unreachable
* `GitLab issue #355 <https://gitlab.com/mayan-edms/mayan-edms/issues/355>`_ Workflow changes only on new added documents
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,101 +0,0 @@
=============================
Mayan EDMS v2.3 release notes
=============================
Released: June 08, 2017
What's new
==========
This is a bug-fix and minor feature release and all users are encouraged to
upgrade.
Changes
-------------
- Index node expression template field changed from a 128 character field to an
unlimited size text field to allow for complex indexing expressions.
- When updating the metadata of a document, any input in the value form field
will select the adjacent checkbox.
- Support for passing the FUSE option `allow-other` and `allow-root` was added
to the index mirroring management command.
- Added support for checking for the latest released version of Mayan from the
About menu.
- Added support for rebuilding specific indexes instead of only being able to
rebuild all index. GitLab issue #372.
- Rewrite document indexing code to be faster and use less locking. Thanks to
Macrobb Simpson (@Macrobb) for the initial implementation.
- Use a predefined file path for the file lock.
- Catch documents with not document version when displaying their thumbnails.
- Add custom script_prefix aware resolve function and use it for the
document page navigation views. Fixes an issue when Mayan is installed
as a sub URL app. Thanks to Gustavo Teixeira(@gsteixei) for the issue and
investigation.
- Support was added to update document indexes after workflow state changes.
- An helper was added to access a documents workflow by name. To this end
a new field was added to the Workflow class called `Internal name`.
This new field makes it much easier to get a document's workflow instance.
If for example a document has a workflow called `Publish` with the internal
name `publish_workflow`, it will be accessible in the indexing template as
{{ document.workflow.publish_workflow }}. The latest state of the workflow
can be accessed using {{ document.workflow.publish_workflow.get_current_state }}.
- Added a new API endpoint to display a list of all the available search models.
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
===========================
* `GitLab issue #371 <https://gitlab.com/mayan-edms/mayan-edms/issues/371>`_ Auto select checkbox when updating metadata
* `GitLab issue #372 <https://gitlab.com/mayan-edms/mayan-edms/issues/372>`_ (Feature request) Allow 'rebuild index' to rebuild only a selected index
* `GitLab issue #383 <https://gitlab.com/mayan-edms/mayan-edms/issues/383>`_ Page not found when deployed to sub-uri
* `GitLab issue #385 <https://gitlab.com/mayan-edms/mayan-edms/issues/385>`_ mountindex: how to specify FUSE mount option allow_other?
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,156 +0,0 @@
=============================
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/

View File

@@ -1,69 +0,0 @@
===============================
Mayan EDMS v2.5.1 release notes
===============================
Released: July 07, 2017
What's new
==========
This version is identical to version 2.5. It was released to workaround some
issues with the recent migration of PyPI (https://mail.python.org/pipermail/distutils-sig/2017-June/030766.html)
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
===========================
* `GitLab issue #378 <https://gitlab.com/mayan-edms/mayan-edms/issues/378>`_ Add metadata widget changes from @Macrobb
* `GitLab issue #379 <https://gitlab.com/mayan-edms/mayan-edms/issues/379>`_ Add new document version list view permission.
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,74 +0,0 @@
===============================
Mayan EDMS v2.5.2 release notes
===============================
Released: July 08, 2017
What's new
==========
Improve duplicate document scan
-------------------------------
Previously the way document creation code was enclosed in a single database
transactions. This cause the duplicate scan at upload code to received a
document reference to uncommitted database data. The single database
transaction was split into smaller units to make sure the duplicate scan
recevies saved and committed data.
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
===========================
* None
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,243 +0,0 @@
=============================
Mayan EDMS v2.5 release notes
=============================
Released: July 07, 2017
What's new
==========
OCR text download
-----------------
A link and view were added to download the entire OCR text of a document as a
separate file. The link can be found under the "Actions" dropdown when the
"OCR" tab of a document is selected.
SANE document source
--------------------
A validation error was being raised when the resolution field of the SANE
document source was left blank. This issue has been fixed and works as expected
now.
Mailing profiles
----------------
Previously, the way documents were emailed was controlled by configuration
settings that only system administrator could change as the OS level. It is
now possible to create mailing profiles from within the user interface. This
allows for Mayan administrators to add mailing profiles without the
intervention system administrators. It also provides the opportunity to create
multiple mailing profiles. This is useful for sending documents via different
email providers depending on things like priority of delivery, or email size
limitations. For multi-tenant environments, this also means that each tenant
can now send documents via email with their own respective email accounts.
For system administrators, this means there is no longer a need to rely on a
single email profile for the entirety of all the tenants in a deployment,
which could be taxing email quota limits or triggering spam filters. For
more information on the multi-tenant plugin visit the Mayan app store at:
http://www.mayan-edms.com/store/
New transformation
------------------
A lineart transformation was added to reduce the amount of colors in a
document's image to just 2. This is useful to increase the OCR accuracy on
some kind of documents whose color or layout may confuse the OCR engine
and lower the accuracy of the text recognition.
UI reorganization
-----------------
The main menu was been reorganization for clarity of function. The "About" menu
has been renamed to "System" to signify that the items in this menu relate
to system configuration topics. The "Tools" and "Setup" sub-menus, were moved
from the "Profile" menu to the new "System" menu. The "Profile" menu has been
renamed to "User". Additionally, the "User" menu is now part of the main menu
instead of floating right on the layout. This change along with others
improve the usability on small devices like tablets and smartphones.
PDF compatibility updates
-------------------------
Support for non-compliant, "broken", and PDFs encrypted with no passwords has
been added. Previously no effort was made to process the images for these
files. The code for detecting the number of pages in a PDF has also been
improved to retry several methods when failing on non-compliant PDF documents.
Office documents compatibility updates
--------------------------------------
Improvements to the Libre Office conversion code were added, including a
workaround for Libre Office bug #37531 (https://bugs.documentfoundation.org/show_bug.cgi?id=37531)
which sometimes manifested when uploading multiple office documents
sequentially.
Metadata setup UI improvements
------------------------------
A new widget to define the document type to metadata type relationship has been
added. The new widget provides a method to switch between required metadata
and optional metadata for a document type. This new method is not only faster
but does not force users to remove a metadata type before making the switch
and thus avoid deletion of existing metadata entries. A new view was also added
to change the document type to metadata type relation not only the document
type view but also from the metadata type view eliminating travel between these
two views when creating new metadata types and assigning them to document
types.
Duplicated document scanning
----------------------------
Support to scan and list duplicated document scanning was added in the form of
a new document list link under the "Documents" main menu. Every time a document
is uploaded, a document scan will be triggered to determine if the new document
is a duplicate of an existing document. Duplicate documents will be listed
in a new "Duplicated documents" link in the main menu. A full document list
scan can also be triggered by using the new "Duplicated document scan" button
in the tools menu. Finally, a new tab in the document view has been added
called "Duplicates" that will list all duplicates of the currently
selected document when in the document's view. Related to this feature is the
addition of being able to search documents by their checksum. This was done by
indexing the checksum database field and by adding the checksum as a search
field in the advanced document search view and via the API.
Login session control
---------------------
Support was added to control the length of time a log in session lasts. First
from the user interface side of things a "Remember me" checkbox was added to
the log in form that will cause the session to persist after the browser is
closed. If this checkbox is left blank the session will be destroyed when the
browser closes and the user will need to log in again when accessing any of the
URLs. The second part of this feature is for administrators. The configuration
setting AUTHENTICATION_MAXIMUM_SESSION_LENGTH was added to control the maximum
time a logged in session will persist when users click the "Remember me"
checkbox. The default of this setting is 30 days.
Document image cache disabling
------------------------------
It is now possible to disable the document page image caching. The document
image cache works on two level and hence two setting options were added.
The first is the DOCUMENTS_DISABLE_BASE_IMAGE_CACHE option which disables the
first layer of caching, the generation of a master image file for each document
page. This means that subsequent request for a page's image will trigger the
conversion of the document from its original uploaded file. The second option,
DOCUMENTS_DISABLE_TRANSFORMED_IMAGE_CACHE, disables just the caching of the
transformed (rotated, resized, zoomed) images of document pages. The settings
can be used together or separately depending on how much disk space saving is
desired. These settings give control over the trade-off between disk space
savings and higher CPU utilization. These settings are ideal for installations
with a lot of documents, that want to conserve disk space, and have CPU capacity
to spare. Multi-tenant installations can also benefit from these new settings.
Document filter by workflow state
---------------------------------
A few versions over, a main menu item was added to list documents by their
workflow and/or their current workflow state. Support for filtering by the
initial workflow state has been added to this feature.
Support for restoring forgotten password
----------------------------------------
Views and templates were added to enable the typical "Forgotten
password" worflow using a signed token via email.
Other Changes
-------------
- 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.
- Use Toastr libary for screen messages.
- Reduce verbosity of some debug messages in the MayanAppConfig, settings and,
mailing discovery.
- Make sure lookup selection widgets also trigger the metadata update
checkbox on change.
- 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.
- 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
- The trashed document deletion action is now a background task. This
feature results is much faster trashed document deletion and trash
can emptying.
- Remove animated spinners to lower browser memory usage and increase
responsiveness.
- Render a document page placeholder while the real document page
loads. This change avoids "jumping" effect when loading many thumbnails.
- Increase lazy load thresholds. More thumbnails and document pages
will be loaded and visible by default when a view loads.
- Improve usability and appearance on medium and small devices like
tablets and smartphones.
- Do hard word break on form titles to avoid horizontal scroll on
small displays.
- Python3 compatilibty improvements by removing all explicit conversion
using the unicode() function.
- Unicode handling improvements.
- Update required versions of Pillow and django-suit.
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

@@ -1,69 +0,0 @@
=============================
Mayan EDMS v2.6 release notes
=============================
Released: July 18, 2017
What's new
==========
Other Changes
-------------
- Fix issue when editing or removing metadata from multiple documents.
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
===========================
* None
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,78 +0,0 @@
===============================
Mayan EDMS v2.6.2 release notes
===============================
Released: July 22, 2017
What's new
==========
This is a bug fix release and users are encouraged to upgrade.
Other Changes
-------------
- Fix deprecation warning to prepare upgrade to Django 1.11 and 2.0.
- Fix zoom feature in document page view.
- Add support to run tests against a MySQL or Postgres container.
- Improve tag widget customization by moving the markup to its own template.
- Fix document page widget appearance in the document page list view.
- Make document version order deterministic.
- Allow total page number instrospection of encrypted PDF with non ASCII
user properties. GitLab issue #411.
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
===========================
* None
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,87 +0,0 @@
===============================
Mayan EDMS v2.6.3 release notes
===============================
Released: July 25, 2017
What's new
==========
This is a bug fix release and users are encouraged to upgrade.
Changes
-------
- Add makefile target to launch a PostgreSQL container.
- Use resolve_url instead of redirect to resolve the post login URL.
- Make the intialsetup and performupgrade management tasks work
with signals to allow customization from 3rd party apps.
- PEP8 cleanups.
- Add tag_ids keyword argument to the Source.handle_upload
model method. GitLab issue #413.
- Add overflow wrapping so wrap long titles in Firefox too.
- Makes Roles searchable. GitLab issue #402.
- Add line numbers to the debug and production loggers.
Add date and time to the production logger.
- Add support for generating setup.py from a template. GitLab
#149 #200.
- Add fade in animation to document images.
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
===========================
* `GitLab issue #149 <https://gitlab.com/mayan-edms/mayan-edms/issues/149>`_ Autogenerate setup.py
* `GitLab issue #200 <https://gitlab.com/mayan-edms/mayan-edms/issues/200>`_ dependencies in setup.py not up to date with requirements
* `GitLab issue #402 <https://gitlab.com/mayan-edms/mayan-edms/issues/402>`_ Make permissions and roles searchable.
* `GitLab issue #413 <https://gitlab.com/mayan-edms/mayan-edms/issues/413>`_ source.models.Source.handle_upload does not support tag_ids but upload_document does
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,71 +0,0 @@
===============================
Mayan EDMS v2.6.4 release notes
===============================
Released: July 25, 2017
What's new
==========
This is a bug fix release and users are encouraged to upgrade.
Changes
-------
- Add missing replacements of reverse to resolve_url.
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
===========================
* None
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,143 +0,0 @@
=============================
Mayan EDMS v2.6 release notes
=============================
Released: July 18, 2017
What's new
==========
Sending documents to multiple recipients
----------------------------------------
Support was added to send a document as an attachment, or a link to a document
to multiple email recipients. To use this feature enter a comman separated
list of email recipients in the "Email address" field.
Visual changes
--------------
Several patches to change and improve the user interface landed on this release.
The first, by Macrobb Simpson @Macrobb, makes the content area width, match
window area. This means that on almost all device screen sizes the content area
will be almost fullscreen. Another path from Macrobb Simpson, improves the
visual appearance of the document metadata widget. The other big change is the
new list item view template which lists documents in an column, row layout.
With this layout document thumbnails are more clearly visible, much more
information can be displayed for each document, and works much better on small
screen devices like tablets and smartphone than a responsive table which
requires two axis navigation on small screens. The height of the dashboard
items is now adjusted via javascript to ensure correct layout regardless of
screen size of message length when translated.
Search
------
This release adds users and groups to the list of objects that are searchable
via the API. The current list of searchable objects is: metadata types,
users, groups, tags, documents, document pages, and cabinets.
Logging
-------
The logging configuration was improved to create a log for critical errors
when running on production mode. The default location for this log file is:
/mayan/error.log. This path can be changed with the COMMON_PRODUCTION_ERROR_LOG_PATH
setting. This log file will capture application errors and request exceptions.
Cabinets
--------
The access control for cabinets has been fixed in some regards and improved in
others. The permission to add and remove documents can now be applied to
individual root cabinets instead of globally for a role. Also, the permission
to add or remove documents from cabinets must also now be granted to a document
or document type. In other words, to add a document to a cabinet, the user's
role must have the permission to add documents to cabinet, for the cabinet
to recieve the document and for the document about to be added.
New permission
--------------
The patch to add a permission to view a document's version list was backported
from the development branch to make it accesible now. Like cabinets, the tag
access control now works on two levels. Now to attach a tag to a document,
the permission to attach tags must be granted to the tag to attach and to the
document that will receive the tag.
ACL changes
-----------
The document type permissions namespace was renamed from "Document setup" to
"Document types" for clarity. Along with that change, support was added
for granting the document type edit, document type delete, and document type view
permissions to individual document type instances instead of just globally.
Testing
-------
The documents app view tests now test for view access and not just permission.
Testing against access is more robust and also tests for permissions
implicitly.
Other Changes
-------------
- Fix HTML mark up in window title. GitLab #397.
- Sort setting by namespace label and by global name second.
- Sort indexes by label.
- Switch the order of the DEFAULT_AUTHENTICATION_CLASSES of DRF. GitLab #400.
- Improve code to unbind menu entries.
- Increase the size of the mailing profile label field to 128 characters.
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
===========================
* `GitLab issue #378 <https://gitlab.com/mayan-edms/mayan-edms/issues/378>`_ Add metadata widget changes from @Macrobb
* `GitLab issue #396 <https://gitlab.com/mayan-edms/mayan-edms/issues/396>`_ Add support for emailing documents to a recipient list.
* `GitLab issue #397 <https://gitlab.com/mayan-edms/mayan-edms/issues/397>`_ Title on Index Page is Broken
* `GitLab issue #400 <https://gitlab.com/mayan-edms/mayan-edms/issues/400>`_ Django REST framework's BasicAuthentication doesn't work with Oauth2_proxy
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,97 +0,0 @@
===============================
Mayan EDMS v2.7.1 release notes
===============================
Released: September 3, 2017
What's new
==========
Unicode metadata when uploading a document
------------------------------------------
An issue with Django's unquote_plus caused documents being uploaded with an
unicode, no English character in an initial metadata value field to fail.
The unquote_plus usage was remove in favor of a dedicate URL parsing library
called furl. GitLab issue #423. Thanks to Gustavo Teixeira (@gsteixei) for the
find.
Silent errors during initialization
-----------------------------------
When Python raises an ImportError exception, it is not possible to determine
the cause of the error. The local.py import code was updated to interpret the
text of the ImportError exception and ignore it only if the local.py was
missing, which is the case during the initialization commands execute after
the initial installation. Any error in the local.py file will now cause Mayan
to exit. Thanks to MacRobb Simpson for the report and solution.
String usage in the local.py file
---------------------------------
Python 2.7 uses byte strings by default. Byte strings cannot be used in
conjunction with unicode strings. A missing import was causing strings in
the local.py file to be interpreted as byte string while the rest of Mayan
uses unicode strings. Using non English special characters in a string located
in the local.py file would have cause a Unicode errors. For new installations
from Mayan version 2.7.1 onwards, the line
`from __future__ import absolute_imports, unicode_literals` is included when
generating the local.py for the first time. For existing installations,
adding this line at the top is all that's needed. GitLab issue #424. Thanks to
Gustavo Teixeira (@gsteixei) for the find and researching the cause.
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
===========================
* `GitLab issue #423 <https://gitlab.com/mayan-edms/mayan-edms/issues/423>`_ Metadata can't handle non ascii chars on upload
* `GitLab issue #424 <https://gitlab.com/mayan-edms/mayan-edms/issues/424>`_ DjangoUnicodeDecodeError on document proprieties due document language field
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

Some files were not shown because too many files have changed in this diff Show More