Compare commits
101
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8974bf07a2 | ||
|
|
3beb07c373 | ||
|
|
766df7f38b | ||
|
|
ae48d80624 | ||
|
|
059dff02f3 | ||
|
|
18ae37228a | ||
|
|
8298f50334 | ||
|
|
7941cd83a0 | ||
|
|
b1c573dbcf | ||
|
|
e6750d3777 | ||
|
|
2b5943f15e | ||
|
|
6f324c4e00 | ||
|
|
352fcbae6e | ||
|
|
bf1aea0157 | ||
|
|
eda6d65184 | ||
|
|
d8525383f5 | ||
|
|
8ea22f3b3b | ||
|
|
1f6afd5629 | ||
|
|
c7ed8ca09c | ||
|
|
ee44435e47 | ||
|
|
600d674cb0 | ||
|
|
9cdbe77f54 | ||
|
|
0cbbcda2e7 | ||
|
|
bfe0096cc9 | ||
|
|
f061e32f00 | ||
|
|
6d946db0c8 | ||
|
|
a823bdc6be | ||
|
|
7bb53958de | ||
|
|
e7ba91fbaf | ||
|
|
121063ae00 | ||
|
|
af027acaa5 | ||
|
|
2fb8691028 | ||
|
|
cd6f503d68 | ||
|
|
1354fc6893 | ||
|
|
d0d9bd0365 | ||
|
|
8f777fd39b | ||
|
|
39863ab095 | ||
|
|
dabd76bc04 | ||
|
|
fedebac7c7 | ||
|
|
46072b8c4c | ||
|
|
387322faa2 | ||
|
|
afeef2dd02 | ||
|
|
d0c08fa32d | ||
|
|
0a57907a51 | ||
|
|
3ef608599b | ||
|
|
ae082ce52e | ||
|
|
19d268ce58 | ||
|
|
bd01ef489d | ||
|
|
072a883cdd | ||
|
|
bc0a539301 | ||
|
|
bdef1d817d | ||
|
|
f649b49f42 | ||
|
|
4dd56492dd | ||
|
|
38bc67a329 | ||
|
|
9b4186cabe | ||
|
|
321058a610 | ||
|
|
c7814f45ed | ||
|
|
86d349f18b | ||
|
|
60bfe94528 | ||
|
|
05883260f7 | ||
|
|
e9a0749edf | ||
|
|
456a3c55e3 | ||
|
|
e2d8e01f27 | ||
|
|
f565b99990 | ||
|
|
341b52655c | ||
|
|
ae6a481e82 | ||
|
|
f6d2468a88 | ||
|
|
046761bff0 | ||
|
|
0e7e546807 | ||
|
|
cbd5485301 | ||
|
|
c61542c433 | ||
|
|
9c5e6cc8c9 | ||
|
|
d680335ca9 | ||
|
|
ed95d0ff1e | ||
|
|
554d31a736 | ||
|
|
a247c63b9e | ||
|
|
6fab169290 | ||
|
|
58e1acacbb | ||
|
|
8c0633959b | ||
|
|
3b9fecb593 | ||
|
|
47e88b8e95 | ||
|
|
fb22f07436 | ||
|
|
163f4fa24f | ||
|
|
99129ead90 | ||
|
|
67da7d897d | ||
|
|
eb9056f332 | ||
|
|
766fd144b4 | ||
|
|
d6e0b6889a | ||
|
|
6e1230f554 | ||
|
|
96bb01fd7a | ||
|
|
3eb85afa17 | ||
|
|
2d3c1953e0 | ||
|
|
2f5bc98601 | ||
|
|
3f62a3a09a | ||
|
|
2ddbfc224f | ||
|
|
741919ad90 | ||
|
|
ffcc033c40 | ||
|
|
1ab72f6902 | ||
|
|
3cee2cdebb | ||
|
|
2d45f7ce5f | ||
|
|
de0c9afa18 |
-10
@@ -1,10 +0,0 @@
|
|||||||
[run]
|
|
||||||
source=
|
|
||||||
mayan
|
|
||||||
omit=
|
|
||||||
mayan/bin/mayan-edms.py
|
|
||||||
mayan/wsgi.py
|
|
||||||
mayan/settings/*
|
|
||||||
tests.py
|
|
||||||
mayan/apps/*/tests/*
|
|
||||||
*migrations*
|
|
||||||
-30
@@ -1,30 +0,0 @@
|
|||||||
*.orig
|
|
||||||
*.pyc
|
|
||||||
*.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/
|
|
||||||
/misc/mayan.geany
|
|
||||||
/mayan/media/static/
|
|
||||||
/venv/
|
|
||||||
/whoosh_index/
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
image: ubuntu:16.10
|
|
||||||
services:
|
|
||||||
- mysql:latest
|
|
||||||
- postgres
|
|
||||||
before_script:
|
|
||||||
- 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 -qq
|
|
||||||
- apt-get install -qq curl graphviz python-dev python-pip gcc gnupg1 tesseract-ocr tesseract-ocr-deu 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:
|
|
||||||
- apt-get install -qq libmysqlclient-dev
|
|
||||||
- pip install -r requirements/testing.txt
|
|
||||||
- pip install 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 "set global character_set_server=utf8mb4;"
|
|
||||||
- coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci.db_mysql --nomigrations
|
|
||||||
- codecov
|
|
||||||
tags:
|
|
||||||
- mysql
|
|
||||||
test:postgres:
|
|
||||||
script:
|
|
||||||
- apt-get install -qq libpq-dev
|
|
||||||
- pip install -r requirements/testing.txt
|
|
||||||
- pip install psycopg2
|
|
||||||
- coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci.db_postgres --nomigrations
|
|
||||||
- codecov
|
|
||||||
tags:
|
|
||||||
- postgres
|
|
||||||
test:sqlite:
|
|
||||||
script:
|
|
||||||
- pip install -r requirements/testing.txt
|
|
||||||
- coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci --nomigrations
|
|
||||||
- codecov
|
|
||||||
-21
@@ -1,21 +0,0 @@
|
|||||||
language: python
|
|
||||||
before_install:
|
|
||||||
- sudo apt-get update -qq
|
|
||||||
- sudo apt-get install -qq python-dev gcc tesseract-ocr tesseract-ocr-deu unpaper ghostscript libjpeg-dev libpng-dev poppler-utils
|
|
||||||
install:
|
|
||||||
- pip install -r requirements/testing.txt
|
|
||||||
- pip install -q mysql-python
|
|
||||||
- pip install -q psycopg2
|
|
||||||
before_script:
|
|
||||||
- mysql -u root -e 'create database mayan_edms;'
|
|
||||||
- psql -c 'create database mayan_edms;' -U postgres
|
|
||||||
script:
|
|
||||||
- export TEST_APPS="acls authentication django_gpg document_indexing document_signatures documents dynamic_search folders lock_manager ocr permissions sources tags"
|
|
||||||
- coverage run manage.py test $TEST_APPS --settings=mayan.settings.testing.base
|
|
||||||
- coverage run manage.py test $TEST_APPS --settings=mayan.settings.magnum.db_mysql
|
|
||||||
- coverage run manage.py test $TEST_APPS --settings=mayan.settings.magnum.db_postgres
|
|
||||||
after_script:
|
|
||||||
- coveralls
|
|
||||||
services:
|
|
||||||
- mysql
|
|
||||||
- postgresql
|
|
||||||
-36
@@ -1,36 +0,0 @@
|
|||||||
dist: trusty
|
|
||||||
sudo: required
|
|
||||||
language: python
|
|
||||||
python:
|
|
||||||
- 2.7
|
|
||||||
env:
|
|
||||||
matrix:
|
|
||||||
- DB=mysql
|
|
||||||
- DB=postgres
|
|
||||||
- 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
|
|
||||||
install:
|
|
||||||
- "pip install -r requirements/testing.txt"
|
|
||||||
- if [[ $DB == mysql ]]; then pip install -q mysql-python; fi
|
|
||||||
- if [[ $DB == postgres ]]; then pip install -q psycopg2; fi
|
|
||||||
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
|
|
||||||
after_success:
|
|
||||||
- coveralls
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
- development
|
|
||||||
notifications:
|
|
||||||
email:
|
|
||||||
recipients:
|
|
||||||
- roberto.rosario@mayan-edms.com
|
|
||||||
on_success: never
|
|
||||||
on_failure: always
|
|
||||||
-194
@@ -1,194 +0,0 @@
|
|||||||
[main]
|
|
||||||
host = https://www.transifex.com
|
|
||||||
|
|
||||||
[mayan-edms.acls-2-0]
|
|
||||||
file_filter = mayan/apps/acls/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
source_lang = en
|
|
||||||
source_file = mayan/apps/acls/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
|
|
||||||
[mayan-edms.appearance-2-0]
|
|
||||||
file_filter = mayan/apps/appearance/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
source_lang = en
|
|
||||||
source_file = mayan/apps/appearance/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
|
|
||||||
[mayan-edms.authentication-2-0]
|
|
||||||
file_filter = mayan/apps/authentication/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
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
|
|
||||||
source_file = mayan/apps/checkouts/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
|
|
||||||
[mayan-edms.common-2-0]
|
|
||||||
file_filter = mayan/apps/common/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
source_lang = en
|
|
||||||
source_file = mayan/apps/common/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
|
|
||||||
[mayan-edms.converter-2-0]
|
|
||||||
file_filter = mayan/apps/converter/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
source_lang = en
|
|
||||||
source_file = mayan/apps/converter/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
|
|
||||||
[mayan-edms.django_gpg-2-0]
|
|
||||||
file_filter = mayan/apps/django_gpg/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
source_lang = en
|
|
||||||
source_file = mayan/apps/django_gpg/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
|
|
||||||
[mayan-edms.documents-2-0]
|
|
||||||
file_filter = mayan/apps/documents/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
source_lang = en
|
|
||||||
source_file = mayan/apps/documents/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
|
|
||||||
[mayan-edms.document_comments-2-0]
|
|
||||||
file_filter = mayan/apps/document_comments/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
source_lang = en
|
|
||||||
source_file = mayan/apps/document_comments/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
|
|
||||||
[mayan-edms.document_indexing-2-0]
|
|
||||||
file_filter = mayan/apps/document_indexing/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
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
|
|
||||||
source_file = mayan/apps/document_signatures/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
|
|
||||||
[mayan-edms.document_states-2-0]
|
|
||||||
file_filter = mayan/apps/document_states/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
source_lang = en
|
|
||||||
source_file = mayan/apps/document_states/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
|
|
||||||
[mayan-edms.dynamic_search-2-0]
|
|
||||||
file_filter = mayan/apps/dynamic_search/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
source_lang = en
|
|
||||||
source_file = mayan/apps/dynamic_search/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
|
|
||||||
[mayan-edms.events-2-0]
|
|
||||||
file_filter = mayan/apps/events/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
source_lang = en
|
|
||||||
source_file = mayan/apps/events/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
|
|
||||||
source_file = mayan/apps/linking/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
|
|
||||||
[mayan-edms.lock_manager-2-0]
|
|
||||||
file_filter = mayan/apps/lock_manager/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
source_lang = en
|
|
||||||
source_file = mayan/apps/lock_manager/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
|
|
||||||
[mayan-edms.mailer-2-0]
|
|
||||||
file_filter = mayan/apps/mailer/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
source_lang = en
|
|
||||||
source_file = mayan/apps/mailer/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
|
|
||||||
[mayan-edms.metadata-2-0]
|
|
||||||
file_filter = mayan/apps/metadata/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
source_lang = en
|
|
||||||
source_file = mayan/apps/metadata/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
|
|
||||||
[mayan-edms.mirroring-2-0]
|
|
||||||
file_filter = mayan/apps/mirroring/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
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
|
|
||||||
source_lang = en
|
|
||||||
source_file = mayan/apps/motd/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
|
|
||||||
[mayan-edms.ocr-2-0]
|
|
||||||
file_filter = mayan/apps/ocr/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
source_lang = en
|
|
||||||
source_file = mayan/apps/ocr/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
|
|
||||||
[mayan-edms.permissions-2-0]
|
|
||||||
file_filter = mayan/apps/permissions/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
source_lang = en
|
|
||||||
source_file = mayan/apps/permissions/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
|
|
||||||
[mayan-edms.rest_api-2-0]
|
|
||||||
file_filter = mayan/apps/rest_api/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
source_lang = en
|
|
||||||
source_file = mayan/apps/rest_api/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
|
|
||||||
[mayan-edms.smart_settings-2-0]
|
|
||||||
file_filter = mayan/apps/smart_settings/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
source_lang = en
|
|
||||||
source_file = mayan/apps/smart_settings/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
|
|
||||||
[mayan-edms.sources-2-0]
|
|
||||||
file_filter = mayan/apps/sources/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
source_lang = en
|
|
||||||
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
|
|
||||||
source_lang = en
|
|
||||||
source_file = mayan/apps/mayan_statistics/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
|
|
||||||
[mayan-edms.storage-2-0]
|
|
||||||
file_filter = mayan/apps/storage/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
source_lang = en
|
|
||||||
source_file = mayan/apps/storage/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
|
|
||||||
[mayan-edms.tags-2-0]
|
|
||||||
file_filter = mayan/apps/tags/locale/<lang>/LC_MESSAGES/django.po
|
|
||||||
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
|
|
||||||
source_file = mayan/apps/user_management/locale/en/LC_MESSAGES/django.po
|
|
||||||
type = PO
|
|
||||||
@@ -1,78 +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. 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.
|
|
||||||
@@ -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.
|
|
||||||
-494
@@ -1,494 +0,0 @@
|
|||||||
3.0 (2017-XX-XX)
|
|
||||||
================
|
|
||||||
- Add support for notifications. GitLab #262.
|
|
||||||
- Add quota support. GitLab #284.
|
|
||||||
|
|
||||||
2.7.2 (2017-09-06)
|
|
||||||
==================
|
|
||||||
- Fix new mailer creation view. GitLab issue #431.
|
|
||||||
Thanks to Robert Schöftner (@robert.schoeftner) for the
|
|
||||||
report and the solution.
|
|
||||||
- Consolidate intial document created event and the first
|
|
||||||
document properties edited events. Preserve the user that
|
|
||||||
initially creates the document. GitLab issue #433. Thanks
|
|
||||||
to Jesaja Everling (@jeverling) for the report.
|
|
||||||
- Sort the list of root cabinets. Thanks to Thomas Plotkowiak
|
|
||||||
for the request.
|
|
||||||
- Sort the list of a document's cabinets.
|
|
||||||
- Display a document's cabinet list in italics. GitLab issue #435.
|
|
||||||
Thanks to LeVon Smoker for the request.
|
|
||||||
- Install mock by default to allow easier testing of deployed
|
|
||||||
instances.
|
|
||||||
|
|
||||||
2.7.1 (2017-09-03)
|
|
||||||
==================
|
|
||||||
- Support unicode in URL querystring. GitLab issue #423.
|
|
||||||
Thanks to Gustavo Teixeira (@gsteixei) for the find.
|
|
||||||
- Import errors during initialization are only ignored
|
|
||||||
if they are cause by a missing local.py. Thanks to
|
|
||||||
MacRobb Simpson for the report and solution.
|
|
||||||
- Make sure the local.py created used unicode for strings
|
|
||||||
by default. GitLab issue #424. Thanks to Gustavo Teixeira
|
|
||||||
(@gsteixei) for the find.
|
|
||||||
|
|
||||||
2.7 (2017-08-30)
|
|
||||||
================
|
|
||||||
- Add workaround for PDF with IndirectObject as the
|
|
||||||
rotation value. GitHub #261.
|
|
||||||
- Add ACL list link with icon and use it for the document facet menu.
|
|
||||||
- Fix mailing app permissions labels.
|
|
||||||
- Add ACLs link and ACLs permissions to the mailer profile model.
|
|
||||||
- Improve mailer URL regex.
|
|
||||||
- Add ordering support to the SourceColumn class. GitLab issue #417.
|
|
||||||
- Shows the cabinets in the document list. GitLab #417 @corneliusludmann
|
|
||||||
- Add workaround for pycountry versions without the bibliographical key.
|
|
||||||
GitHub issue #250.
|
|
||||||
- Skip UUID migration on Oracle backends. GitHub issue #251.
|
|
||||||
- Allow changing the output format, DPI of the pdftoppm command, and
|
|
||||||
the output format of the converter via the CONVERTER_GRAPHICS_BACKEND_CONFIG
|
|
||||||
setting. GitHub issues #256 #257 GitLab issue #416.
|
|
||||||
- Add support for workflow triggers.
|
|
||||||
- Add support for workflow actions.
|
|
||||||
- Add support for rendering workflows.
|
|
||||||
- Add support for unbinding sub menus.
|
|
||||||
- Fix mailing profile test view.
|
|
||||||
- Disregard the last 3 dots that mark the end of the YAML document.
|
|
||||||
- Add support for multiple dashboards.
|
|
||||||
- Add support for removing dashboard widgets.
|
|
||||||
- Convert document version view to item list view.
|
|
||||||
- Add support for browsing individual document versions.
|
|
||||||
- Add support for dropdown menus to the item list view template.
|
|
||||||
- Add support for preserving the file extenstion when downloading a document
|
|
||||||
version. GitLab #415.
|
|
||||||
- Split OCR app into OCR and parsing.
|
|
||||||
- Remove Folders app.
|
|
||||||
- Use the literal 'System' instead of the target name when
|
|
||||||
the action user in unknown.
|
|
||||||
- Remove the view to submit all document for OCR.
|
|
||||||
- When changing document types, don't delete the old metadata that is
|
|
||||||
also found in the new document type. GitLab issue #421.
|
|
||||||
- Add tag attach and tag remove events.
|
|
||||||
- Change the permission needed to attach and remove tags.
|
|
||||||
- Add HTTP POST workflow state action.
|
|
||||||
- Add access control grant workflow state action.
|
|
||||||
- Beta Python 3 support.
|
|
||||||
|
|
||||||
2.6.4 (2017-07-26)
|
|
||||||
==================
|
|
||||||
- Add missing replacements of reverse to resolve_url.
|
|
||||||
|
|
||||||
2.6.3 (2017-07-25)
|
|
||||||
==================
|
|
||||||
- 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.
|
|
||||||
|
|
||||||
2.6.2 (2017-07-19)
|
|
||||||
==================
|
|
||||||
- Fix deprecation warning to prepare upgrade to Django 1.11 and 2.0.
|
|
||||||
- Fix document page zoom.
|
|
||||||
- Add support to run tests against a MySQL, Postgres or Oracle 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.
|
|
||||||
- Oracle database compatibility update in the cabinets app. GitHub #258.
|
|
||||||
|
|
||||||
2.6.1 (2017-07-18)
|
|
||||||
==================
|
|
||||||
- Fix issue when editing or removing metadata from multiple documents.
|
|
||||||
|
|
||||||
2.6 (2017-07-18)
|
|
||||||
================
|
|
||||||
- Fix HTML mark up in window title. GitLab #397.
|
|
||||||
- Add support for emailing documents to a recipient list. GitLab #396.
|
|
||||||
- Backport metadata widget changes from @Macrobb. GitLab #377.
|
|
||||||
- Make users and group searchable.
|
|
||||||
- Add support for logging errors during in production mode.
|
|
||||||
Add COMMON_PRODUCTION_ERROR_LOG_PATH to control path of log file.
|
|
||||||
Defaults to mayan/error.log.
|
|
||||||
- Add support logging request exceptions.
|
|
||||||
- Add document list item view.
|
|
||||||
- Sort setting by namespace label and by global name second.
|
|
||||||
- Sort indexes by label.
|
|
||||||
- Fix cabinets permission and access control checking.
|
|
||||||
- The permission to add or remove documents to cabinets now applies to documents too.
|
|
||||||
- Equalize dashboard widgets heights.
|
|
||||||
- Switch the order of the DEFAULT_AUTHENTICATION_CLASSES of DRF. GitLab #400.
|
|
||||||
- Backport document's version list view permission.
|
|
||||||
- Improve code to unbind menu entries.
|
|
||||||
- Renamed the document type permission namespace from "Document setup" to "Document types".
|
|
||||||
- Add support for granting the document type edit, document type delete, and document type view
|
|
||||||
permissions to individual document type instances.
|
|
||||||
- Improved tests by testing for accesses.
|
|
||||||
- Increase the size of the mailing profile label field to 128 characters.
|
|
||||||
|
|
||||||
2.5.2 (2017-07-08)
|
|
||||||
==================
|
|
||||||
- Improve new document creation signal handling.
|
|
||||||
Fixes issue with duplicate scanning at upload.
|
|
||||||
|
|
||||||
2.5.1 (2017-07-08)
|
|
||||||
==================
|
|
||||||
- Update release target due to changes in PyPI.
|
|
||||||
|
|
||||||
2.5 (2017-07-07)
|
|
||||||
================
|
|
||||||
- Add view to download a document's OCR text. GitLab #215
|
|
||||||
- Add user configurable mailer. GitLab #286.
|
|
||||||
- Use Toasts library for screen messages.
|
|
||||||
- Reduce verbosity of some debug messages.
|
|
||||||
- Add new lineart transformation.
|
|
||||||
- Fix SANE source resolution field.
|
|
||||||
- About and Profile menu reorganization.
|
|
||||||
- PDF compatibility improvements.
|
|
||||||
- Office document coversion improvements.
|
|
||||||
- New metadata type setup UI.
|
|
||||||
- Duplicated document scan support.
|
|
||||||
- "Remember me" login support.
|
|
||||||
- Forgotten password restore via email.
|
|
||||||
- Document cache disabling.
|
|
||||||
- Translation improvements.
|
|
||||||
- Image loading improvements.
|
|
||||||
- Lower Javascript memory utilization.
|
|
||||||
- HTML reponsive layout improvements.
|
|
||||||
- Make document deletion a background task.
|
|
||||||
- Unicode handling improvements.
|
|
||||||
- Python3 compatilibyt improvements.
|
|
||||||
- New screen messages using Toastr.
|
|
||||||
|
|
||||||
2.4 (2017-06-23)
|
|
||||||
================
|
|
||||||
- Add Django-mathfilters.
|
|
||||||
- Improve render of documents with no pages.
|
|
||||||
- Add SANE scanner document source.
|
|
||||||
- Added PDF orientation detection. GitLab issue #387.
|
|
||||||
- Fix repeated permission list API URL. GitLab issue #389.
|
|
||||||
- Fix role creation API endpoint not returning id. GitLab issue #390.
|
|
||||||
- Make tags, metadata types and cabinets searchable via the dynamic search API. GitLab issue #344.
|
|
||||||
- Add support for updating configuration options from environment variables.
|
|
||||||
- Add purgelocks management command. GitLab issue #221.
|
|
||||||
- Fix index rebuilding for multi value first levels. GitLab issue #391.
|
|
||||||
- Truncate views titles via the APPEARANCE_MAXIMUM_TITLE_LENGTH setting. GitLab issue #217.
|
|
||||||
- Add background task manager app. GitLab issue #132.
|
|
||||||
- Add link to show a document's OCR errors. GitLab issue #291.
|
|
||||||
|
|
||||||
2.3 (2017-06-08)
|
|
||||||
================
|
|
||||||
- Allow for bigger indexing expression templates.
|
|
||||||
- Auto select checkbox when updating metadata values. GitLab issue #371.
|
|
||||||
- Added support for passing the options allow-other and allow-root to the
|
|
||||||
FUSE index mirror. GitLab issue #385
|
|
||||||
- Add support for check for the latest released version of Mayan from the
|
|
||||||
About menu.
|
|
||||||
- Support for rebuilding specific indexes. GitLab issue #372.
|
|
||||||
- Rewrite document indexing code to be faster and use less locking.
|
|
||||||
- Use a predefined file path for the file lock.
|
|
||||||
- Catch documents with not document version when displaying their thumbnails.
|
|
||||||
- Document page navigation fix when using Mayan as a sub URL app.
|
|
||||||
- Add support for indexing on workflow state changes.
|
|
||||||
- Add search model list API endpoint.
|
|
||||||
|
|
||||||
2.2 (2017-04-26)
|
|
||||||
================
|
|
||||||
- Remove the installation app (GitLab #301).
|
|
||||||
- Add support for document page search
|
|
||||||
- Remove recent searches feature
|
|
||||||
- Remove dependency on the django-filetransfer library
|
|
||||||
- Fix height calculation in resize transformation
|
|
||||||
- Improve upgrade instructions
|
|
||||||
- New image caching pipeline
|
|
||||||
- New drop down menus for the documents, folders and tags app as well as for
|
|
||||||
the user links.
|
|
||||||
- New Dashboard view
|
|
||||||
- Moved licenses to their own module in every app
|
|
||||||
- Update project to work with Django 1.10.4.
|
|
||||||
- Tags are alphabetically ordered by label (GitLab #342).
|
|
||||||
- Stop loading theme fonts from the web (GitLab #343).
|
|
||||||
- Add support for attaching multiple tags (GitLab #307).
|
|
||||||
- Integrate the Cabinets app.
|
|
||||||
|
|
||||||
2.1.11 (2017-03-14)
|
|
||||||
===================
|
|
||||||
- Added a quick rename serializer to the document type API serializer.
|
|
||||||
- Added per document type, workflow list API view.
|
|
||||||
- Mayan EDMS was adopted a version 1.1 of the Linux Foundation Developer Certificate of Origin.
|
|
||||||
- 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.
|
|
||||||
- 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.
|
|
||||||
- Added support for adding or editing document types to smart links via the
|
|
||||||
API.
|
|
||||||
|
|
||||||
2.1.10 (2017-02-13)
|
|
||||||
===================
|
|
||||||
- Update Makefile to use twine for releases.
|
|
||||||
- Add Makefile target to make test releases.
|
|
||||||
|
|
||||||
2.1.9 (2017-02-13)
|
|
||||||
==================
|
|
||||||
- Update make file to Workaround long standing pypa wheel bug #99
|
|
||||||
|
|
||||||
2.1.8 (2017-02-12)
|
|
||||||
==================
|
|
||||||
- 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 (workflows) 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).
|
|
||||||
- Close GitLab issue #310 "Metadata's lookup with chinese messages when new document"
|
|
||||||
|
|
||||||
2.1.7 (2017-02-01)
|
|
||||||
==================
|
|
||||||
- Improved user management API endpoints.
|
|
||||||
- Improved permissions API endpoints.
|
|
||||||
- Improvements in the API tests of a few apps.
|
|
||||||
- Addition Content type list API view to the common app.
|
|
||||||
- Add API endpoints to the events app.
|
|
||||||
- Enable the parser and validation fields of the metadata serializer.
|
|
||||||
|
|
||||||
2.1.6 (2016-11-23)
|
|
||||||
==================
|
|
||||||
- Fix variable name typo in the rotation transformation class.
|
|
||||||
- Update translations
|
|
||||||
|
|
||||||
2.1.5 (2016-11-08)
|
|
||||||
==================
|
|
||||||
- Backport resize transformation math operation fix (GitLab #319).
|
|
||||||
- Update Pillow to 3.1.2 (Security fix).
|
|
||||||
- Backport zoom transformation 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.
|
|
||||||
|
|
||||||
2.1.4 (2016-10-28)
|
|
||||||
==================
|
|
||||||
- Add missing link to the 2.1.3 release notes in the index file.
|
|
||||||
- Improve TempfileCheckMixin.
|
|
||||||
- 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.
|
|
||||||
|
|
||||||
2.1.3 (2016-06-29)
|
|
||||||
==================
|
|
||||||
- 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.
|
|
||||||
- Fix GitLab issue #309, "Temp files quickly filling-up my /tmp (1GB tmpfs)".
|
|
||||||
- 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.
|
|
||||||
|
|
||||||
2.1.2 (2016-05-20)
|
|
||||||
==================
|
|
||||||
- Sort document languages and user profile locale language lists. GitLab issue #292.
|
|
||||||
- Fix metadata lookup for {{ users }} and {{ group }}. Fixes GitLab #290.
|
|
||||||
- Add Makefile for common development tasks
|
|
||||||
|
|
||||||
2.1.1 (2016-05-17)
|
|
||||||
==================
|
|
||||||
- Fix navigation issue that make it impossible to add new sources. GitLab issue #288.
|
|
||||||
- The Tesseract OCR backend now reports if the requested language file is missing. GitLab issue #289.
|
|
||||||
- Ensure the automatic default index is created after the default document type.
|
|
||||||
|
|
||||||
2.1 (2016-05-14)
|
|
||||||
================
|
|
||||||
- Upgrade to use Django 1.8.13. Issue #246.
|
|
||||||
- Upgrade requirements.
|
|
||||||
- Remove remaining references to Django's User model. GitLab issue #225
|
|
||||||
- Rename 'Content' search box to 'OCR'.
|
|
||||||
- Remove included login required middleware using django-stronghold instead (http://mikegrouchy.com/django-stronghold/).
|
|
||||||
- Improve generation of success and error messages for class based views.
|
|
||||||
- Remove ownership concept from folders.
|
|
||||||
- Replace strip_spaces middleware with the spaceless template tag. GitLab issue #255
|
|
||||||
- Deselect the update checkbox for optional metadata by default.
|
|
||||||
- Silence all Django 1.8 model import warnings.
|
|
||||||
- Implement per document type document creation permission. Closes GitLab issue #232.
|
|
||||||
- Add icons to the document face menu links.
|
|
||||||
- Increase icon to text spacing to 3px.
|
|
||||||
- Make document type delete time period optional.
|
|
||||||
- Fixed date locale handling in document properties, checkout and user detail views.
|
|
||||||
- Add new permission: checkout details view.
|
|
||||||
- Add HTML5 upload widget. Issue #162.
|
|
||||||
- Add Message of the Day app. Issue #222
|
|
||||||
- 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.
|
|
||||||
- Document indexes now have ACL support.
|
|
||||||
- Remove the document index setup permission.
|
|
||||||
- Status messages now display the object class on which they operate not just the word "Object".
|
|
||||||
- More tests added.
|
|
||||||
- Handle unicode filenames in staging folders.
|
|
||||||
- Add staging file deletion permission.
|
|
||||||
- New document_signature_view permission.
|
|
||||||
- Add support for signing documents.
|
|
||||||
- Instead of multiple keyservers only one keyserver is now supported.
|
|
||||||
- Replace document type selection widget with an opened selection list.
|
|
||||||
- Add mailing documentation chapter.
|
|
||||||
- Add roadmap documentation chapter.
|
|
||||||
- API updates.
|
|
||||||
|
|
||||||
|
|
||||||
2.0.2 (2016-02-09)
|
|
||||||
==================
|
|
||||||
- Install testing dependencies when installing development dependencies.
|
|
||||||
- Fix GitLab issue #250 "Empty optional lookup metadata trigger validation error".
|
|
||||||
- Fix OCR API test.
|
|
||||||
- Move metadata form value validation to .clean() method.
|
|
||||||
- Only extract validation error messages from ValidationError exception instances.
|
|
||||||
- Don't store empty metadata value if the update checkbox is not checked.
|
|
||||||
- Add 2 second delay to document version tests to workaround MySQL limitation.
|
|
||||||
- Strip HTML tags from the browser title.
|
|
||||||
- Remove Docker and Docker Compose files.
|
|
||||||
|
|
||||||
|
|
||||||
2.0.1 (2016-01-22)
|
|
||||||
==================
|
|
||||||
- Fix GitLab issue #243, "System allows a user to skip entering values for a required metadata field while uploading a new document"
|
|
||||||
- Fix GitLab issue #245, "Add multiple metadata not possible"
|
|
||||||
- Updated Vagrantfile to provision a production box too.
|
|
||||||
|
|
||||||
|
|
||||||
2.0 (2015-12-04)
|
|
||||||
================
|
|
||||||
- New source homepage: https://gitlab.com/mayan-edms/mayan-edms
|
|
||||||
- Update to Django 1.7
|
|
||||||
- New Bootstrap Frontend UI
|
|
||||||
- Easier theming and rebranding
|
|
||||||
- Improved page navigation interface
|
|
||||||
- Menu reorganization
|
|
||||||
- Removal of famfam icon set
|
|
||||||
- Improved document preview generation
|
|
||||||
- Document submission for OCR changed to POST
|
|
||||||
- New YAML based settings system
|
|
||||||
- Removal of auto admin creation as separate app
|
|
||||||
- Removal of dependencies
|
|
||||||
- ACL system refactor
|
|
||||||
- Object access control inheritance
|
|
||||||
- Removal of anonymous user support
|
|
||||||
- Metadata validators refactor
|
|
||||||
- Trash can support
|
|
||||||
- Retention policies
|
|
||||||
- Support for sharing indexes as FUSE filesystems
|
|
||||||
- Clickable preview images titles
|
|
||||||
- Removal of eval
|
|
||||||
- Smarter OCR, per page parsing or OCR fallback
|
|
||||||
- Improve failure tolerance (not all Operational Errors are critical now)
|
|
||||||
- RGB tags
|
|
||||||
- Default document type and default document source
|
|
||||||
- Link unbinding
|
|
||||||
- Statistics refactor
|
|
||||||
- Apps merge
|
|
||||||
- New signals
|
|
||||||
- Test improvements
|
|
||||||
- Indexes recalculation after document creation too
|
|
||||||
- Upgrade command
|
|
||||||
- OCR data moved to ocr app from documents app
|
|
||||||
- New internal document creation workflow return a document stub
|
|
||||||
- Auto console debug logging during development and info during production
|
|
||||||
- New class based and menu based navigation system
|
|
||||||
- New class based transformations
|
|
||||||
- Usage of Font Awesome icons set
|
|
||||||
- Management command to remove obsolete permissions: `purgepermissions`
|
|
||||||
- Normalization of 'title' and 'name' fields to 'label'
|
|
||||||
- Improved API, now at version 1
|
|
||||||
- Invert page title/project name order in browser title
|
|
||||||
- Django's class based views pagination
|
|
||||||
- Reduction of text strings
|
|
||||||
- Removal of the CombinedSource class
|
|
||||||
- Removal of default class ACLs
|
|
||||||
- Removal of the ImageMagick and GraphicsMagick converter backends
|
|
||||||
- Remove support for applying roles to new users automatically
|
|
||||||
- Removal of the DOCUMENT_RESTRICTIONS_OVERRIDE permission
|
|
||||||
- Removed the page_label field
|
|
||||||
|
|
||||||
|
|
||||||
1.1.1 (2015-05-21)
|
|
||||||
==================
|
|
||||||
|
|
||||||
- Update to Django 1.6.11
|
|
||||||
- Fix make_dist.sh script
|
|
||||||
- Add test for issue #163
|
|
||||||
- Activate tests for the sources app
|
|
||||||
- Removal of the registration app
|
|
||||||
- New simplified official project description
|
|
||||||
- Improvements to the index admin interface
|
|
||||||
- Removal of installation statistics gathering
|
|
||||||
- Remove unused folder tag
|
|
||||||
- Fix usage of ugettext to ugettext_lazy
|
|
||||||
- Increase size of the lock name field
|
|
||||||
- New style documentation
|
|
||||||
|
|
||||||
|
|
||||||
1.1 (2015-02-10)
|
|
||||||
================
|
|
||||||
- Uses Celery for background tasks
|
|
||||||
- Removal of the splash screen
|
|
||||||
- Adds a home view with common function buttons
|
|
||||||
- Support for sending and receiving documents via email
|
|
||||||
- Removed custom logging app in favor of django-actvity-stream
|
|
||||||
- Adds watch folders
|
|
||||||
- Includes Vagrant file for unified development and testing environments
|
|
||||||
- Per user locale profile (language and timezone)
|
|
||||||
- Includes news document workflow app
|
|
||||||
- Optional and required metadata types
|
|
||||||
- Improved testings. Automated tests against SQLite, MySQL, PostgreSQL
|
|
||||||
- Many new REST API endpoints added
|
|
||||||
- Simplified text messages
|
|
||||||
- Improved method for custom settings
|
|
||||||
- Addition of CORS support to the REST API
|
|
||||||
- Per document language setting instead of per installation language setting
|
|
||||||
- Metadata validation and parsing support
|
|
||||||
- Start of code updates towards Python 3 support
|
|
||||||
- Simplified UI
|
|
||||||
- Stable PDF previews generation
|
|
||||||
- More technical documentation
|
|
||||||
|
|
||||||
|
|
||||||
1.0 (2014-08-27)
|
|
||||||
================
|
|
||||||
- New home @ https://github.com/mayan-edms/mayan-edms
|
|
||||||
- Updated to use Django 1.6
|
|
||||||
- Translation updates
|
|
||||||
- Custom model properties removal
|
|
||||||
- Source code improvements
|
|
||||||
- Removal of included 3rd party modules
|
|
||||||
- Automatic testing and code coverage check
|
|
||||||
- Update of required modules and libraries versions
|
|
||||||
- Database connection leaks fixes
|
|
||||||
- Support for deletion of detached signatures
|
|
||||||
- Removal of Fabric based installations script
|
|
||||||
- Pluggable OCR backends
|
|
||||||
- OCR improvements
|
|
||||||
- License change, Mayan EDMS in now licensed under the Apache 2.0 License
|
|
||||||
- PyPI package, Mayan EDMS in now available on PyPI: https://pypi.python.org/pypi/mayan-edms/
|
|
||||||
- New REST API
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
Copyright 2011-2015 Roberto Rosario
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
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
|
|
||||||
global-exclude mayan/settings/local.py mayan/settings/travis/* mayan/media/*
|
|
||||||
@@ -1,340 +0,0 @@
|
|||||||
.PHONY: clean-pyc clean-build
|
|
||||||
|
|
||||||
|
|
||||||
help:
|
|
||||||
@echo
|
|
||||||
@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 "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 "requirements_dev - Install development requirements."
|
|
||||||
@echo "requirements_docs - Install documentation requirements."
|
|
||||||
@echo "requirements_testing - Install testing requirements."
|
|
||||||
|
|
||||||
@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_test_via_docker_alpine - Package (sdist and wheel) and upload to the PyPI test server using an Alpine Docker builder."
|
|
||||||
@echo "release_via_docker_ubuntu - Package (sdist and wheel) and upload to PyPI using an Ubuntu Docker builder."
|
|
||||||
@echo "release_via_docker_alpine - Package (sdist and wheel) and upload to PyPI using an Alpine 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 "docker_services_on - Launch and initialize production-like services using Docker (Postgres and Redis)."
|
|
||||||
@echo "docker_services_off - Stop and delete the Docker production-like services."
|
|
||||||
@echo "docker_services_frontend - Launch a front end instance that uses the production-like services."
|
|
||||||
@echo "docker_services_worker - Launch a worker instance that uses the production-like services."
|
|
||||||
@echo "docker_service_mysql_on - Launch and initialize a MySQL Docker container."
|
|
||||||
@echo "docker_service_mysql_off - Stop and delete the MySQL Docker container."
|
|
||||||
@echo "docker_service_postgres_on - Launch and initialize a PostgreSQL Docker container."
|
|
||||||
@echo "docker_service_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 --nomigrations
|
|
||||||
|
|
||||||
test-all:
|
|
||||||
./manage.py test --mayan-apps --settings=mayan.settings.testing --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
|
|
||||||
|
|
||||||
|
|
||||||
# Requirements
|
|
||||||
|
|
||||||
requirements_dev:
|
|
||||||
pip install -r requirements/development.txt
|
|
||||||
|
|
||||||
requirements_docs:
|
|
||||||
pip install -r requirements/documentation.txt
|
|
||||||
|
|
||||||
requirements_testing:
|
|
||||||
pip install -r requirements/testing.txt
|
|
||||||
|
|
||||||
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"
|
|
||||||
|
|
||||||
release_test_via_docker_alpine:
|
|
||||||
docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source alpine /bin/busybox sh -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/* . && \
|
|
||||||
apk update && \
|
|
||||||
apk add python2 py2-pip make && \
|
|
||||||
pip install -r requirements/build.txt && \
|
|
||||||
cp -r /host_home/.pypirc ~/.pypirc && \
|
|
||||||
make test_release"
|
|
||||||
|
|
||||||
release_via_docker_alpine:
|
|
||||||
docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source alpine /bin/busybox sh -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/* . && \
|
|
||||||
apk update && \
|
|
||||||
apk add python2 py2-pip make && \
|
|
||||||
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
|
|
||||||
|
|
||||||
runserver_plus:
|
|
||||||
./manage.py runserver_plus --settings=mayan.settings.development
|
|
||||||
|
|
||||||
shell_plus:
|
|
||||||
./manage.py shell_plus --settings=mayan.settings.development
|
|
||||||
|
|
||||||
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 2
|
|
||||||
./manage.py initialsetup --settings=mayan.settings.staging.docker
|
|
||||||
|
|
||||||
docker_services_off:
|
|
||||||
docker stop postgres redis
|
|
||||||
docker rm postgres redis
|
|
||||||
|
|
||||||
docker_services_frontend:
|
|
||||||
./manage.py runserver --settings=mayan.settings.staging.docker
|
|
||||||
|
|
||||||
docker_services_worker:
|
|
||||||
./manage.py celery worker --settings=mayan.settings.staging.docker -B -l INFO -O fair
|
|
||||||
|
|
||||||
docker_service_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_service_mysql_off:
|
|
||||||
docker stop mysql
|
|
||||||
docker rm mysql
|
|
||||||
|
|
||||||
docker_service_postgres_on:
|
|
||||||
docker run -d --name postgres -p 5432:5432 postgres
|
|
||||||
while ! nc -z 127.0.0.1 5432; do sleep 1; done
|
|
||||||
|
|
||||||
docker_service_postgres_off:
|
|
||||||
docker stop postgres
|
|
||||||
docker rm postgres
|
|
||||||
|
|
||||||
|
|
||||||
# Security
|
|
||||||
|
|
||||||
safety_check:
|
|
||||||
safety check
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
[![pypi][pypi]][pypi-url]
|
|
||||||
[![builds][builds]][builds-url]
|
|
||||||
[![coverage][cover]][cover-url]
|
|
||||||
![python][python]
|
|
||||||
![license][license]
|
|
||||||
|
|
||||||
[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 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, configuration, upgrade, and backup
|
|
||||||
instructions visit the Mayan EDMS Docker Hub page at:
|
|
||||||
https://hub.docker.com/r/mayanedms/mayanedms/
|
|
||||||
|
|
||||||
<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/)
|
|
||||||
|
|
||||||
-58
@@ -1,58 +0,0 @@
|
|||||||
|pypi| |builds| |coverage| |python| |license|
|
|
||||||
|
|
||||||
|
|
||||||
.. image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/mayan_logo.png
|
|
||||||
:align: center
|
|
||||||
:width: 200
|
|
||||||
:height: 200
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
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, configuration, upgrade, and backup
|
|
||||||
instructions visit the Mayan EDMS Docker Hub page at:
|
|
||||||
https://hub.docker.com/r/mayanedms/mayanedms/
|
|
||||||
|
|
||||||
.. _Docker: https://www.docker.com/
|
|
||||||
|
|
||||||
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
|
|
||||||
: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
|
|
||||||
: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
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
!/bin/bash
|
|
||||||
Directories[0]="."
|
|
||||||
|
|
||||||
# Setup find correctly.
|
|
||||||
export IFS=$'\n'
|
|
||||||
|
|
||||||
# Loop through our array.
|
|
||||||
for x in ${Directories[@]}
|
|
||||||
do
|
|
||||||
# Find all directories & subdirectories
|
|
||||||
for i in $(find $x -type d)
|
|
||||||
do
|
|
||||||
# Fix Permissions
|
|
||||||
chmod -c 775 $i
|
|
||||||
chown -c www-data:www-data $i
|
|
||||||
done
|
|
||||||
|
|
||||||
# Find all Files
|
|
||||||
for i in $(find $x -type f)
|
|
||||||
do
|
|
||||||
# Fix Permissions
|
|
||||||
chmod -c 664 $i
|
|
||||||
chown -c www-data:www-data $i
|
|
||||||
done
|
|
||||||
done
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
INSTALLATION_DIRECTORY=/home/vagrant/mayan-edms/
|
|
||||||
DB_NAME=mayan_edms
|
|
||||||
DB_PASSWORD=test123
|
|
||||||
|
|
||||||
cat << EOF | sudo tee -a /etc/motd.tail
|
|
||||||
**********************************sudo apt
|
|
||||||
|
|
||||||
Mayan EDMS Vagrant Development Box
|
|
||||||
|
|
||||||
**********************************
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Update sources
|
|
||||||
echo -e "\n -> Running apt-get update & upgrade \n"
|
|
||||||
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
|
|
||||||
|
|
||||||
echo -e "\n -> Cloning development branch of repository \n"
|
|
||||||
git clone /mayan-edms-repository/ $INSTALLATION_DIRECTORY
|
|
||||||
cd $INSTALLATION_DIRECTORY
|
|
||||||
git checkout development
|
|
||||||
git reset HEAD --hard
|
|
||||||
|
|
||||||
echo -e "\n -> Setting up virtual env \n"
|
|
||||||
virtualenv venv
|
|
||||||
source venv/bin/activate
|
|
||||||
|
|
||||||
echo -e "\n -> Installing python dependencies \n"
|
|
||||||
pip install -r requirements.txt
|
|
||||||
|
|
||||||
echo -e "\n -> Running Mayan EDMS initial setup \n"
|
|
||||||
./manage.py initialsetup
|
|
||||||
|
|
||||||
echo -e "\n -> Installing Redis server \n"
|
|
||||||
sudo apt-get install -y redis-server
|
|
||||||
pip install redis
|
|
||||||
|
|
||||||
echo -e "\n -> Installing testing software \n"
|
|
||||||
pip install coverage
|
|
||||||
|
|
||||||
echo -e "\n -> Installing MySQL \n"
|
|
||||||
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password '$DB_PASSWORD
|
|
||||||
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password '$DB_PASSWORD
|
|
||||||
sudo apt-get install -y mysql-server libmysqlclient-dev
|
|
||||||
# Create a passwordless root and travis users
|
|
||||||
mysql -u root -p$DB_PASSWORD -e "SET PASSWORD = PASSWORD('');"
|
|
||||||
mysql -u root -e "CREATE USER 'travis'@'localhost' IDENTIFIED BY '';GRANT ALL PRIVILEGES ON * . * TO 'travis'@'localhost';FLUSH PRIVILEGES;"
|
|
||||||
mysql -u travis -e "CREATE DATABASE $DB_NAME;"
|
|
||||||
pip install mysql-python
|
|
||||||
|
|
||||||
echo -e "\n -> Installing PostgreSQL \n"
|
|
||||||
sudo apt-get install -y postgresql postgresql-server-dev-all
|
|
||||||
sudo -u postgres psql -c 'create database mayan_edms;' -U postgres
|
|
||||||
sudo cat > /etc/postgresql/9.3/main/pg_hba.conf << EOF
|
|
||||||
local all postgres trust
|
|
||||||
|
|
||||||
# TYPE DATABASE USER ADDRESS METHOD
|
|
||||||
|
|
||||||
# "local" is for Unix domain socket connections only
|
|
||||||
local all all peer
|
|
||||||
# IPv4 local connections:
|
|
||||||
host all all 127.0.0.1/32 md5
|
|
||||||
# IPv6 local connections:
|
|
||||||
host all all ::1/128 md5
|
|
||||||
EOF
|
|
||||||
|
|
||||||
pip install -q psycopg2
|
|
||||||
@@ -1,171 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# ====== CONFIG ======
|
|
||||||
INSTALLATION_DIRECTORY=/usr/share/mayan-edms/
|
|
||||||
DB_NAME=mayan_edms
|
|
||||||
DB_USERNAME=mayan
|
|
||||||
DB_PASSWORD=test123
|
|
||||||
# ==== END CONFIG ====
|
|
||||||
|
|
||||||
cat << EOF | tee -a /etc/motd.tail
|
|
||||||
**********************************
|
|
||||||
|
|
||||||
Mayan EDMS Vagrant Production Box
|
|
||||||
|
|
||||||
**********************************
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo -e "\n -> Running apt-get update & upgrade \n"
|
|
||||||
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
|
|
||||||
|
|
||||||
echo -e "\n -> Setting up virtualenv \n"
|
|
||||||
rm -f ${INSTALLATION_DIRECTORY}
|
|
||||||
virtualenv ${INSTALLATION_DIRECTORY}
|
|
||||||
source ${INSTALLATION_DIRECTORY}bin/activate
|
|
||||||
|
|
||||||
echo -e "\n -> Installing Mayan EDMS from PyPI \n"
|
|
||||||
pip install mayan-edms
|
|
||||||
|
|
||||||
echo -e "\n -> Installing Python client for PostgreSQL, Redis, and uWSGI \n"
|
|
||||||
pip install psycopg2 redis uwsgi
|
|
||||||
|
|
||||||
echo -e "\n -> Creating the database for the installation \n"
|
|
||||||
echo "CREATE USER mayan WITH PASSWORD '$DB_PASSWORD';" | sudo -u postgres psql
|
|
||||||
sudo -u postgres createdb -O $DB_USERNAME $DB_NAME
|
|
||||||
|
|
||||||
echo -e "\n -> Creating the directories for the logs \n"
|
|
||||||
mkdir /var/log/mayan
|
|
||||||
|
|
||||||
echo -e "\n -> Making a convenience symlink \n"
|
|
||||||
cd ${INSTALLATION_DIRECTORY}
|
|
||||||
ln -s lib/python2.7/site-packages/mayan .
|
|
||||||
|
|
||||||
echo -e "\n -> Creating an initial settings file \n"
|
|
||||||
mayan-edms.py createsettings
|
|
||||||
|
|
||||||
echo -e "\n -> Updating the mayan/settings/local.py file \n"
|
|
||||||
cat >> mayan/settings/local.py << EOF
|
|
||||||
DATABASES = {
|
|
||||||
'default': {
|
|
||||||
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
|
||||||
'NAME': '$DB_NAME',
|
|
||||||
'USER': '$DB_USERNAME',
|
|
||||||
'PASSWORD': '$DB_PASSWORD',
|
|
||||||
'HOST': 'localhost',
|
|
||||||
'PORT': '5432',
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
BROKER_URL = 'redis://127.0.0.1:6379/0'
|
|
||||||
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/0'
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo -e "\n -> Migrating the database or initialize the project \n"
|
|
||||||
mayan-edms.py initialsetup
|
|
||||||
|
|
||||||
echo -e "\n -> Disabling the default NGINX site \n"
|
|
||||||
rm -f /etc/nginx/sites-enabled/default
|
|
||||||
|
|
||||||
echo -e "\n -> Creating a uwsgi.ini file \n"
|
|
||||||
cat > uwsgi.ini << EOF
|
|
||||||
[uwsgi]
|
|
||||||
chdir = ${INSTALLATION_DIRECTORY}lib/python2.7/site-packages/mayan
|
|
||||||
chmod-socket = 664
|
|
||||||
chown-socket = www-data:www-data
|
|
||||||
env = DJANGO_SETTINGS_MODULE=mayan.settings.production
|
|
||||||
gid = www-data
|
|
||||||
logto = /var/log/uwsgi/%n.log
|
|
||||||
pythonpath = ${INSTALLATION_DIRECTORY}lib/python2.7/site-packages
|
|
||||||
master = True
|
|
||||||
max-requests = 5000
|
|
||||||
socket = ${INSTALLATION_DIRECTORY}uwsgi.sock
|
|
||||||
uid = www-data
|
|
||||||
vacuum = True
|
|
||||||
wsgi-file = ${INSTALLATION_DIRECTORY}lib/python2.7/site-packages/mayan/wsgi.py
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo -e "\n -> Creating the directory for the uWSGI log files \n"
|
|
||||||
mkdir -p /var/log/uwsgi
|
|
||||||
|
|
||||||
echo -e "\n -> Creating the NGINX site file for Mayan EDMS, /etc/nginx/sites-available/mayan \n"
|
|
||||||
cat > /etc/nginx/sites-available/mayan << EOF
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
server_name localhost;
|
|
||||||
|
|
||||||
location / {
|
|
||||||
include uwsgi_params;
|
|
||||||
uwsgi_pass unix:${INSTALLATION_DIRECTORY}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 ${INSTALLATION_DIRECTORY}mayan/media/static;
|
|
||||||
expires 1h;
|
|
||||||
}
|
|
||||||
|
|
||||||
location /favicon.ico {
|
|
||||||
alias ${INSTALLATION_DIRECTORY}mayan/media/static/appearance/images/favicon.ico;
|
|
||||||
expires 1h;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo -e "\n -> Enabling the NGINX site for Mayan EDMS \n"
|
|
||||||
ln -s /etc/nginx/sites-available/mayan /etc/nginx/sites-enabled/
|
|
||||||
|
|
||||||
echo -e "\n -> Creating the supervisor file for the uWSGI process, /etc/supervisor/conf.d/mayan-uwsgi.conf \n"
|
|
||||||
cat > /etc/supervisor/conf.d/mayan-uwsgi.conf << EOF
|
|
||||||
[program:mayan-uwsgi]
|
|
||||||
command = ${INSTALLATION_DIRECTORY}bin/uwsgi --ini ${INSTALLATION_DIRECTORY}uwsgi.ini
|
|
||||||
user = root
|
|
||||||
autostart = true
|
|
||||||
autorestart = true
|
|
||||||
redirect_stderr = true
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo -e "\n -> Creating the supervisor file for the Celery worker, /etc/supervisor/conf.d/mayan-celery.conf \n"
|
|
||||||
cat > /etc/supervisor/conf.d/mayan-celery.conf << EOF
|
|
||||||
[program:mayan-worker]
|
|
||||||
command = ${INSTALLATION_DIRECTORY}bin/python ${INSTALLATION_DIRECTORY}bin/mayan-edms.py celery --settings=mayan.settings.production worker -Ofair -l ERROR
|
|
||||||
directory = ${INSTALLATION_DIRECTORY}
|
|
||||||
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 = ${INSTALLATION_DIRECTORY}bin/python ${INSTALLATION_DIRECTORY}bin/mayan-edms.py celery --settings=mayan.settings.production beat -l ERROR
|
|
||||||
directory = ${INSTALLATION_DIRECTORY}
|
|
||||||
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
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo -e "\n -> Collecting the static files \n"
|
|
||||||
mayan-edms.py collectstatic --noinput
|
|
||||||
|
|
||||||
echo -e "\n -> Making the installation directory readable and writable by the webserver user \n"
|
|
||||||
chown www-data:www-data ${INSTALLATION_DIRECTORY} -R
|
|
||||||
|
|
||||||
echo -e "\n -> Restarting the services \n"
|
|
||||||
/etc/init.d/nginx restart
|
|
||||||
/etc/init.d/supervisor restart
|
|
||||||
@@ -1,115 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
import os
|
|
||||||
import optparse
|
|
||||||
|
|
||||||
import sh
|
|
||||||
|
|
||||||
|
|
||||||
APP_LIST = (
|
|
||||||
'acls', 'appearance', 'authentication', 'cabinets', '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', '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',
|
|
||||||
)
|
|
||||||
|
|
||||||
makemessages = sh.Command('django-admin.py')
|
|
||||||
makemessages = makemessages.bake('makemessages')
|
|
||||||
|
|
||||||
compilemessages = sh.Command('django-admin.py')
|
|
||||||
compilemessages = compilemessages.bake('compilemessages')
|
|
||||||
|
|
||||||
transifex_client = sh.Command('tx')
|
|
||||||
pull_translations = transifex_client.bake('pull')
|
|
||||||
push_translations = transifex_client.bake('push')
|
|
||||||
|
|
||||||
BASE_DIR = os.path.abspath(
|
|
||||||
os.path.join(os.path.dirname(__file__), '..', '..', 'mayan')
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def process(command, app_list, language_list):
|
|
||||||
if command == makemessages:
|
|
||||||
print 'Making messages'
|
|
||||||
elif command == compilemessages:
|
|
||||||
print 'Compiling messages'
|
|
||||||
elif command == pull_translations:
|
|
||||||
print 'Pulling translation files'
|
|
||||||
elif command == push_translations:
|
|
||||||
print 'Pushing translation files'
|
|
||||||
|
|
||||||
if command in [compilemessages, makemessages]:
|
|
||||||
for app in app_list:
|
|
||||||
print 'Processing app: %s...' % app
|
|
||||||
app_path = os.path.join(BASE_DIR, 'apps', app)
|
|
||||||
os.chdir(app_path)
|
|
||||||
for lang in language_list:
|
|
||||||
print 'Doing language: %s' % lang
|
|
||||||
command(locale=lang)
|
|
||||||
elif command == pull_translations:
|
|
||||||
for lang in language_list:
|
|
||||||
print 'Doing language: %s' % lang
|
|
||||||
command('-f', '-l', lang)
|
|
||||||
elif command == push_translations:
|
|
||||||
for lang in language_list:
|
|
||||||
print 'Doing language: %s' % lang
|
|
||||||
command('-s', '-l', lang)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
parser = optparse.OptionParser()
|
|
||||||
parser.add_option(
|
|
||||||
'-m', '--make', help='create message sources file', dest='make',
|
|
||||||
default=False, action='store_true'
|
|
||||||
)
|
|
||||||
parser.add_option(
|
|
||||||
'-c', '--compile', help='compile message files', dest='compile',
|
|
||||||
default=False, action='store_true'
|
|
||||||
)
|
|
||||||
parser.add_option(
|
|
||||||
'-p', '--pull', help='pull translation files', dest='pull',
|
|
||||||
default=False, action='store_true'
|
|
||||||
)
|
|
||||||
parser.add_option(
|
|
||||||
'-u', '--push', help='push translation files', dest='push',
|
|
||||||
default=False, action='store_true'
|
|
||||||
)
|
|
||||||
parser.add_option(
|
|
||||||
'-a', '--app', help='specify which app to process', dest='app',
|
|
||||||
action='store', metavar='appname'
|
|
||||||
)
|
|
||||||
parser.add_option(
|
|
||||||
'-l', '--lang', help='specify which language to process', dest='lang',
|
|
||||||
action='store', metavar='language'
|
|
||||||
)
|
|
||||||
(opts, args) = parser.parse_args()
|
|
||||||
|
|
||||||
if not opts.make and not opts.compile:
|
|
||||||
parser.print_help()
|
|
||||||
|
|
||||||
if opts.app:
|
|
||||||
app_list = [opts.app]
|
|
||||||
else:
|
|
||||||
app_list = APP_LIST
|
|
||||||
|
|
||||||
if opts.lang:
|
|
||||||
language_list = [opts.lang]
|
|
||||||
else:
|
|
||||||
language_list = LANGUAGE_LIST
|
|
||||||
|
|
||||||
if opts.make:
|
|
||||||
process(makemessages, app_list, language_list)
|
|
||||||
elif opts.compile:
|
|
||||||
process(compilemessages, app_list, language_list)
|
|
||||||
elif opts.pull:
|
|
||||||
process(pull_translations, app_list, language_list)
|
|
||||||
elif opts.push:
|
|
||||||
process(push_translations, app_list, language_list)
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
NAME="mayan-edms"
|
|
||||||
DJANGODIR=/usr/share/mayan-edms
|
|
||||||
SOCKFILE=/var/tmp/filesystem.sock
|
|
||||||
USER=www-data
|
|
||||||
GROUP=www-data
|
|
||||||
NUM_WORKERS=3
|
|
||||||
DJANGO_SETTINGS_MODULE=mayan.settings.production
|
|
||||||
DJANGO_WSGI_MODULE=mayan.wsgi
|
|
||||||
TIMEOUT=600
|
|
||||||
|
|
||||||
echo "Starting $NAME as `whoami`"
|
|
||||||
|
|
||||||
# Activate the virtual environment
|
|
||||||
cd $DJANGODIR
|
|
||||||
source bin/activate
|
|
||||||
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
|
|
||||||
export PYTHONPATH=$DJANGODIR:$PYTHONPATH
|
|
||||||
|
|
||||||
# Create the run directory if it doesn't exist
|
|
||||||
RUNDIR=$(dirname $SOCKFILE)
|
|
||||||
test -d $RUNDIR || mkdir -p $RUNDIR
|
|
||||||
|
|
||||||
# Start your Django Unicorn
|
|
||||||
# Programs meant to be run under supervisor should not daemonize themselves (do not use --daemon)
|
|
||||||
exec bin/gunicorn ${DJANGO_WSGI_MODULE}:application \
|
|
||||||
--name $NAME \
|
|
||||||
--workers $NUM_WORKERS \
|
|
||||||
--user=$USER --group=$GROUP \
|
|
||||||
--log-level=debug \
|
|
||||||
--bind=unix:$SOCKFILE \
|
|
||||||
--timeout=$TIMEOUT
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
from __future__ import absolute_import
|
|
||||||
|
|
||||||
import ldap
|
|
||||||
from django_auth_ldap.config import LDAPSearch
|
|
||||||
|
|
||||||
from .base import *
|
|
||||||
from django.conf import settings
|
|
||||||
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 User.DoesNotExist:
|
|
||||||
return None
|
|
||||||
|
|
||||||
def get_user(self, username):
|
|
||||||
try:
|
|
||||||
return get_user_model().objects.get(pk=username)
|
|
||||||
except get_user_model().DoesNotExist:
|
|
||||||
return None
|
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
/*
|
||||||
|
project: web application template
|
||||||
|
author: luka cvrk (www.solucija.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
*{ margin: 0; padding: 0; }*
|
||||||
|
body { margin: 50px 0 0; background: #fff url(../images/bg.gif) repeat-x; font: .74em "Trebuchet MS", Arial, Sans-Serif; color: #444; }
|
||||||
|
h1 { font-size: 3em; font-weight: normal; float: left; }
|
||||||
|
h1 a { text-decoration: none; }
|
||||||
|
h2 { font-size: 2em; color: #FFF2B3; font-weight: normal; margin: 0 0 .8em; }
|
||||||
|
h3 { font-size: 1.5em; border-bottom: 1px solid #eee; margin: 0 0 .8em; }
|
||||||
|
h4 { font-size: 1.2em; margin: 0 0 .4em;}
|
||||||
|
h5 { font-size: 1.1em; margin: 0 0 .3em; text-decoration: underline;}
|
||||||
|
p { margin: 0 0 1em 0; line-height: 1.6em;}
|
||||||
|
em { border-bottom: 1px dotted #fff; cursor: pointer; }
|
||||||
|
a { color: #9D2900; }
|
||||||
|
a:hover { color: #A0000E; text-decoration: none; }
|
||||||
|
img { border: 0; }
|
||||||
|
.red { color: #9D2900; }
|
||||||
|
|
||||||
|
.wrap { width: 900px; margin: 0 auto; }
|
||||||
|
|
||||||
|
#header { width: 900px; height: 50px; margin: 0 auto; }
|
||||||
|
#menu { float: right; padding: 6px 0 0 0; list-style: none; }
|
||||||
|
#menu li { display: inline; }
|
||||||
|
#menu a { display: block; float: left; margin-left: 30px; padding: 7px; text-decoration: none; font-size: 13px; color: #000000; }
|
||||||
|
#menu a:hover { color: #000; border-bottom: 2px solid #ccc; }
|
||||||
|
#menu .active a { border-bottom: 2px solid #C70012; color: #9D2900;}
|
||||||
|
|
||||||
|
#teaser { clear: both; height: 259px; background: #fff url(../images/teaserbg.jpg) repeat-x; }
|
||||||
|
.box { float: left; padding: 66px 0 0; width: 480px; color: #C7E3EE; }
|
||||||
|
#image { float: right; width: 388px; position: relative; top: 16px; background: url(../images/logotype.jpg) no-repeat top right; height: 258px; }
|
||||||
|
|
||||||
|
#bar { height: 40px; margin: 0 0 30px; padding: 8px 0 0 0; background: url(../images/bar.gif) repeat-x; }
|
||||||
|
.step { color: #FAFDDD; padding: 4px 0 0 11px; margin: 0 35px 0 0; font-size: 1.4em; float: left; text-align: center; background: url(../images/step.gif) no-repeat; height: 30px; }
|
||||||
|
.step a { color: #fff; margin: 0 10px 0 0; }
|
||||||
|
|
||||||
|
.col { float: left; width: 276px; margin: 0 30px 16px 0; }
|
||||||
|
.last { float: right; margin: 0; }
|
||||||
|
.info { border: 1px solid #e0e0e0; background: #f4f4f4; padding: 7px; }
|
||||||
|
|
||||||
|
#footer { clear: both; width: 900px; margin: 0 auto; padding: 15px; border-top: 1px solid #e0e0e0; background: #fff url(../images/small_logotype.jpg) no-repeat right 13px; }
|
||||||
|
#footer .right { float: right; margin: 0 55px 0 0; }
|
||||||
|
#footer a { color: #808080; font-weight: bold; }
|
||||||
|
|
||||||
|
|
||||||
|
.screenshot {
|
||||||
|
border: 1px solid black;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre { background: #000; color: #fff; padding: 15px; margin-left: 0px; padding:0px;}
|
||||||
|
|
||||||
|
.center {display: block; margin-left: auto; margin-right: auto;}
|
||||||
|
|
||||||
|
.tc {text-align: center;}
|
||||||
|
|
||||||
|
ul.piramid_bullets > li {
|
||||||
|
list-style-image:url("../images/bullet.png");
|
||||||
|
margin-left: 20px;
|
||||||
|
list-style-type:square;
|
||||||
|
}
|
||||||
|
ul.news > li {margin-bottom: 4em;}
|
||||||
|
ul.support > li {margin-bottom: 3em;}
|
||||||
|
ul.other_site > li {margin-bottom: 3em;}
|
||||||
|
ul {
|
||||||
|
list-style:circle;
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gplus { margin-left: 10px; }
|
||||||
|
|
||||||
|
|
||||||
|
.horizontal li
|
||||||
|
{
|
||||||
|
display: inline;
|
||||||
|
list-style-type: none;
|
||||||
|
padding-right: 20px;
|
||||||
|
}
|
||||||
-133
@@ -1,133 +0,0 @@
|
|||||||
# Makefile for Sphinx documentation
|
|
||||||
#
|
|
||||||
|
|
||||||
# You can set these variables from the command line.
|
|
||||||
SPHINXOPTS =
|
|
||||||
SPHINXBUILD = sphinx-build
|
|
||||||
PAPER =
|
|
||||||
BUILDDIR = _build
|
|
||||||
|
|
||||||
# Internal variables.
|
|
||||||
PAPEROPT_a4 = -D latex_paper_size=a4
|
|
||||||
PAPEROPT_letter = -D latex_paper_size=letter
|
|
||||||
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
|
||||||
|
|
||||||
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
|
|
||||||
|
|
||||||
help:
|
|
||||||
@echo "Please use \`make <target>' where <target> is one of"
|
|
||||||
@echo " html to make standalone HTML files"
|
|
||||||
@echo " dirhtml to make HTML files named index.html in directories"
|
|
||||||
@echo " singlehtml to make a single large HTML file"
|
|
||||||
@echo " pickle to make pickle files"
|
|
||||||
@echo " json to make JSON files"
|
|
||||||
@echo " htmlhelp to make HTML files and a HTML help project"
|
|
||||||
@echo " qthelp to make HTML files and a qthelp project"
|
|
||||||
@echo " devhelp to make HTML files and a Devhelp project"
|
|
||||||
@echo " epub to make an epub"
|
|
||||||
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
|
||||||
@echo " latexpdf to make LaTeX files and run them through pdflatex"
|
|
||||||
@echo " text to make text files"
|
|
||||||
@echo " man to make manual pages"
|
|
||||||
@echo " changes to make an overview of all changed/added/deprecated items"
|
|
||||||
@echo " linkcheck to check all external links for integrity"
|
|
||||||
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
|
||||||
|
|
||||||
clean:
|
|
||||||
-rm -rf $(BUILDDIR)/*
|
|
||||||
|
|
||||||
html:
|
|
||||||
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
|
||||||
@echo
|
|
||||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
|
||||||
|
|
||||||
dirhtml:
|
|
||||||
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
|
|
||||||
@echo
|
|
||||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
|
|
||||||
|
|
||||||
singlehtml:
|
|
||||||
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
|
|
||||||
@echo
|
|
||||||
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
|
|
||||||
|
|
||||||
pickle:
|
|
||||||
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
|
|
||||||
@echo
|
|
||||||
@echo "Build finished; now you can process the pickle files."
|
|
||||||
|
|
||||||
json:
|
|
||||||
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
|
|
||||||
@echo
|
|
||||||
@echo "Build finished; now you can process the JSON files."
|
|
||||||
|
|
||||||
htmlhelp:
|
|
||||||
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
|
|
||||||
@echo
|
|
||||||
@echo "Build finished; now you can run HTML Help Workshop with the" \
|
|
||||||
".hhp project file in $(BUILDDIR)/htmlhelp."
|
|
||||||
|
|
||||||
qthelp:
|
|
||||||
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
|
|
||||||
@echo
|
|
||||||
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
|
|
||||||
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
|
|
||||||
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/MayanEDMS.qhcp"
|
|
||||||
@echo "To view the help file:"
|
|
||||||
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/MayanEDMS.qhc"
|
|
||||||
|
|
||||||
devhelp:
|
|
||||||
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
|
|
||||||
@echo
|
|
||||||
@echo "Build finished."
|
|
||||||
@echo "To view the help file:"
|
|
||||||
@echo "# mkdir -p $$HOME/.local/share/devhelp/MayanEDMS"
|
|
||||||
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/MayanEDMS"
|
|
||||||
@echo "# devhelp"
|
|
||||||
|
|
||||||
epub:
|
|
||||||
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
|
|
||||||
@echo
|
|
||||||
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
|
|
||||||
|
|
||||||
latex:
|
|
||||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
|
||||||
@echo
|
|
||||||
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
|
|
||||||
@echo "Run \`make' in that directory to run these through (pdf)latex" \
|
|
||||||
"(use \`make latexpdf' here to do that automatically)."
|
|
||||||
|
|
||||||
latexpdf:
|
|
||||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
|
||||||
@echo "Running LaTeX files through pdflatex..."
|
|
||||||
make -C $(BUILDDIR)/latex all-pdf
|
|
||||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
|
||||||
|
|
||||||
text:
|
|
||||||
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
|
|
||||||
@echo
|
|
||||||
@echo "Build finished. The text files are in $(BUILDDIR)/text."
|
|
||||||
|
|
||||||
man:
|
|
||||||
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
|
|
||||||
@echo
|
|
||||||
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
|
|
||||||
|
|
||||||
changes:
|
|
||||||
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
|
|
||||||
@echo
|
|
||||||
@echo "The overview file is in $(BUILDDIR)/changes."
|
|
||||||
|
|
||||||
linkcheck:
|
|
||||||
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
|
|
||||||
@echo
|
|
||||||
@echo "Link check complete; look for any errors in the above output " \
|
|
||||||
"or in $(BUILDDIR)/linkcheck/output.txt."
|
|
||||||
|
|
||||||
doctest:
|
|
||||||
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
|
|
||||||
@echo "Testing of doctests in the sources finished, look at the " \
|
|
||||||
"results in $(BUILDDIR)/doctest/output.txt."
|
|
||||||
|
|
||||||
livehtml:
|
|
||||||
sphinx-autobuild -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
|
||||||
@@ -1,229 +0,0 @@
|
|||||||
"""
|
|
||||||
Sphinx plugins for Django documentation.
|
|
||||||
"""
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
|
|
||||||
from docutils import nodes, transforms
|
|
||||||
try:
|
|
||||||
import json
|
|
||||||
except ImportError:
|
|
||||||
try:
|
|
||||||
import simplejson as json
|
|
||||||
except ImportError:
|
|
||||||
try:
|
|
||||||
from django.utils import simplejson as json
|
|
||||||
except ImportError:
|
|
||||||
json = None
|
|
||||||
|
|
||||||
from sphinx import addnodes, roles, __version__ as sphinx_ver
|
|
||||||
from sphinx.builders.html import StandaloneHTMLBuilder
|
|
||||||
from sphinx.writers.html import SmartyPantsHTMLTranslator
|
|
||||||
from sphinx.util.console import bold
|
|
||||||
from sphinx.util.compat import Directive
|
|
||||||
|
|
||||||
# RE for option descriptions without a '--' prefix
|
|
||||||
simple_option_desc_re = re.compile(
|
|
||||||
r'([-_a-zA-Z0-9]+)(\s*.*?)(?=,\s+(?:/|-|--)|$)')
|
|
||||||
|
|
||||||
def setup(app):
|
|
||||||
app.add_crossref_type(
|
|
||||||
directivename = "setting",
|
|
||||||
rolename = "setting",
|
|
||||||
indextemplate = "pair: %s; setting",
|
|
||||||
)
|
|
||||||
app.add_crossref_type(
|
|
||||||
directivename = "templatetag",
|
|
||||||
rolename = "ttag",
|
|
||||||
indextemplate = "pair: %s; template tag"
|
|
||||||
)
|
|
||||||
app.add_crossref_type(
|
|
||||||
directivename = "templatefilter",
|
|
||||||
rolename = "tfilter",
|
|
||||||
indextemplate = "pair: %s; template filter"
|
|
||||||
)
|
|
||||||
app.add_crossref_type(
|
|
||||||
directivename = "fieldlookup",
|
|
||||||
rolename = "lookup",
|
|
||||||
indextemplate = "pair: %s; field lookup type",
|
|
||||||
)
|
|
||||||
app.add_description_unit(
|
|
||||||
directivename = "django-admin",
|
|
||||||
rolename = "djadmin",
|
|
||||||
indextemplate = "pair: %s; django-admin command",
|
|
||||||
parse_node = parse_django_admin_node,
|
|
||||||
)
|
|
||||||
app.add_description_unit(
|
|
||||||
directivename = "django-admin-option",
|
|
||||||
rolename = "djadminopt",
|
|
||||||
indextemplate = "pair: %s; django-admin command-line option",
|
|
||||||
parse_node = parse_django_adminopt_node,
|
|
||||||
)
|
|
||||||
app.add_config_value('django_next_version', '0.0', True)
|
|
||||||
app.add_directive('versionadded', VersionDirective)
|
|
||||||
app.add_directive('versionchanged', VersionDirective)
|
|
||||||
app.add_builder(DjangoStandaloneHTMLBuilder)
|
|
||||||
|
|
||||||
|
|
||||||
class VersionDirective(Directive):
|
|
||||||
has_content = True
|
|
||||||
required_arguments = 1
|
|
||||||
optional_arguments = 1
|
|
||||||
final_argument_whitespace = True
|
|
||||||
option_spec = {}
|
|
||||||
|
|
||||||
def run(self):
|
|
||||||
env = self.state.document.settings.env
|
|
||||||
arg0 = self.arguments[0]
|
|
||||||
is_nextversion = env.config.django_next_version == arg0
|
|
||||||
ret = []
|
|
||||||
node = addnodes.versionmodified()
|
|
||||||
ret.append(node)
|
|
||||||
if not is_nextversion:
|
|
||||||
if len(self.arguments) == 1:
|
|
||||||
linktext = 'Please see the release notes </releases/%s>' % (arg0)
|
|
||||||
xrefs = roles.XRefRole()('doc', linktext, linktext, self.lineno, self.state)
|
|
||||||
node.extend(xrefs[0])
|
|
||||||
node['version'] = arg0
|
|
||||||
else:
|
|
||||||
node['version'] = "Development version"
|
|
||||||
node['type'] = self.name
|
|
||||||
if len(self.arguments) == 2:
|
|
||||||
inodes, messages = self.state.inline_text(self.arguments[1], self.lineno+1)
|
|
||||||
node.extend(inodes)
|
|
||||||
if self.content:
|
|
||||||
self.state.nested_parse(self.content, self.content_offset, node)
|
|
||||||
ret = ret + messages
|
|
||||||
env.note_versionchange(node['type'], node['version'], node, self.lineno)
|
|
||||||
return ret
|
|
||||||
|
|
||||||
|
|
||||||
class DjangoHTMLTranslator(SmartyPantsHTMLTranslator):
|
|
||||||
"""
|
|
||||||
Django-specific reST to HTML tweaks.
|
|
||||||
"""
|
|
||||||
|
|
||||||
# Don't use border=1, which docutils does by default.
|
|
||||||
def visit_table(self, node):
|
|
||||||
self._table_row_index = 0 # Needed by Sphinx
|
|
||||||
self.body.append(self.starttag(node, 'table', CLASS='docutils'))
|
|
||||||
|
|
||||||
# <big>? Really?
|
|
||||||
def visit_desc_parameterlist(self, node):
|
|
||||||
self.body.append('(')
|
|
||||||
self.first_param = 1
|
|
||||||
self.param_separator = node.child_text_separator
|
|
||||||
|
|
||||||
def depart_desc_parameterlist(self, node):
|
|
||||||
self.body.append(')')
|
|
||||||
|
|
||||||
if sphinx_ver < '1.0.8':
|
|
||||||
#
|
|
||||||
# Don't apply smartypants to literal blocks
|
|
||||||
#
|
|
||||||
def visit_literal_block(self, node):
|
|
||||||
self.no_smarty += 1
|
|
||||||
SmartyPantsHTMLTranslator.visit_literal_block(self, node)
|
|
||||||
|
|
||||||
def depart_literal_block(self, node):
|
|
||||||
SmartyPantsHTMLTranslator.depart_literal_block(self, node)
|
|
||||||
self.no_smarty -= 1
|
|
||||||
|
|
||||||
#
|
|
||||||
# Turn the "new in version" stuff (versionadded/versionchanged) into a
|
|
||||||
# better callout -- the Sphinx default is just a little span,
|
|
||||||
# which is a bit less obvious that I'd like.
|
|
||||||
#
|
|
||||||
# FIXME: these messages are all hardcoded in English. We need to change
|
|
||||||
# that to accomodate other language docs, but I can't work out how to make
|
|
||||||
# that work.
|
|
||||||
#
|
|
||||||
version_text = {
|
|
||||||
'deprecated': 'Deprecated in Django %s',
|
|
||||||
'versionchanged': 'Changed in Django %s',
|
|
||||||
'versionadded': 'New in Django %s',
|
|
||||||
}
|
|
||||||
|
|
||||||
def visit_versionmodified(self, node):
|
|
||||||
self.body.append(
|
|
||||||
self.starttag(node, 'div', CLASS=node['type'])
|
|
||||||
)
|
|
||||||
title = "%s%s" % (
|
|
||||||
self.version_text[node['type']] % node['version'],
|
|
||||||
len(node) and ":" or "."
|
|
||||||
)
|
|
||||||
self.body.append('<span class="title">%s</span> ' % title)
|
|
||||||
|
|
||||||
def depart_versionmodified(self, node):
|
|
||||||
self.body.append("</div>\n")
|
|
||||||
|
|
||||||
# Give each section a unique ID -- nice for custom CSS hooks
|
|
||||||
def visit_section(self, node):
|
|
||||||
old_ids = node.get('ids', [])
|
|
||||||
node['ids'] = ['s-' + i for i in old_ids]
|
|
||||||
node['ids'].extend(old_ids)
|
|
||||||
SmartyPantsHTMLTranslator.visit_section(self, node)
|
|
||||||
node['ids'] = old_ids
|
|
||||||
|
|
||||||
def parse_django_admin_node(env, sig, signode):
|
|
||||||
command = sig.split(' ')[0]
|
|
||||||
env._django_curr_admin_command = command
|
|
||||||
title = "django-admin.py %s" % sig
|
|
||||||
signode += addnodes.desc_name(title, title)
|
|
||||||
return sig
|
|
||||||
|
|
||||||
def parse_django_adminopt_node(env, sig, signode):
|
|
||||||
"""A copy of sphinx.directives.CmdoptionDesc.parse_signature()"""
|
|
||||||
from sphinx.domains.std import option_desc_re
|
|
||||||
count = 0
|
|
||||||
firstname = ''
|
|
||||||
for m in option_desc_re.finditer(sig):
|
|
||||||
optname, args = m.groups()
|
|
||||||
if count:
|
|
||||||
signode += addnodes.desc_addname(', ', ', ')
|
|
||||||
signode += addnodes.desc_name(optname, optname)
|
|
||||||
signode += addnodes.desc_addname(args, args)
|
|
||||||
if not count:
|
|
||||||
firstname = optname
|
|
||||||
count += 1
|
|
||||||
if not count:
|
|
||||||
for m in simple_option_desc_re.finditer(sig):
|
|
||||||
optname, args = m.groups()
|
|
||||||
if count:
|
|
||||||
signode += addnodes.desc_addname(', ', ', ')
|
|
||||||
signode += addnodes.desc_name(optname, optname)
|
|
||||||
signode += addnodes.desc_addname(args, args)
|
|
||||||
if not count:
|
|
||||||
firstname = optname
|
|
||||||
count += 1
|
|
||||||
if not firstname:
|
|
||||||
raise ValueError
|
|
||||||
return firstname
|
|
||||||
|
|
||||||
|
|
||||||
class DjangoStandaloneHTMLBuilder(StandaloneHTMLBuilder):
|
|
||||||
"""
|
|
||||||
Subclass to add some extra things we need.
|
|
||||||
"""
|
|
||||||
|
|
||||||
name = 'djangohtml'
|
|
||||||
|
|
||||||
def finish(self):
|
|
||||||
super(DjangoStandaloneHTMLBuilder, self).finish()
|
|
||||||
if json is None:
|
|
||||||
self.warn("cannot create templatebuiltins.js due to missing simplejson dependency")
|
|
||||||
return
|
|
||||||
self.info(bold("writing templatebuiltins.js..."))
|
|
||||||
xrefs = self.env.domaindata["std"]["objects"]
|
|
||||||
templatebuiltins = {
|
|
||||||
"ttags": [n for ((t, n), (l, a)) in xrefs.items()
|
|
||||||
if t == "templatetag" and l == "ref/templates/builtins"],
|
|
||||||
"tfilters": [n for ((t, n), (l, a)) in xrefs.items()
|
|
||||||
if t == "templatefilter" and l == "ref/templates/builtins"],
|
|
||||||
}
|
|
||||||
outfilename = os.path.join(self.outdir, "templatebuiltins.js")
|
|
||||||
f = open(outfilename, 'wb')
|
|
||||||
f.write('var django_template_builtins = ')
|
|
||||||
json.dump(templatebuiltins, f)
|
|
||||||
f.write(';\n')
|
|
||||||
f.close();
|
|
||||||
Vendored
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 2.9 KiB |
Vendored
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 5.6 KiB |
Vendored
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 628 KiB |
Vendored
-16
@@ -1,16 +0,0 @@
|
|||||||
<h3>Support</h3>
|
|
||||||
<p>
|
|
||||||
<a href='http://www.mayan-edms.com/providers/'>Consulting and support plans are available, click here</a>.
|
|
||||||
</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 />
|
|
||||||
-251
@@ -1,251 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
#
|
|
||||||
# Mayan EDMS documentation build configuration file, created by
|
|
||||||
# sphinx-quickstart on Fri Aug 19 05:13:38 2011.
|
|
||||||
#
|
|
||||||
# This file is execfile()d with the current directory set to its containing dir.
|
|
||||||
#
|
|
||||||
# Note that not all possible configuration values are present in this
|
|
||||||
# autogenerated file.
|
|
||||||
#
|
|
||||||
# All configuration values have a default; values that are commented out
|
|
||||||
# serve to show the default.
|
|
||||||
|
|
||||||
import sys, os
|
|
||||||
|
|
||||||
sys.path.insert(0, os.path.abspath('..'))
|
|
||||||
|
|
||||||
import mayan
|
|
||||||
|
|
||||||
# If extensions (or modules to document with autodoc) are in another directory,
|
|
||||||
# add these directories to sys.path here. If the directory is relative to the
|
|
||||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
|
||||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "_ext")))
|
|
||||||
|
|
||||||
# -- General configuration -----------------------------------------------------
|
|
||||||
|
|
||||||
# If your documentation needs a minimal Sphinx version, state it here.
|
|
||||||
#needs_sphinx = '1.0'
|
|
||||||
|
|
||||||
# Add any Sphinx extension module names here, as strings. They can be extensions
|
|
||||||
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
|
|
||||||
#extensions = ['sphinx.ext.autodoc', 'sphinx.ext.viewcode']
|
|
||||||
#extensions = ["djangodocs", "sphinx.ext.intersphinx"]
|
|
||||||
extensions = ['djangodocs', 'sphinxcontrib.blockdiag']
|
|
||||||
|
|
||||||
blockdiag_antialias = True
|
|
||||||
blockdiag_html_image_format = "SVG"
|
|
||||||
blockdiag_latex_image_format = "PDF"
|
|
||||||
|
|
||||||
# Add any paths that contain templates here, relative to this directory.
|
|
||||||
templates_path = ['_templates']
|
|
||||||
|
|
||||||
# The suffix of source filenames.
|
|
||||||
source_suffix = '.rst'
|
|
||||||
|
|
||||||
# The encoding of source files.
|
|
||||||
# source_encoding = 'utf-8-sig'
|
|
||||||
|
|
||||||
# The master toctree document.
|
|
||||||
master_doc = 'index'
|
|
||||||
|
|
||||||
# General information about the project.
|
|
||||||
project = mayan.__title__
|
|
||||||
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
|
|
||||||
# built documents.
|
|
||||||
#
|
|
||||||
# The short X.Y version.
|
|
||||||
version = mayan.__version__
|
|
||||||
|
|
||||||
# The full version, including alpha/beta/rc tags.
|
|
||||||
release = version
|
|
||||||
|
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
|
||||||
# for a list of supported languages.
|
|
||||||
#language = None
|
|
||||||
|
|
||||||
# There are two options for replacing |today|: either, you set today to some
|
|
||||||
# non-false value, then it is used:
|
|
||||||
#today = ''
|
|
||||||
# Else, today_fmt is used as the format for a strftime call.
|
|
||||||
#today_fmt = '%B %d, %Y'
|
|
||||||
|
|
||||||
# List of patterns, relative to source directory, that match files and
|
|
||||||
# directories to ignore when looking for source files.
|
|
||||||
exclude_patterns = ['_build']
|
|
||||||
|
|
||||||
# The reST default role (used for this markup: `text`) to use for all documents.
|
|
||||||
#default_role = None
|
|
||||||
|
|
||||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
|
||||||
add_function_parentheses = True
|
|
||||||
|
|
||||||
# If true, the current module name will be prepended to all description
|
|
||||||
# unit titles (such as .. function::).
|
|
||||||
add_module_names = False
|
|
||||||
|
|
||||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
|
||||||
# output. They are ignored by default.
|
|
||||||
show_authors = False
|
|
||||||
|
|
||||||
# The name of the Pygments (syntax highlighting) style to use.
|
|
||||||
pygments_style = 'sphinx'
|
|
||||||
|
|
||||||
# A list of ignored prefixes for module index sorting.
|
|
||||||
#modindex_common_prefix = []
|
|
||||||
|
|
||||||
|
|
||||||
# -- Options for HTML output ---------------------------------------------------
|
|
||||||
|
|
||||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
|
||||||
# a list of builtin themes.
|
|
||||||
html_theme = 'classic'
|
|
||||||
|
|
||||||
# Theme options are theme-specific and customize the look and feel of a theme
|
|
||||||
# further. For a list of options available for each theme, see the
|
|
||||||
# documentation.
|
|
||||||
#html_theme_options = {}
|
|
||||||
|
|
||||||
# Add any paths that contain custom themes here, relative to this directory.
|
|
||||||
#html_theme_path = []
|
|
||||||
|
|
||||||
# The name for this set of Sphinx documents. If None, it defaults to
|
|
||||||
# "<project> v<release> documentation".
|
|
||||||
#html_title = None
|
|
||||||
|
|
||||||
# A shorter title for the navigation bar. Default is the same as html_title.
|
|
||||||
#html_short_title = None
|
|
||||||
|
|
||||||
# The name of an image file (relative to this directory) to place at the top
|
|
||||||
# of the sidebar.
|
|
||||||
#html_logo = None
|
|
||||||
|
|
||||||
# The name of an image file (within the static path) to use as favicon of the
|
|
||||||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
|
||||||
# pixels large.
|
|
||||||
#html_favicon = None
|
|
||||||
|
|
||||||
# Add any paths that contain custom static files (such as style sheets) here,
|
|
||||||
# relative to this directory. They are copied after the builtin static files,
|
|
||||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
|
||||||
html_static_path = ['_static']
|
|
||||||
|
|
||||||
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
|
||||||
# using the given strftime format.
|
|
||||||
#html_last_updated_fmt = '%b %d, %Y'
|
|
||||||
|
|
||||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
|
||||||
# typographically correct entities.
|
|
||||||
#html_use_smartypants = True
|
|
||||||
|
|
||||||
# Custom sidebar templates, maps document names to template names.
|
|
||||||
#html_sidebars = {}
|
|
||||||
|
|
||||||
# Additional templates that should be rendered to pages, maps page names to
|
|
||||||
# template names.
|
|
||||||
#html_additional_pages = {}
|
|
||||||
|
|
||||||
# If false, no module index is generated.
|
|
||||||
#html_domain_indices = True
|
|
||||||
|
|
||||||
# If false, no index is generated.
|
|
||||||
#html_use_index = True
|
|
||||||
|
|
||||||
# If true, the index is split into individual pages for each letter.
|
|
||||||
#html_split_index = False
|
|
||||||
|
|
||||||
# If true, links to the reST sources are added to the pages.
|
|
||||||
#html_show_sourcelink = True
|
|
||||||
|
|
||||||
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
|
||||||
#html_show_sphinx = True
|
|
||||||
|
|
||||||
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
|
||||||
#html_show_copyright = True
|
|
||||||
|
|
||||||
# If true, an OpenSearch description file will be output, and all pages will
|
|
||||||
# contain a <link> tag referring to it. The value of this option must be the
|
|
||||||
# base URL from which the finished HTML is served.
|
|
||||||
#html_use_opensearch = ''
|
|
||||||
|
|
||||||
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
|
||||||
#html_file_suffix = None
|
|
||||||
|
|
||||||
# Output file base name for HTML help builder.
|
|
||||||
htmlhelp_basename = 'MayanEDMSdoc'
|
|
||||||
|
|
||||||
|
|
||||||
# -- Options for LaTeX output --------------------------------------------------
|
|
||||||
|
|
||||||
# The paper size ('letter' or 'a4').
|
|
||||||
#latex_paper_size = 'letter'
|
|
||||||
|
|
||||||
# The font size ('10pt', '11pt' or '12pt').
|
|
||||||
#latex_font_size = '10pt'
|
|
||||||
|
|
||||||
# Grouping the document tree into LaTeX files. List of tuples
|
|
||||||
# (source start file, target name, title, author, documentclass [howto/manual]).
|
|
||||||
latex_documents = [
|
|
||||||
('index', 'MayanEDMS.tex', 'Mayan EDMS Documentation',
|
|
||||||
mayan.__author__, 'manual'),
|
|
||||||
]
|
|
||||||
|
|
||||||
# The name of an image file (relative to this directory) to place at the top of
|
|
||||||
# the title page.
|
|
||||||
#latex_logo = None
|
|
||||||
|
|
||||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
|
||||||
# not chapters.
|
|
||||||
#latex_use_parts = False
|
|
||||||
|
|
||||||
# If true, show page references after internal links.
|
|
||||||
#latex_show_pagerefs = False
|
|
||||||
|
|
||||||
# If true, show URL addresses after external links.
|
|
||||||
#latex_show_urls = False
|
|
||||||
|
|
||||||
# Additional stuff for the LaTeX preamble.
|
|
||||||
#latex_preamble = ''
|
|
||||||
|
|
||||||
# Documents to append as an appendix to all manuals.
|
|
||||||
#latex_appendices = []
|
|
||||||
|
|
||||||
# If false, no module index is generated.
|
|
||||||
#latex_domain_indices = True
|
|
||||||
|
|
||||||
|
|
||||||
# -- Options for manual page output --------------------------------------------
|
|
||||||
|
|
||||||
# One entry per manual page. List of tuples
|
|
||||||
# (source start file, name, description, authors, manual section).
|
|
||||||
man_pages = [
|
|
||||||
('index', 'mayanedms', 'Mayan EDMS Documentation',
|
|
||||||
[mayan.__author__], 1)
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
# -- 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'
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
Welcome to Mayan EDMS!
|
|
||||||
======================
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
.. image:: /_static/overview.gif
|
|
||||||
:alt: Overview
|
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:hidden:
|
|
||||||
|
|
||||||
Installation <topics/installation>
|
|
||||||
Features <topics/features>
|
|
||||||
Advanced deployment <topics/deploying>
|
|
||||||
Release notes and upgrading <releases/index>
|
|
||||||
Concepts <topics/index>
|
|
||||||
Development <topics/development>
|
|
||||||
App creation <topics/app_creation>
|
|
||||||
Roadmap <topics/roadmap>
|
|
||||||
Translations <topics/translations>
|
|
||||||
Contributors <topics/contributors>
|
|
||||||
Licensing <topics/license>
|
|
||||||
FAQ <topics/faq>
|
|
||||||
Contact <topics/contact>
|
|
||||||
|
|
||||||
.. _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
|
|
||||||
.. _Apache 2.0 License: https://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
-155
@@ -1,155 +0,0 @@
|
|||||||
@ECHO OFF
|
|
||||||
|
|
||||||
REM Command file for Sphinx documentation
|
|
||||||
|
|
||||||
if "%SPHINXBUILD%" == "" (
|
|
||||||
set SPHINXBUILD=sphinx-build
|
|
||||||
)
|
|
||||||
set BUILDDIR=_build
|
|
||||||
set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% .
|
|
||||||
if NOT "%PAPER%" == "" (
|
|
||||||
set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "" goto help
|
|
||||||
|
|
||||||
if "%1" == "help" (
|
|
||||||
:help
|
|
||||||
echo.Please use `make ^<target^>` where ^<target^> is one of
|
|
||||||
echo. html to make standalone HTML files
|
|
||||||
echo. dirhtml to make HTML files named index.html in directories
|
|
||||||
echo. singlehtml to make a single large HTML file
|
|
||||||
echo. pickle to make pickle files
|
|
||||||
echo. json to make JSON files
|
|
||||||
echo. htmlhelp to make HTML files and a HTML help project
|
|
||||||
echo. qthelp to make HTML files and a qthelp project
|
|
||||||
echo. devhelp to make HTML files and a Devhelp project
|
|
||||||
echo. epub to make an epub
|
|
||||||
echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
|
|
||||||
echo. text to make text files
|
|
||||||
echo. man to make manual pages
|
|
||||||
echo. changes to make an overview over all changed/added/deprecated items
|
|
||||||
echo. linkcheck to check all external links for integrity
|
|
||||||
echo. doctest to run all doctests embedded in the documentation if enabled
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "clean" (
|
|
||||||
for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
|
|
||||||
del /q /s %BUILDDIR%\*
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "html" (
|
|
||||||
%SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
|
|
||||||
echo.
|
|
||||||
echo.Build finished. The HTML pages are in %BUILDDIR%/html.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "dirhtml" (
|
|
||||||
%SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
|
|
||||||
echo.
|
|
||||||
echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "singlehtml" (
|
|
||||||
%SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
|
|
||||||
echo.
|
|
||||||
echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "pickle" (
|
|
||||||
%SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
|
|
||||||
echo.
|
|
||||||
echo.Build finished; now you can process the pickle files.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "json" (
|
|
||||||
%SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
|
|
||||||
echo.
|
|
||||||
echo.Build finished; now you can process the JSON files.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "htmlhelp" (
|
|
||||||
%SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
|
|
||||||
echo.
|
|
||||||
echo.Build finished; now you can run HTML Help Workshop with the ^
|
|
||||||
.hhp project file in %BUILDDIR%/htmlhelp.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "qthelp" (
|
|
||||||
%SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
|
|
||||||
echo.
|
|
||||||
echo.Build finished; now you can run "qcollectiongenerator" with the ^
|
|
||||||
.qhcp project file in %BUILDDIR%/qthelp, like this:
|
|
||||||
echo.^> qcollectiongenerator %BUILDDIR%\qthelp\MayanEDMS.qhcp
|
|
||||||
echo.To view the help file:
|
|
||||||
echo.^> assistant -collectionFile %BUILDDIR%\qthelp\MayanEDMS.ghc
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "devhelp" (
|
|
||||||
%SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
|
|
||||||
echo.
|
|
||||||
echo.Build finished.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "epub" (
|
|
||||||
%SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
|
|
||||||
echo.
|
|
||||||
echo.Build finished. The epub file is in %BUILDDIR%/epub.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "latex" (
|
|
||||||
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
|
|
||||||
echo.
|
|
||||||
echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "text" (
|
|
||||||
%SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
|
|
||||||
echo.
|
|
||||||
echo.Build finished. The text files are in %BUILDDIR%/text.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "man" (
|
|
||||||
%SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
|
|
||||||
echo.
|
|
||||||
echo.Build finished. The manual pages are in %BUILDDIR%/man.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "changes" (
|
|
||||||
%SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
|
|
||||||
echo.
|
|
||||||
echo.The overview file is in %BUILDDIR%/changes.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "linkcheck" (
|
|
||||||
%SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
|
|
||||||
echo.
|
|
||||||
echo.Link check complete; look for any errors in the above output ^
|
|
||||||
or in %BUILDDIR%/linkcheck/output.txt.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
if "%1" == "doctest" (
|
|
||||||
%SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
|
|
||||||
echo.
|
|
||||||
echo.Testing of doctests in the sources finished, look at the ^
|
|
||||||
results in %BUILDDIR%/doctest/output.txt.
|
|
||||||
goto end
|
|
||||||
)
|
|
||||||
|
|
||||||
:end
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
Version 0.10.1
|
|
||||||
--------------
|
|
||||||
* Upgraded django-compressor to version 1.1.1, run::
|
|
||||||
|
|
||||||
$ pip install --upgrade -r requirements/production.txt
|
|
||||||
|
|
||||||
to upgrade
|
|
||||||
|
|
||||||
* django-compressor is now disabled by default, users must explicitly
|
|
||||||
enable it adding COMPRESS_ENABLED=True to their settings_local.py file
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
Version 0.10
|
|
||||||
------------
|
|
||||||
* Added a proper setup views for the document grouping functionality.
|
|
||||||
* Document grouping is now called smart linking as it relates better to
|
|
||||||
how it actually works. The data base schema was changed and users must
|
|
||||||
do the required::
|
|
||||||
|
|
||||||
$ ./manager syncdb
|
|
||||||
|
|
||||||
for the new tables to be created.
|
|
||||||
* Grappelli is no longer required as can be uninstalled.
|
|
||||||
* New smarter document preview widget that doesn't allow zooming or viewing
|
|
||||||
unknown or invalid documents.
|
|
||||||
* New office document converter, requires:
|
|
||||||
|
|
||||||
* LibreOffice (https://www.libreoffice.org/)
|
|
||||||
* unoconv [version 0.5] (https://github.com/dagwieers/unoconv)
|
|
||||||
|
|
||||||
* The new office documents converter won't convert files with the extension
|
|
||||||
.docx because these files are recognized as zip files instead. This
|
|
||||||
is an issue of the libmagic library.
|
|
||||||
|
|
||||||
* New configuration option added ``CONVERTER_UNOCONV_USE_PIPE`` that controls
|
|
||||||
how unoconv handles the communication with LibreOffice. The default of
|
|
||||||
``True`` causes unoconv to use **pipes**, this approach is slower than using
|
|
||||||
**TCP/IP** ports but it is more stable.
|
|
||||||
|
|
||||||
* Initial `REST` `API` that exposes documents properties and one method, this
|
|
||||||
new `API` is used by the new smart document widget and requires the
|
|
||||||
package ``djangorestframework``, users must issue a::
|
|
||||||
|
|
||||||
$ pip install -r requirements/production.txt
|
|
||||||
|
|
||||||
to install this new requirement.
|
|
||||||
|
|
||||||
* MIME type detection and caching performance updates.
|
|
||||||
* Updated the included version of ``jQuery`` to 1.7
|
|
||||||
* Updated the included version of ``JqueryAsynchImageLoader`` to 0.9.7
|
|
||||||
* Document image serving response now specifies a MIME type for increased
|
|
||||||
browser compatibility.
|
|
||||||
* Small change in the scheduler that increases stability.
|
|
||||||
* Russian translation updates Sergey Glita
|
|
||||||
* Improved and generalized the OCR queue locking mechanism, this should
|
|
||||||
eliminate any posibility of race conditions between Mayan EDMS OCR nodes.
|
|
||||||
* Added support for signals to the OCR queue, this results in instant OCR
|
|
||||||
processing upon submittal of a document to the OCR queue, this works in
|
|
||||||
addition to the current polling processing which eliminates the
|
|
||||||
posibility of stale documents in the OCR queue.
|
|
||||||
* Added multiple document OCR submit link
|
|
||||||
* Re enabled tesseract language specific OCR processing and added a one
|
|
||||||
(1) time language neutral retry for failed language specific OCR
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
Version 0.11.1
|
|
||||||
--------------
|
|
||||||
* Fixed a document deletion regression
|
|
||||||
* Improves error detection when importing keys from a keyserver, catching
|
|
||||||
the exception KeyImportError and not KeyFetchingError
|
|
||||||
* Fixes a wrong method call when verifying signatures for the first time upon document uploading
|
|
||||||
* django-compress is now disabled by default to avoid problems when deploying with DjangoZoom
|
|
||||||
* Improve post metadata set delete redirection
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
Version 0.11
|
|
||||||
------------
|
|
||||||
* Support for signed documents verification added, embedded and detached
|
|
||||||
signatures are supported. When verifying a document Mayan EDMS will
|
|
||||||
try to fetch the public key from the list of keyservers provided in the
|
|
||||||
configuration option SIGNATURES_KEYSERVERS (which defaults to
|
|
||||||
'pool.sks-keyservers.net'). A public key management view has been added
|
|
||||||
to the setup menu as well as a key query and fetching view to manually
|
|
||||||
import keys from a keyserver.
|
|
||||||
* Added support for document versions. Users can upload unlimited amount
|
|
||||||
of versions for a document using a very flexible document version numbering
|
|
||||||
system, users can also revert to a previous document version.
|
|
||||||
* OCR queue processing improvements.
|
|
||||||
* Office documents handling improvements.
|
|
||||||
* Text extraction support for office documents.
|
|
||||||
* RTF text documents are now handled as office documents.
|
|
||||||
* Added a view to delete the document image cache, useful when switching
|
|
||||||
converter backends or doing diagnostics.
|
|
||||||
* Added South to the requirements.
|
|
||||||
* Merged documents' filename and extension database fiels into a single
|
|
||||||
filename field, filename are store as uploaded not manipulation is done
|
|
||||||
Users with existing data must install South and run the appropiate
|
|
||||||
migrate commands::
|
|
||||||
|
|
||||||
$ pip install -r requirements/production.txt
|
|
||||||
$ ./manager syncdb
|
|
||||||
$ ./manage.py migrate documents 0001 --fake
|
|
||||||
$ ./manage.py migrate documents
|
|
||||||
|
|
||||||
* Added new office document mimetype
|
|
||||||
* application/vnd.ms-office
|
|
||||||
* Fixed documents not saving the file encoding
|
|
||||||
* Removed extra slash in ajax-loader.gif URL fixes #15, thanks to
|
|
||||||
IHLeanne for finding this one
|
|
||||||
@@ -1,116 +0,0 @@
|
|||||||
================================
|
|
||||||
Mayan EDMS v0.12.1 release notes
|
|
||||||
================================
|
|
||||||
|
|
||||||
*May 2012*
|
|
||||||
|
|
||||||
This is the first maintenance release of the 0.12 series.
|
|
||||||
|
|
||||||
Overview
|
|
||||||
========
|
|
||||||
|
|
||||||
While bug fixes and minor feature were the focus for this release, some
|
|
||||||
bigger changes were included because of their importance. The parsing of
|
|
||||||
documents saw a complete rewrite being now class based and allows for more
|
|
||||||
than one parser per mimetype with sequencial fallback. This provides the
|
|
||||||
best text extraction on deployments where users have control over the
|
|
||||||
installation and basic extraction when deploying on the cloud or other
|
|
||||||
environments where users don't have the ability to install OS level
|
|
||||||
binaries.
|
|
||||||
|
|
||||||
|
|
||||||
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
|
|
||||||
looking to automate the install whether in local or remote systems.
|
|
||||||
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
|
|
||||||
the fabfile as more are tested.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
Translations
|
|
||||||
~~~~~~~~~~~~
|
|
||||||
The Italian translation has been synchronized with the source files at
|
|
||||||
Transifex and finished to %100 completion.
|
|
||||||
|
|
||||||
Usability improvements
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
The index instance view now feature the same multi document action
|
|
||||||
buttons (Submit to OCR, delete, download, etc) as the mail and recent
|
|
||||||
document views.
|
|
||||||
|
|
||||||
Better office document conversion
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
A new method of converting office documents has been implemented, this
|
|
||||||
new method doesn't require the use of the command line utility ``UNOCONV``.
|
|
||||||
If this new method proves to work better than previous solutions the use
|
|
||||||
of ``UNOCONV`` may be deprecated in the future. The conversion method
|
|
||||||
adds just one new configuration option: `CONVERTER_LIBREOFFICE_PATH`
|
|
||||||
which defaults to '/usr/bin/libreoffice'.
|
|
||||||
|
|
||||||
Better PDF text parsing
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
Brian E. submitted a patch to use the Poppler package pdftotext utility to
|
|
||||||
extract text from PDF files. This is now the default method Mayan EDMS
|
|
||||||
will execute to try to extract text from a PDF and failing that will
|
|
||||||
fallback to the previous method. This change add a new configuration
|
|
||||||
option: `OCR_PDFTOTEXT_PATH` to specify the location of the ``pdftotext``
|
|
||||||
executable, it defaults to '/usr/bin/pdftotext'. Be sure to install the
|
|
||||||
``poppler-utils`` os package to take advantage of this new parser.
|
|
||||||
|
|
||||||
Changed defaults
|
|
||||||
~~~~~~~~~~~~~~~~
|
|
||||||
The OCR queue is now active by default when first created during the
|
|
||||||
``syncdb`` phase and the `OCR_AUTOMATIC_OCR` option now defaults
|
|
||||||
to ``True``. These two changes are made to reduce the steps required for
|
|
||||||
new users to start enjoying the benefits of automatic text extraction from
|
|
||||||
uploaded documents without having to read the documentation and have a more
|
|
||||||
functional default install.
|
|
||||||
|
|
||||||
Upgrading from a previous version
|
|
||||||
=================================
|
|
||||||
|
|
||||||
Start off by adding the new requirements::
|
|
||||||
|
|
||||||
$ pip install -r requirements/production.txt
|
|
||||||
|
|
||||||
Migrate existing database schema with::
|
|
||||||
|
|
||||||
$ ./manage.py migrate documents
|
|
||||||
|
|
||||||
Install the ``poppler-utils`` package:
|
|
||||||
|
|
||||||
* Ubuntu, Debian::
|
|
||||||
|
|
||||||
$ apt-get install -y poppler-utils
|
|
||||||
|
|
||||||
* Fedora::
|
|
||||||
|
|
||||||
$ yum install -y poppler-utils
|
|
||||||
|
|
||||||
The upgrade procedure is now complete.
|
|
||||||
|
|
||||||
|
|
||||||
Backward incompatible changes
|
|
||||||
=============================
|
|
||||||
* None
|
|
||||||
|
|
||||||
Bugs fixed
|
|
||||||
==========
|
|
||||||
* Issue #25 "Office document conversion error"
|
|
||||||
|
|
||||||
Stuff removed
|
|
||||||
=============
|
|
||||||
* None
|
|
||||||
@@ -1,115 +0,0 @@
|
|||||||
================================
|
|
||||||
Mayan EDMS v0.12.2 release notes
|
|
||||||
================================
|
|
||||||
|
|
||||||
*June 2012*
|
|
||||||
|
|
||||||
This is the second maintenance release of the 0.12 series.
|
|
||||||
|
|
||||||
Overview
|
|
||||||
========
|
|
||||||
|
|
||||||
|
|
||||||
As with the previous release bug fixes and minor feature were the focus
|
|
||||||
for this release too. `issue #24`_ has been fixed and document
|
|
||||||
check outs have been added too as per the feature request posted as `issue #26`_.
|
|
||||||
The way the history events for a document are presented has been improved and
|
|
||||||
it is now more useful as it provides filtering by event type. To improve
|
|
||||||
the diagnosis of installation of runtime error a simple view showing the
|
|
||||||
number of internal interval jobs being used by Mayan EDMS as well as a
|
|
||||||
new app which shows a detail of the current installation enviroment were added.
|
|
||||||
|
|
||||||
What's new in Mayan EDMS v0.12.2
|
|
||||||
================================
|
|
||||||
|
|
||||||
Smarter auto admin creation
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
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
|
|
||||||
specified with the configuration option `COMMON_AUTO_ADMIN_USERNAME`
|
|
||||||
and the password of this account by the option `COMMON_AUTO_ADMIN_PASSWORD`.
|
|
||||||
Previously the `COMMON_AUTO_ADMIN_PASSWORD` defaulted to 'admin' which
|
|
||||||
created an administrator account of username 'admin' with a password of
|
|
||||||
'admin'. The new default is to randomize an initial password and show this password
|
|
||||||
at the login screen until the administrator password is changed.
|
|
||||||
|
|
||||||
Document check outs
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
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
|
|
||||||
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
|
|
||||||
``Forcefully check in documents`` permission respectively.
|
|
||||||
|
|
||||||
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
|
|
||||||
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
|
|
||||||
download. A different filename can now be specified at the same download dialog.
|
|
||||||
|
|
||||||
German translation
|
|
||||||
~~~~~~~~~~~~~~~~~~
|
|
||||||
A German language translation has been added thanks to Tetja Rediske
|
|
||||||
and Tilmann Sittig.
|
|
||||||
|
|
||||||
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
|
|
||||||
anonymous statistics gathering functionality.
|
|
||||||
|
|
||||||
|
|
||||||
Upgrading from a previous version
|
|
||||||
=================================
|
|
||||||
|
|
||||||
Start off by adding the new requirements::
|
|
||||||
|
|
||||||
$ pip install -r requirements/production.txt
|
|
||||||
|
|
||||||
Migrate existing database schema with::
|
|
||||||
|
|
||||||
$ ./manage.py migrate common 0001 --fake
|
|
||||||
$ ./manage.py migrate common
|
|
||||||
$ ./manage.py migrate checkouts
|
|
||||||
$ ./manage.py migrate installation
|
|
||||||
|
|
||||||
Add new static media::
|
|
||||||
|
|
||||||
$ ./manage.py collectstatic --noinput
|
|
||||||
|
|
||||||
The upgrade procedure is now complete.
|
|
||||||
|
|
||||||
|
|
||||||
Backward incompatible changes
|
|
||||||
=============================
|
|
||||||
* None
|
|
||||||
|
|
||||||
Bugs fixed
|
|
||||||
==========
|
|
||||||
* `issue #24`_ "Duplicated filename extension when uploading a new version of a document"
|
|
||||||
* `issue #26`_ "checkout feature request"
|
|
||||||
|
|
||||||
Stuff removed
|
|
||||||
=============
|
|
||||||
* Feedback app
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. _issue #24: https://github.com/rosarior/mayan/issues/24
|
|
||||||
.. _issue #26: https://github.com/rosarior/mayan/issues/26
|
|
||||||
@@ -1,231 +0,0 @@
|
|||||||
==============================
|
|
||||||
Mayan EDMS v0.12 release notes
|
|
||||||
==============================
|
|
||||||
|
|
||||||
*February 2012*
|
|
||||||
|
|
||||||
Welcome to Mayan EDMS v0.12!
|
|
||||||
|
|
||||||
This release commemorates Mayan EDMS first aniversary!
|
|
||||||
|
|
||||||
Overview
|
|
||||||
========
|
|
||||||
|
|
||||||
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
|
|
||||||
level permissions, with this new system being applied to documents,
|
|
||||||
folder, tags and smart links. There is also a small batch of navigation
|
|
||||||
improvements. Big code cleanup and lots of changes 'under the hood',
|
|
||||||
most of these are not visible to the end user, but make the code cleaner
|
|
||||||
and more manageable so that more and better features can be added in future
|
|
||||||
releases:
|
|
||||||
|
|
||||||
* Absolute imports used throught the code
|
|
||||||
* All app permissions have been move to a separate permissions.py file
|
|
||||||
per app
|
|
||||||
* Complete permission system refactor.
|
|
||||||
* Document signining code move to it's own app
|
|
||||||
* Initial unit tests
|
|
||||||
* A lot of logging used throught the entire project.
|
|
||||||
* Much functionality moved to model managers.
|
|
||||||
* A lot of code converted into classes.
|
|
||||||
* Coding style improvements.
|
|
||||||
* Template user authentication state logic improvements, for stonger
|
|
||||||
prevention against intrusion or unintentional display or access
|
|
||||||
of restricted data.
|
|
||||||
* Removal of remarked code.
|
|
||||||
|
|
||||||
|
|
||||||
What's new in Mayan EDMS v0.12
|
|
||||||
==============================
|
|
||||||
|
|
||||||
ACL support
|
|
||||||
~~~~~~~~~~~
|
|
||||||
* Object level access control is now in place for documents, folders,
|
|
||||||
tags and smart links. What this means is that administrators can now
|
|
||||||
grant permissions to users, groups or roles on for specific objects.
|
|
||||||
A more in-depth explanation of how this new ACL system can be found in
|
|
||||||
the :doc:`3 tier access control <../topics/permissions>` section of the
|
|
||||||
permissions chapter.
|
|
||||||
|
|
||||||
* Default class ACL support. Administrators can setup the access control
|
|
||||||
lists that new documents, folders and tags will automatically inheric
|
|
||||||
when created. Aside from asigning permission to users, groups and roles
|
|
||||||
to specific objects, there is a special user called `Creator`, use to
|
|
||||||
allow the access control list that the actual creator of an object will
|
|
||||||
inherit.
|
|
||||||
|
|
||||||
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.
|
|
||||||
The second part of this support is the ability to assign permissions
|
|
||||||
or individual access to objects to anonymous users.
|
|
||||||
|
|
||||||
Translations
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
A new Italian translation is available, provided by SeeOpen.IT
|
|
||||||
(www.seeopen.it, info@seeopen.it) as well as complete Russian translation
|
|
||||||
update by Sergei Glita. Included in this release also the initial translation
|
|
||||||
to Polish by mic.
|
|
||||||
|
|
||||||
Usability improvements
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
* Detached signature behavior improved, uploading a new detached signature
|
|
||||||
erases the previous one.
|
|
||||||
* Usability improvement in the role member's add/removal form, by using
|
|
||||||
HTML's option groups tag property
|
|
||||||
|
|
||||||
2 Step download process
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
The code for downloading single and multiple document and document versions
|
|
||||||
has been merged with compression support also added. This allows for the
|
|
||||||
download of documents in their original format or compressed and well as
|
|
||||||
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
|
|
||||||
store keyrings and other GPG configuration files.
|
|
||||||
|
|
||||||
Out of process bulk uploading
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
A management command has been added to help upload a large number of documents
|
|
||||||
from a compressed file. For information about this new feature check the Initial data loading chapter.
|
|
||||||
|
|
||||||
|
|
||||||
Out of process user import
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
A management command has been added to import a large number users
|
|
||||||
from a CSV file. More information about this new feature can also be found
|
|
||||||
in the Initial data loading chapter.
|
|
||||||
|
|
||||||
|
|
||||||
Refactored document indexing
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
:doc:`The document indexing <../topics/indexes>` functionality has been
|
|
||||||
improved and moved from experimental
|
|
||||||
stage to beta stage. Index configuration menus are now available on the
|
|
||||||
``Setup`` menu and allows administrators to create skeleton trees that will
|
|
||||||
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
|
|
||||||
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
|
|
||||||
mirrored on disk.
|
|
||||||
|
|
||||||
Help shape Mayan EDMS's future
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
Included in this version is a small feedback application, found under the
|
|
||||||
``About`` main menu, where users by just answering some questions can
|
|
||||||
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.
|
|
||||||
|
|
||||||
Staging file previews
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
The staging file previews now show the filename for easier
|
|
||||||
identification and speedier upload selection. The staging files previews
|
|
||||||
are now treated as a gallery which means that users can preview an entire
|
|
||||||
page of staging files without having to click and close each one
|
|
||||||
individually.
|
|
||||||
|
|
||||||
|
|
||||||
Upgrading from a previous version
|
|
||||||
=================================
|
|
||||||
|
|
||||||
Start off by adding the new requirements::
|
|
||||||
|
|
||||||
$ pip install -r requirements/production.txt
|
|
||||||
|
|
||||||
Then create the new database structures with::
|
|
||||||
|
|
||||||
$ ./manage.py syncdb
|
|
||||||
|
|
||||||
Afterwards migrate existing database schema with::
|
|
||||||
|
|
||||||
$ ./manage.py migrate permissions 0001 --fake
|
|
||||||
$ ./manage.py migrate permissions
|
|
||||||
|
|
||||||
|
|
||||||
When the following message appears
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
The following content types are stale and need to be deleted:
|
|
||||||
|
|
||||||
permissions | permission
|
|
||||||
|
|
||||||
Any objects related to these content types by a foreign key will also
|
|
||||||
be deleted. Are you sure you want to delete these content types?
|
|
||||||
If you're unsure, answer 'no'.
|
|
||||||
|
|
||||||
Type 'yes' to continue, or 'no' to cancel:
|
|
||||||
|
|
||||||
Type ``yes`` and press **Enter**
|
|
||||||
|
|
||||||
And continue migrating database schema with::
|
|
||||||
|
|
||||||
$ ./manage.py migrate documents
|
|
||||||
$ ./manage.py migrate document_signatures
|
|
||||||
$ ./manage.py migrate folders 0001 --fake
|
|
||||||
$ ./manage.py migrate folders
|
|
||||||
$ ./manage.py migrate document_indexing 0001 --fake
|
|
||||||
$ ./manage.py migrate document_indexing
|
|
||||||
$ ./manage.py migrate sources 0001 --fake
|
|
||||||
$ ./manage.py migrate sources
|
|
||||||
|
|
||||||
Again when a similar messages appears
|
|
||||||
::
|
|
||||||
|
|
||||||
The following content types are stale and need to be deleted:
|
|
||||||
|
|
||||||
document_indexing | indexinstance
|
|
||||||
|
|
||||||
Any objects related to these content types by a foreign key will also
|
|
||||||
be deleted. Are you sure you want to delete these content types?
|
|
||||||
If you're unsure, answer 'no'.
|
|
||||||
|
|
||||||
Type 'yes' to continue, or 'no' to cancel:
|
|
||||||
|
|
||||||
Type ``yes`` and press **Enter**
|
|
||||||
|
|
||||||
The upgrade procedure is now complete.
|
|
||||||
|
|
||||||
|
|
||||||
Backward incompatible changes
|
|
||||||
=============================
|
|
||||||
The permission system has been completely reworked so sadly this is a
|
|
||||||
place where even data migration can't help and the permissions assigned
|
|
||||||
to roles will be lost during the upgrade to version 0.12. Users, groups
|
|
||||||
and roles will be preserved only permissions need to be assigned again,
|
|
||||||
so write down your role permission setup before upgrading.
|
|
||||||
|
|
||||||
Bugs fixed
|
|
||||||
==========
|
|
||||||
* Issue #17, special thanks to Dave Herring for all the help including
|
|
||||||
access to a machine suffering with the issue, and to Sergei Glita for
|
|
||||||
his research and eventual find of the core cause.
|
|
||||||
* Statistics fixes.
|
|
||||||
* Fixed get_image_cache_name regression in the OCR app.
|
|
||||||
|
|
||||||
Stuff removed
|
|
||||||
=============
|
|
||||||
* Support for Celery and Sentry has been drop
|
|
||||||
for now.
|
|
||||||
* Removed the 'db_index' argument from Text fields definition and
|
|
||||||
migrations as it was causing error messages for MySQL users, thanks to
|
|
||||||
Sergei Glita for reporting this one.
|
|
||||||
* Configuration options removed:
|
|
||||||
|
|
||||||
* OCR_CACHE_URI
|
|
||||||
* DOCUMENT_INDEXING_FILESYSTEM_FILESERVING_PATH - Use the newest `DOCUMENT_INDEXING_FILESYSTEM_SERVING`
|
|
||||||
* DOCUMENT_INDEXING_FILESYSTEM_FILESERVING_ENABLE - Use the newest `DOCUMENT_INDEXING_FILESYSTEM_SERVING`
|
|
||||||
|
|
||||||
@@ -1,162 +0,0 @@
|
|||||||
================================
|
|
||||||
Mayan EDMS v0.13 release notes
|
|
||||||
================================
|
|
||||||
|
|
||||||
*December 2012*
|
|
||||||
|
|
||||||
Welcome to Mayan EDMS v0.13!
|
|
||||||
|
|
||||||
Overview
|
|
||||||
========
|
|
||||||
|
|
||||||
Initially this version was meant as a the third maintenance release of
|
|
||||||
the 0.12 series, but with the amount of changes and updates that were included
|
|
||||||
it was obvious this was not just a bug fix version anymore hence the version
|
|
||||||
jump to 0.13 instead of 0.12.3
|
|
||||||
|
|
||||||
|
|
||||||
What's new in Mayan EDMS v0.13
|
|
||||||
================================
|
|
||||||
|
|
||||||
Django 1.3.5
|
|
||||||
~~~~~~~~~~~~
|
|
||||||
This release updates the required version of Django to 1.3.5 to take advantage
|
|
||||||
of the security fixes added to that version of the framework.
|
|
||||||
|
|
||||||
Bulk document tagging and untagging
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
As requested by issue `issue #31`_ this feature has been implemented and enabled in this version.
|
|
||||||
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.
|
|
||||||
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
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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
|
|
||||||
address this situation a new feature that provides preconfigured setups has been
|
|
||||||
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.
|
|
||||||
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
|
|
||||||
(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.
|
|
||||||
|
|
||||||
Translation updates
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
The translation for all the current languages were synchronized to the
|
|
||||||
latest transifex project sources.
|
|
||||||
|
|
||||||
Model updates
|
|
||||||
~~~~~~~~~~~~~
|
|
||||||
Several small fixes to the behavior of some model were added, namely that
|
|
||||||
the names of some models should be unique. The document type name as well
|
|
||||||
as the metadata set name were two models that were updated to behave this way.
|
|
||||||
|
|
||||||
Navigation updates
|
|
||||||
~~~~~~~~~~~~~~~~~~
|
|
||||||
There were some additions and changes to the navigation to make it more intuitive
|
|
||||||
or to add an alternate way to access the same information better. The bulk
|
|
||||||
attachment of tags was one of these. Previously users were added or removed from groups,
|
|
||||||
now users can be assigned to groups without leaving the user view. The name of an
|
|
||||||
existing metadata set can now be edited and what was previously called metadata set edit
|
|
||||||
is now more aptly named metadata members which adds or removes metadata types into a
|
|
||||||
single organizational unit. An error that caused a duplicate menu link in the
|
|
||||||
document type filename view was also fixed.
|
|
||||||
|
|
||||||
Support for UNOCONV dropped
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
Support for converting office documents by calling LibreOffice via UNOCONV
|
|
||||||
has been disabled for a while ever since LibreOffice start including
|
|
||||||
document conversion support from the command line. This version completly
|
|
||||||
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
|
|
||||||
the Raspberry Pi, several rounds or profiling and optimization were done.
|
|
||||||
|
|
||||||
Some caching optimization were introduced to the permission model, resulting in
|
|
||||||
a speed increase of 33% in rendering time on views with heavy permission checking
|
|
||||||
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::
|
|
||||||
|
|
||||||
$ 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
|
|
||||||
|
|
||||||
Migrate existing database schema with::
|
|
||||||
|
|
||||||
$ ./manage.py migrate document_indexing
|
|
||||||
$ ./manage.py migrate metadata 0001 --fake
|
|
||||||
$ ./manage.py migrate metadata
|
|
||||||
$ ./manage.py migrate bootstrap
|
|
||||||
$ ./manage.py migrate documents
|
|
||||||
$ ./manage.py migrate registration
|
|
||||||
|
|
||||||
Add new static media::
|
|
||||||
|
|
||||||
$ ./manage.py collectstatic --noinput
|
|
||||||
|
|
||||||
The upgrade procedure is now complete.
|
|
||||||
|
|
||||||
|
|
||||||
Backward incompatible changes
|
|
||||||
=============================
|
|
||||||
* None
|
|
||||||
|
|
||||||
Bugs fixed or issues closed
|
|
||||||
===========================
|
|
||||||
* `issue #28`_ "Document indexing based on filesystem problem"
|
|
||||||
* `issue #29`_ Default ACL documentation
|
|
||||||
* `issue #30`_ "Ubuntu 12.0.4 LTS complaining about mising 'fabfile/templates/settings_local.py' (master branch)"
|
|
||||||
* `issue #31`_ "Bulk add tags Feature request"
|
|
||||||
* `issue #32`_ "Error run $python manage.py syncdb"
|
|
||||||
* `issue #33`_ "Fetches translations from Transifex. "
|
|
||||||
* `issue #34`_ "Initial syncdb fails because of import time database access"
|
|
||||||
* `issue #35`_ "Fix first install syncdb on Postgres"
|
|
||||||
* `issue #37`_ "When 19 >= &document_type_id >= 10 in url, error page not found"
|
|
||||||
* `issue #39`_ Feature request "Bulk move folders"
|
|
||||||
|
|
||||||
|
|
||||||
.. _issue #28: https://github.com/rosarior/mayan/issues/28
|
|
||||||
.. _issue #29: https://github.com/rosarior/mayan/issues/29
|
|
||||||
.. _issue #30: https://github.com/rosarior/mayan/issues/30
|
|
||||||
.. _issue #31: https://github.com/rosarior/mayan/issues/31
|
|
||||||
.. _issue #32: https://github.com/rosarior/mayan/issues/32
|
|
||||||
.. _issue #33: https://github.com/rosarior/mayan/issues/33
|
|
||||||
.. _issue #34: https://github.com/rosarior/mayan/issues/34
|
|
||||||
.. _issue #35: https://github.com/rosarior/mayan/issues/35
|
|
||||||
.. _issue #37: https://github.com/rosarior/mayan/issues/37
|
|
||||||
.. _issue #39: https://github.com/rosarior/mayan/issues/39
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
Version 0.5.1
|
|
||||||
-------------
|
|
||||||
* Applied initial merge of the new subtemplate renderer
|
|
||||||
* Fixed tag removal logic
|
|
||||||
* Initial commit to support document comments
|
|
||||||
* Updated so that loading spinner is displayed always
|
|
||||||
* Exclude tags from the local document upload form
|
|
||||||
* Added document tagging support
|
|
||||||
|
|
||||||
- Requires installing ``django-taggit`` and doing a ``sync-db``
|
|
||||||
@@ -1,300 +0,0 @@
|
|||||||
Version 0.5
|
|
||||||
-----------
|
|
||||||
* Added tag list view and global tag delete support
|
|
||||||
* Added tag editing view and listing documents with an specific tag
|
|
||||||
* Changed the previewing and deleting staging files views to required
|
|
||||||
``DOCUMENT_CREATE`` permission
|
|
||||||
* Added no-parent-history class to document page links so that iframe clicking doesn't affect the parent window history
|
|
||||||
|
|
||||||
- Fixes back button issue on Chrome 9 & 10
|
|
||||||
|
|
||||||
* Added per app version display tag
|
|
||||||
* Added loading spinner animation
|
|
||||||
* Messages tweaks and translation updates
|
|
||||||
* Converter app cleanups, document pre-cache, magic number removal
|
|
||||||
* Added OCR view displaying all active OCR tasks from all cluster nodes
|
|
||||||
* Disabled ``CELERY_DISABLE_RATE_LIMITS`` by default
|
|
||||||
* Implement local task locking using Django locmem cache backend
|
|
||||||
* Added doc extension to office document format list
|
|
||||||
* Removed redundant transformation calculation
|
|
||||||
* Make sure OCR in processing documents cannot be deleted
|
|
||||||
* PEP8, pylint cleanups and removal of relative imports
|
|
||||||
* Removed the obsolete ``DOCUMENTS_GROUP_MAX_RESULTS`` setting option
|
|
||||||
* Improved visual appearance of messages by displaying them outside the
|
|
||||||
main form
|
|
||||||
* Added link to close all notifications with one click
|
|
||||||
* Made the queue processing interval configurable by means of a new
|
|
||||||
setting: ``OCR_QUEUE_PROCESSING_INTERVAL``
|
|
||||||
* Added detection and reset of orphaned ocr documents being left as
|
|
||||||
'processing' when celery dies
|
|
||||||
* Improved unknown format detection in the graphicsmagick backend
|
|
||||||
* Improved document convertion API
|
|
||||||
* Added initial support for converting office documents (only ods and
|
|
||||||
docx tested)
|
|
||||||
* Added sample configuration files for supervisor and apache under
|
|
||||||
contrib/
|
|
||||||
* Avoid duplicates in recent document list
|
|
||||||
* Added the configuration option CONVERTER_GM_SETTINGS to pass
|
|
||||||
GraphicsMagicks specific commands the the GM backend
|
|
||||||
* Lower image convertion quality if the format is jpg
|
|
||||||
* Inverted the rotation button, more intuitive this way
|
|
||||||
* Merged and reduced the document page zoom and rotation views
|
|
||||||
* Increased permissions app permission's label field size
|
|
||||||
|
|
||||||
- DB Update required
|
|
||||||
|
|
||||||
* Added support for metadata group actions
|
|
||||||
* Reduced the document pages widget size
|
|
||||||
* Display the metadata group numeric total in the metadata group form
|
|
||||||
title
|
|
||||||
* Reorganized page detail icons
|
|
||||||
* Added first & last page navigation links to document page view
|
|
||||||
* Added interactive zoom support to document page detail view
|
|
||||||
* Spanish translation updates
|
|
||||||
* Added ``DOCUMENTS_ZOOM_PERCENT_STEP``, ``DOCUMENTS_ZOOM_MAX_LEVEL``,
|
|
||||||
``DOCUMENTS_ZOOM_MIN_LEVEL`` configuration options to allow detailed
|
|
||||||
zoom control
|
|
||||||
* Added interactive document page view rotation support
|
|
||||||
* Changed the side bar document grouping with carousel style document
|
|
||||||
grouping form widget
|
|
||||||
* Removed the obsolete ``DOCUMENTS_TRANFORMATION_PREVIEW_SIZE`` and
|
|
||||||
``DOCUMENTS_GROUP_SHOW_THUMBNAIL`` setting options
|
|
||||||
* Improved double submit prevention
|
|
||||||
* Added a direct rename field to the local update and staging upload
|
|
||||||
forms
|
|
||||||
* Separated document page detail view into document text and document
|
|
||||||
image views
|
|
||||||
* Added grab-scroll to document page view
|
|
||||||
* Disabled submit buttons and any buttons when during a form submit
|
|
||||||
* Updated the page preview widget to display a infinite-style horizontal
|
|
||||||
carousel of page previews
|
|
||||||
* Added support user document folders
|
|
||||||
|
|
||||||
- Must do a ``syncdb`` to add the new tables
|
|
||||||
|
|
||||||
* Added support for listing the most recent accessed documents per user
|
|
||||||
* Added document page navigation
|
|
||||||
* Fixed diagnostics url resolution
|
|
||||||
* Added confirmation dialog to document's find missing document file
|
|
||||||
diagnostic
|
|
||||||
* Added a document page edit view
|
|
||||||
* Added support for the command line program pdftotext from the
|
|
||||||
poppler-utils packages to extract text from PDF documents without
|
|
||||||
doing OCR
|
|
||||||
* Fixed document description editing
|
|
||||||
* Replaced page break text with page number when displaying document
|
|
||||||
content
|
|
||||||
* Implemented detail form readonly fields the correct way, this fixes
|
|
||||||
copy & paste issues with Firefox
|
|
||||||
* New document page view
|
|
||||||
* Added view to add or remove user to a specific role
|
|
||||||
* Updated the jQuery packages with the web_theme app to version 1.5.2
|
|
||||||
* Made ``AVAILABLE_INDEXING_FUNCTION`` setting a setting of the documents
|
|
||||||
app instead of the filesystem_serving app
|
|
||||||
* Fixed document download in FireFox for documents containing spaces in
|
|
||||||
the filename
|
|
||||||
* If mime detection fails set mime type to '' instead of 'unknown'
|
|
||||||
* Use document MIME type when downloading otherwise use
|
|
||||||
'application/octet-stream' if none
|
|
||||||
* Changed the way document page count is parsed from the graphics
|
|
||||||
backend, fixing issue #7
|
|
||||||
* Optimized document metadata query and display
|
|
||||||
* Implemented OCR output cleanups for English and Spanish
|
|
||||||
* Redirect user to the website entry point if already logged and lands
|
|
||||||
in the login template
|
|
||||||
* Changed from using SimpleUploadedFile class to stream file to the
|
|
||||||
simpler File class wrapper
|
|
||||||
* Updated staging files previews to use sendfile instead of serve_file
|
|
||||||
* Moved staging file preview creation logic from documents.views to
|
|
||||||
staging.py
|
|
||||||
* When deleting staging file, it's cached preview is also deleted
|
|
||||||
* Added a new setup option:
|
|
||||||
|
|
||||||
- ``FILESYSTEM_INDEXING_AVAILABLE_FUNCTIONS`` - a dictionary to allow users
|
|
||||||
to add custom functions
|
|
||||||
|
|
||||||
* Made automatic OCR a function of the OCR app and not of Documents app (via signals)
|
|
||||||
|
|
||||||
- Renamed setup option ``DOCUMENT_AUTOMATIC_OCR`` to ``OCR_AUTOMATIC_OCR``
|
|
||||||
|
|
||||||
* Clear node name when requeueing a document for OCR
|
|
||||||
* Added support for editing the metadata of multiple documents at the
|
|
||||||
same time
|
|
||||||
* Added Graphics magick support by means of user selectable graphic convertion backends
|
|
||||||
|
|
||||||
- Some settings renamed to support this change:
|
|
||||||
|
|
||||||
+ ``CONVERTER_CONVERT_PATH`` is now ``CONVERTER_IM_CONVERT_PATH``
|
|
||||||
+ ``CONVERTER_IDENTIFY_PATH`` is now ``CONVERTER_IM_IDENTIFY_PATH``
|
|
||||||
|
|
||||||
- Added options:
|
|
||||||
|
|
||||||
+ ``CONVERTER_GM_PATH`` - File path to graphicsmagick's program.
|
|
||||||
+ ``CONVERTER_GRAPHICS_BACKEND`` - Backend to use: ``ImageMagick`` or
|
|
||||||
``GraphicMagick``
|
|
||||||
|
|
||||||
* Raise ImportError and notify user when specifying a non existant
|
|
||||||
converter graphics backend
|
|
||||||
* Fixed issue #4, avoid circular import in permissions/__init__.py
|
|
||||||
* Add a user to a default role only when the user is created
|
|
||||||
* Added total page count to statistics view
|
|
||||||
* Added support to disable the default scrolling JS code included in
|
|
||||||
web_theme app, saving some KBs in transfer
|
|
||||||
* Clear last ocr results when requeueing a document
|
|
||||||
* Removed the 'exists' column in document list view, diagnostics
|
|
||||||
superceded this
|
|
||||||
* Added 3rd party sendfile app (support apache's X-sendfile)
|
|
||||||
* Updated the get_document_image view to use the new sendfile app
|
|
||||||
* Fixed the issue of the strip spaces middleware conflicting with
|
|
||||||
downloads
|
|
||||||
* Removed custom IE9 tags
|
|
||||||
* Closed Issue #6
|
|
||||||
* Allow deletion of non existing documents from OCR queue
|
|
||||||
* Allow OCR requeue of pending documents
|
|
||||||
* Invalid page numbers now raise Http404, not found instead of error
|
|
||||||
* Added an additional check to lower the chance of OCR race conditions
|
|
||||||
between nodes
|
|
||||||
* Introduce a random delay to each node to further reduce the chance of
|
|
||||||
a race condition, until row locking can be implemented or is
|
|
||||||
implemented by Django
|
|
||||||
* Moved navigation code to its own app
|
|
||||||
* Reimplemented OCR delay code, only delay new document
|
|
||||||
Added a new field: delay, update your database schema accordingly
|
|
||||||
* Made the concurrent ocr code more granular, per node, every node can
|
|
||||||
handle different amounts of concurrent ocr tasks
|
|
||||||
Added a new field: node_name, update your database schema acordinging
|
|
||||||
* Reduced default ocr delay time
|
|
||||||
* Added a new diagnostics tab under the tools menu
|
|
||||||
* Added a new option ``OCR_REPLICATION_DELAY`` to allow the storage some
|
|
||||||
time for replication before attempting to do OCR to a document
|
|
||||||
* Added OCR multi document re-queue and delete support
|
|
||||||
* Added simple statistics page (total used storage, total docs, etc)
|
|
||||||
* Implemented form based and button based multi item actions (button
|
|
||||||
based by default)
|
|
||||||
* Added multi document delete
|
|
||||||
* Fixed a few HTML validation errors
|
|
||||||
* Issues are now tracked using github
|
|
||||||
* Added indexing flags to ocr model
|
|
||||||
* Small optimization in document list view
|
|
||||||
* Small search optimization
|
|
||||||
* Display "DEBUG mode" string in title if ``DEBUG`` variable is set to True
|
|
||||||
* Added the fix-permissions bash script under misc/ folder
|
|
||||||
* Plugged another file descriptor leak
|
|
||||||
* Show class name in config settings view
|
|
||||||
* Added missing config option from the setup menu
|
|
||||||
* Close file descriptor to avoid leaks
|
|
||||||
* Don't allow duplicate documents in queues
|
|
||||||
* Don't raise ``PermissionDenied`` exception in ``PermissionDenied middleware``,
|
|
||||||
even while debugging
|
|
||||||
* Fixed page number detection
|
|
||||||
* Created 'simple document' for non technical users with all of a
|
|
||||||
document pages content
|
|
||||||
* Use document preview code for staging file also
|
|
||||||
* Error picture literal name removal
|
|
||||||
* Spanish translation updates
|
|
||||||
* Show document file path in regards of its storage
|
|
||||||
* Added new setting: side bar search box
|
|
||||||
* Implemented new ``PermissioDenied`` exception middleware handler
|
|
||||||
* Permissions app api now returns a ``PermissionDenied`` exception instead
|
|
||||||
of a custom one
|
|
||||||
* Added new 403 error template
|
|
||||||
* Updated the 404 template to display only a not found message
|
|
||||||
* Moved the login required middleware to the common app
|
|
||||||
* Fixed search app's model.objects.filter indentation, improved result
|
|
||||||
count calculation
|
|
||||||
* Added dynamic comparison types to search app
|
|
||||||
* Separated search code from view code
|
|
||||||
* Correctly calculate show result count for multi model searches
|
|
||||||
* Fixed OCR queue list showing wrong thumbnail
|
|
||||||
* Fixed staging file preview
|
|
||||||
* Show current metadata in document upload view sidebar
|
|
||||||
* Show sentry login for admin users
|
|
||||||
* Do not reinitialize document queue and/or queued document on reentry
|
|
||||||
* Try extra hard not to assign same uuid to two documents
|
|
||||||
* Added new transformation preview size setting
|
|
||||||
* Renamed document queue state links
|
|
||||||
* Changed ocr status display sidebar from form based to text based
|
|
||||||
* Added document action to clear all the document's page transformations
|
|
||||||
* Allow search across related fields
|
|
||||||
* Optimzed search for speed and memory footprint
|
|
||||||
* Added ``LIMIT`` setting to search
|
|
||||||
* Show search elapsed time on result page
|
|
||||||
* Converter now differentiates between unknown file format and convert
|
|
||||||
errors
|
|
||||||
* Close file descriptors when executing external programs to
|
|
||||||
prevent/reduce file descriptior leaks
|
|
||||||
* Improved exception handling of external programs
|
|
||||||
* Show document thumbnail in document ocr queue list
|
|
||||||
* Make ocr document date submitted column non breakable
|
|
||||||
* Fix permissions, directories set to mode 755 and files to mode 644
|
|
||||||
* Try to fix issue #2, "random ORM field error on search while doing OCR"
|
|
||||||
* Added configurable location setting for file based storage
|
|
||||||
* Prepend storage name to differentiate config options
|
|
||||||
* Fixed duplicated document search
|
|
||||||
* Optimized document duplicate search
|
|
||||||
* Added locale middleware, menu bar language switching works now
|
|
||||||
* Only show language selection list if localemiddleware is active
|
|
||||||
* Spanish translation updates
|
|
||||||
* Added links, views and permissions to disable or enable an OCR queue
|
|
||||||
* Enabled Django's template caching
|
|
||||||
* Added document queue property side bar window to the document queue
|
|
||||||
list view
|
|
||||||
* Added HTML spaceless middleware to remove whitespace in HTML code
|
|
||||||
* If current user is superuser or staff show thumbnail & preview
|
|
||||||
generation error messages
|
|
||||||
* Added a setting to show document thumbnail in metadata group list
|
|
||||||
* Started adding configurations setting descriptions
|
|
||||||
* Initial GridFS storage support
|
|
||||||
* Implemented size and delete methods for GridFS
|
|
||||||
* Implement GridFS storage user settings
|
|
||||||
* Added document link in the OCR document queue list
|
|
||||||
* Link to manually re queue failed OCR
|
|
||||||
* Don't separate links (encose object list links with white-space:
|
|
||||||
nowrap;)
|
|
||||||
* Added document description to the field search list
|
|
||||||
* Sort OCR queued documents according to submitted date & time
|
|
||||||
* Document filesystem serving is now a separate app
|
|
||||||
|
|
||||||
- Steps to update (Some warnings may be returned, but these are not
|
|
||||||
fatal as they might be related to missing metadata in some documents):
|
|
||||||
|
|
||||||
+ rename the following settings:
|
|
||||||
|
|
||||||
+ ``DOCUMENTS_FILESYSTEM_FILESERVING_ENABLE`` to ``FILESYSTEM_FILESERVING_ENABLE``
|
|
||||||
+ ``DOCUMENTS_FILESYSTEM_FILESERVING_PATH`` to ``FILESYSTEM_FILESERVING_PATH``
|
|
||||||
+ ``DOCUMENTS_FILESYSTEM_SLUGIFY_PATHS`` to ``FILESYSTEM_SLUGIFY_PATHS``
|
|
||||||
+ ``DOCUMENTS_FILESYSTEM_MAX_RENAME_COUNT`` to ``FILESYSTEM_MAX_RENAME_COUNT``
|
|
||||||
|
|
||||||
+ Do a ./manage.py syncdb
|
|
||||||
+ Execute 'Recreate index links' locate in the tools menu
|
|
||||||
+ Wait a few minutes
|
|
||||||
|
|
||||||
* Added per document duplicate search and a tools menu option to seach
|
|
||||||
all duplicated documents
|
|
||||||
* Added document tool that deletes and re-creates all documents
|
|
||||||
filesystem links
|
|
||||||
* Increased document's and document metadata index filename field's size
|
|
||||||
to 255 characters
|
|
||||||
* Added sentry to monitor and store error for later debugging
|
|
||||||
* Zip files can now be uncompressed in memory and their content uploaded
|
|
||||||
individually in one step
|
|
||||||
* Added support for concurrent, queued OCR processing using celery
|
|
||||||
* Apply default transformations to document before OCR
|
|
||||||
* Added unpaper to the OCR convertion pipe
|
|
||||||
* Added views to create, edit and grant/revoke permissions to roles
|
|
||||||
* Added multipage documents support (only tested on pdfs)
|
|
||||||
|
|
||||||
- To update a previous database do: [d.update_page_count() for d in Document.objects.all()]
|
|
||||||
|
|
||||||
* Added support for document page transformation (no GUI yet)
|
|
||||||
* Added permissions and roles support
|
|
||||||
* Added python-magic for smarter MIME type detection
|
|
||||||
(https://github.com/ahupp/python-magic).
|
|
||||||
* Added a new Document model field: file_mime_encoding.
|
|
||||||
* Show only document metadata in document list view.
|
|
||||||
* If one document type exists, the create document wizard skips the
|
|
||||||
first step.
|
|
||||||
* Changed to a liquid css grid
|
|
||||||
* Added the ability to group documents by their metadata
|
|
||||||
* New abstracted options to adjust document conversion quality (default,
|
|
||||||
low, high)
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
Version 0.7.3
|
|
||||||
-------------
|
|
||||||
* Refactored main menu navigation and converted all apps to this new
|
|
||||||
system
|
|
||||||
* Multi item links are now displayed on top of generic lists as well as
|
|
||||||
on the bottom
|
|
||||||
* Spanish translation updates
|
|
||||||
* Updated requirements to use the latest development version of
|
|
||||||
django-mptt
|
|
||||||
* Improved user folder document removal views
|
|
||||||
* Added ability to specify default metadata or metadataset per
|
|
||||||
document type
|
|
||||||
* Converted filename handling to use os.path library for improved
|
|
||||||
portability
|
|
||||||
* Added edit source object attribute difference detection and logging
|
|
||||||
to history app
|
|
||||||
* Missing metadata type in a document during a multi document editing doesn't raise errors anymore.
|
|
||||||
|
|
||||||
- This allows for multi document heterogeneous metadata editing in a single step.
|
|
||||||
|
|
||||||
* Added document multi item links in search results
|
|
||||||
|
|
||||||
- Direct editing can be done from the search result list
|
|
||||||
|
|
||||||
* Permissions are now grouped and assigned a group name
|
|
||||||
* Improved role management views
|
|
||||||
* Document type is now an optional document property
|
|
||||||
|
|
||||||
- Documents can be created without an explicit document type
|
|
||||||
|
|
||||||
* Added support for per user staging directories
|
|
||||||
* Updated logos
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
Version 0.7.4
|
|
||||||
-------------
|
|
||||||
* Renamed 'secondary actions' to 'secondary menu'
|
|
||||||
* Added document type setup views to the setup menu
|
|
||||||
* Added document type file name editing views to the setup menu
|
|
||||||
* Fixed document queue properties sidebar template not showing
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
Version 0.7.5
|
|
||||||
-------------
|
|
||||||
* Added a help messages to the sidebar of some views
|
|
||||||
* Renamed some forms submit button to more intuitive one
|
|
||||||
|
|
||||||
- 'Search' on the submit button of the search form
|
|
||||||
- 'Next step' on the document creation wizard
|
|
||||||
|
|
||||||
* Added view to list supported file formats and reported by the
|
|
||||||
converter backend
|
|
||||||
* Added redirection support to multi object action views
|
|
||||||
* Renamed 'document list' link to 'all documents' and
|
|
||||||
'recent document list' to 'recent documents'
|
|
||||||
* Removed 'change password' link next to the current user's name and
|
|
||||||
added a few views to handle the current user's password, details and
|
|
||||||
details editing
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
Version 0.7.6
|
|
||||||
-------------
|
|
||||||
* Added recent searches per user support
|
|
||||||
|
|
||||||
- The ammount of searches stored is controlled by the setup option
|
|
||||||
``SEARCH_RECENT_COUNT``
|
|
||||||
|
|
||||||
* The document page zoom button are now disabled when reaching the minimum
|
|
||||||
or maximum zoom level
|
|
||||||
* The document page navigation links are now disabled when view the first
|
|
||||||
and last page of a document
|
|
||||||
* Document page title now displays the current page vs the total page
|
|
||||||
count
|
|
||||||
* Document page title now displays the current zoom level and rotation
|
|
||||||
degrees
|
|
||||||
* Added means set the expansion compressed files during document creation,
|
|
||||||
via web interface removing the need for the configuration options:
|
|
||||||
``UNCOMPRESS_COMPRESSED_LOCAL_FILES`` and ``UNCOMPRESS_COMPRESSED_STAGING_FILES``
|
|
||||||
* Added 'search again' button to the advances search results view
|
|
||||||
* Implementes an advanced search feature, which allows for individual field terms
|
|
||||||
|
|
||||||
- Search fields supported: document type, MIME type, filename,
|
|
||||||
extension, metadata values, content, description, tags, comments
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
Version 0.7
|
|
||||||
-----------
|
|
||||||
* Added confirmation dialogs icons
|
|
||||||
* Added comment app with support for adding and deleting comments to
|
|
||||||
and from documents
|
|
||||||
* Updated requirements files as per issue #9
|
|
||||||
* Show tagged item count in the tag list view
|
|
||||||
* Show tagget document link in the tags subtemplate of documents
|
|
||||||
* Made comment sorted by oldest first, made comment subtemplate
|
|
||||||
scrollable
|
|
||||||
* Rename comments app to document_comment to avoid conflict with
|
|
||||||
Django's comment app
|
|
||||||
* Made document comments searchable
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
Version 0.8.1
|
|
||||||
-------------
|
|
||||||
* Tags can now also be created from the main menu
|
|
||||||
* Added item count column to index instance list view
|
|
||||||
* Updated document indexing widget to show different icon for indexes or
|
|
||||||
indexes that contain documents
|
|
||||||
* Replaced the Textarea widget with the TextAreaDiv widget on document
|
|
||||||
and document page detail views
|
|
||||||
|
|
||||||
- This change will allow highlighting search terms in the future
|
|
||||||
|
|
||||||
* Unknown document file format page count now defaults to 1
|
|
||||||
|
|
||||||
- When uploading documents which the selected converted backend doesn't
|
|
||||||
understand, the total page count will fallback to 1 page to at least
|
|
||||||
show some data, and a comment will be automatically added to the
|
|
||||||
document description
|
|
||||||
|
|
||||||
* Added new MAIN_DISABLE_ICONS to turn off all icons
|
|
||||||
|
|
||||||
- This options works very well when using the ``default`` theme
|
|
||||||
|
|
||||||
* The default theme is now ``activo``
|
|
||||||
* Improved document page views and document page transformation views
|
|
||||||
navigation
|
|
||||||
* Added OCR queue document transformations
|
|
||||||
|
|
||||||
- Use this for doing resizing or rotation fixes to improve OCR results
|
|
||||||
|
|
||||||
* Added reset view link to the document page view to reset the zoom
|
|
||||||
level and page rotation
|
|
||||||
* Staging files now show a thumbnail preview instead of preview link
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
Version 0.8.2
|
|
||||||
-------------
|
|
||||||
* Moved code to Django 1.3
|
|
||||||
|
|
||||||
- Users have to use the ``collectstatic`` management command::
|
|
||||||
|
|
||||||
$ ./manage.py collectstatic
|
|
||||||
|
|
||||||
- The ``site_media`` directory is no more, users must update the media
|
|
||||||
serving directives in current deployments and point them to the
|
|
||||||
``static`` directory instead
|
|
||||||
|
|
||||||
* The changelog is now available under the ``about`` main menu
|
|
||||||
* ``Grappelli`` no longer bundled with Mayan
|
|
||||||
|
|
||||||
- Users must install Grappelli or execute::
|
|
||||||
|
|
||||||
$ pip install --upgrade -r requirements/production.txt
|
|
||||||
|
|
||||||
* Even easier UI language switching
|
|
||||||
* Added email login method, to enable it, set::
|
|
||||||
|
|
||||||
AUTHENTICATION_BACKENDS = ('common.auth.email_auth_backend.EmailAuthBackend',)
|
|
||||||
COMMON_LOGIN_METHOD = 'email'
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
Version 0.8.3
|
|
||||||
-------------
|
|
||||||
* Added a Contributors file under the docs directory
|
|
||||||
* Moved the document grouping subtemplate windows into a document
|
|
||||||
information tab
|
|
||||||
* Change the mode the setup options are shown, opting to use a more of a
|
|
||||||
dashboard style now
|
|
||||||
* Changed the tool menu to use the same button layout of the setup menu
|
|
||||||
* Moved OCR related handling to the tools main menu
|
|
||||||
* Improved the metadata type and metadata set selection widget during
|
|
||||||
the document upload wizard
|
|
||||||
* Added a view to the about menu to read the LICENSE file included with
|
|
||||||
Mayan
|
|
||||||
* Added converter backend agnostic image file format descriptions
|
|
||||||
* Disable whitelist and blacklist temporarily, removed document_type
|
|
||||||
field from interactive sources
|
|
||||||
* Fully disabled watch folders until they are working correctly
|
|
||||||
* Updated the project title to 'Mayan EDMS'
|
|
||||||
* If ghostscript is installed add PDF and PS to the list of file formats
|
|
||||||
by the python converter backend
|
|
||||||
* Use Pillow (http://pypi.python.org/pypi/Pillow) instead of PIL
|
|
||||||
|
|
||||||
- Pillow is a fork of PIL with several updated including better jpeg and png library detection
|
|
||||||
- Users must uninstall PIL before installing Pillow
|
|
||||||
|
|
||||||
* Updated the static media url in the login excempt url list
|
|
||||||
* Added remediatory code to sidestep issue #10 caused by DjangoZoom's deployment script executing the collectstatic command before creating the database structure with syncdb. Thanks to Joost Cassee (https://github.com/jcassee) for reporting this one.
|
|
||||||
* Perform extra validation of the image cache directory and fallback to creating a temporary directory on validation failure
|
|
||||||
* Fixed a source creation bug, that caused invalid links to a non existing source transformation to appear on the sidebar
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
Version 0.8
|
|
||||||
-----------
|
|
||||||
* Distributed OCR queue processing via celery is disabled for the time
|
|
||||||
being
|
|
||||||
* Added support for local scheduling of jobs
|
|
||||||
|
|
||||||
- This addition removes celery beat requirement, and make is optional
|
|
||||||
|
|
||||||
* Improve link highlighting
|
|
||||||
* Navigation improvements
|
|
||||||
* Documents with an unknown file format now display a mime type place
|
|
||||||
holder icon instead of a error icon
|
|
||||||
* Mayan now does pre caching of document visual representation improving
|
|
||||||
overall thumbnail, preview and display speed
|
|
||||||
|
|
||||||
- Page image rotation and zooming is faster too with this update
|
|
||||||
|
|
||||||
* Removed all QUALITY related settings
|
|
||||||
* ``COMMON_TEMPORARY_DIRECTORY`` is now validated when Mayan starts and if
|
|
||||||
not valid falls back to creating it's own temporary folder
|
|
||||||
* Added PDF file support to the python converter backend via ghostscript
|
|
||||||
|
|
||||||
- This requires the installation of:
|
|
||||||
|
|
||||||
+ ghostscript python package
|
|
||||||
+ ghostscript system binaries and libraries
|
|
||||||
|
|
||||||
* Added PDF text parsing support to the python converter backend
|
|
||||||
|
|
||||||
- This requires the installation of:
|
|
||||||
|
|
||||||
+ pdfminer python package
|
|
||||||
|
|
||||||
* Added PDF page count support to the python converter backend
|
|
||||||
* Added python only converter backend supporting resizing, zooming and rotation
|
|
||||||
|
|
||||||
- This backend required the installation of the python image library (PIL)
|
|
||||||
- This backend is useful when Graphicsmagick or Imagemagick can not be installed for some reason
|
|
||||||
- If understand fewer file format than the other 2 backends
|
|
||||||
|
|
||||||
* Added default tranformation support to document sources
|
|
||||||
* Removed ``DOCUMENT_DEFAULT_TRANSFORMATIONS`` setup options
|
|
||||||
* Document sources are now defined via a series of view under the setup main menu
|
|
||||||
* This removes all the ``DOCUMENT_STAGING`` related setup options
|
|
||||||
|
|
||||||
- Two document source types are supported local (via a web form),
|
|
||||||
and staging
|
|
||||||
- However multiple document sources can be defined each with their own
|
|
||||||
set of transformations and default metadata selection
|
|
||||||
|
|
||||||
* Use ``python-magic`` to determine a document's mimetype otherwise
|
|
||||||
fallback to use python's mimetypes library
|
|
||||||
* Remove the included sources for ``python-magic`` instead it is now fetched
|
|
||||||
from github by pip
|
|
||||||
* Removed the document subtemplates and changed to a tabbed style
|
|
||||||
* Added link to document index content view to navigate the tree upwards
|
|
||||||
* Added new option ``MAIN_DISABLE_HOME_VIEW`` to disable the home main menu
|
|
||||||
tab and save some space
|
|
||||||
* Added new option to the web theme app, ``WEB_THEME_VERBOSE_LOGIN``
|
|
||||||
that display a more information on the login screen
|
|
||||||
(version, copyright, logos)
|
|
||||||
* Added a confirmation dialog to the document tag removal view
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
Version 0.9.1
|
|
||||||
-------------
|
|
||||||
* Added handling percent encoded unicode query strings in search URL,
|
|
||||||
thanks to Sergei Glita for reporting.
|
|
||||||
* Added a FAQ explaing how to fix MySQL collation related error when
|
|
||||||
doing searches also thanks to Sergei Glita for
|
|
||||||
reporting this one.
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
Version 0.9
|
|
||||||
-----------
|
|
||||||
* Simplified getting mimetypes from files by merging 2 implementations
|
|
||||||
(document based and file based)
|
|
||||||
* Updated python converter backend, document model and staging module
|
|
||||||
to use the new get_mimetype API
|
|
||||||
* Only allow clickable thumbnails for document and staging files with a
|
|
||||||
valid image
|
|
||||||
* Removed tag count from the group document list widget to conserve
|
|
||||||
vertical space
|
|
||||||
* Updated required Django version to 1.3.1
|
|
||||||
* Removed the included 3rd party module django-sendfile, now added to
|
|
||||||
the requirement files.
|
|
||||||
|
|
||||||
* User should do a pip install -r requirements/production.txt to update
|
|
||||||
|
|
||||||
* Changed to Semantic Versioning (http://semver.org/), with
|
|
||||||
recommendations 7, 8 and 9 causing the most effect in the versioning number.
|
|
||||||
* Added Russian locale post OCR cleanup backend Sergei Glita
|
|
||||||
* Reduced severity of the messages displayed when no OCR cleanup backend
|
|
||||||
is found for a language
|
|
||||||
* Complete Portuguese translation (Emerson Soares and Renata Oliveira)
|
|
||||||
* Complete Russian translation Sergei Glita)
|
|
||||||
* Added animate.css to use CSS to animate flash messages with better
|
|
||||||
fallback on non JS browsers
|
|
||||||
* The admin and sentry links are no longer hard-coded (Meurig Freeman)
|
|
||||||
* Improved appearance of the document tag widget
|
|
||||||
(https://p.twimg.com/Ac0Q0b-CAAE1lfA.png:large)
|
|
||||||
* Added django_compress and cssmin to the requirements files and enabled
|
|
||||||
django_compress for CSS and JS files
|
|
||||||
* Added granting and revoking permission methods to the permission model
|
|
||||||
* Correctly calculate the mimetype icons paths when on development mode
|
|
||||||
* Added a new more comprehensive method of passing multiple variables
|
|
||||||
per item in multi item selection views
|
|
||||||
* Used new multi parameter passing method to improve the usability of
|
|
||||||
the grant/revoke permission view, thanks to Cezar Jenkins
|
|
||||||
(https://twitter.com/#!/emperorcezar) for the suggestion
|
|
||||||
* Added step to the documentation explaining how to install Mayan EDMS
|
|
||||||
on Webfaction
|
|
||||||
* Added an entry in the documentation to the screencast explaining how
|
|
||||||
to install Mayan EDMS on DjangoZoom
|
|
||||||
* Added required changes to add Mayan EDMS to Transifex.com
|
|
||||||
* Fixed the apache contrib file static file directory name
|
|
||||||
* Added improved documentation
|
|
||||||
@@ -1,190 +0,0 @@
|
|||||||
=============================
|
|
||||||
Mayan EDMS v1.0 release notes
|
|
||||||
=============================
|
|
||||||
|
|
||||||
*August 26, 2014*
|
|
||||||
|
|
||||||
Welcome to Mayan EDMS v1.0!
|
|
||||||
|
|
||||||
Overview
|
|
||||||
========
|
|
||||||
After a year of low activity the focus of this release was to get the code
|
|
||||||
updated to work with the most recent version of Django and the most recent
|
|
||||||
version of the dependencies Mayan EDMS uses. The goal was to have a strong
|
|
||||||
and stable 1.0 release so reduction, trimming, warning reductions and bug
|
|
||||||
fixes were the primary focus of this cycle. Because of this not much
|
|
||||||
emphasis was placed on adding new features, or at least new features
|
|
||||||
that could have the potential to break things.
|
|
||||||
|
|
||||||
What's new in Mayan EDMS v1.0
|
|
||||||
=============================
|
|
||||||
|
|
||||||
New home
|
|
||||||
~~~~~~~~
|
|
||||||
The growth and reach of the project has necessitaded for a while the move
|
|
||||||
of the project to its own organization in Github. This move has finally been
|
|
||||||
done, the new URL of the project is: https://github.com/mayan-edms/mayan-edms
|
|
||||||
|
|
||||||
Django 1.6
|
|
||||||
~~~~~~~~~~
|
|
||||||
This release updates the required version of Django to 1.6, bringing with it
|
|
||||||
not only new features, but also a lot of security updates, a new project
|
|
||||||
directory structure and new deployment methods.
|
|
||||||
|
|
||||||
Translation updates
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
The translation for all languages were synchronized to the latest transifex project sources.
|
|
||||||
Translation completion as reported by Transifex:
|
|
||||||
|
|
||||||
* English - 100%
|
|
||||||
* Spanish - 100%
|
|
||||||
* Arabic - 96%
|
|
||||||
* Bosnian - 96%
|
|
||||||
* French - 96%
|
|
||||||
* German - 96%
|
|
||||||
* Romanian - 96%
|
|
||||||
* Russian - 96%
|
|
||||||
* Italian - 77%
|
|
||||||
* Portuguese - 76%
|
|
||||||
* Dutch - 68%
|
|
||||||
* Portugese (Brazil) - 67%
|
|
||||||
* Bulgarian - 62%
|
|
||||||
* Danish - 42%
|
|
||||||
* Vietnamese - 40%
|
|
||||||
* Polish - 39%
|
|
||||||
* Hungarian - 27%
|
|
||||||
* Indonesian - 18%
|
|
||||||
* Slovenian - 17%
|
|
||||||
* Persian - 6%
|
|
||||||
* Croatian - 3%
|
|
||||||
* Turkish - 3%
|
|
||||||
|
|
||||||
Model updates
|
|
||||||
~~~~~~~~~~~~~
|
|
||||||
There were some convenience properties created to allow quick access to
|
|
||||||
a document's version and pages. These custom properties were removed and
|
|
||||||
an official method to access these properties as provided by Django is now
|
|
||||||
used.
|
|
||||||
|
|
||||||
Source code improvements
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
A circular import of metadata and document_index apps code from the documents app
|
|
||||||
was removed. Document index updates are now handled via signals, not called
|
|
||||||
directly as before. Hundreds of PEP8 style fixes, unused import removals,
|
|
||||||
unused variables removals and removal of remarked or unused code. Removal of the
|
|
||||||
DEVELOPMENT flag (was used to trigger static media serving during development),
|
|
||||||
this is now handled by the DEBUG flag. The DEBUG flag is now set to `True` by
|
|
||||||
default as per Django 1.6 defaults. Removed usage of Django's JSON libraries
|
|
||||||
using Python's JSON library instead. Update of time and date use to use Django's
|
|
||||||
new timezone aware data and time handling. Removal of custom code in favor of using
|
|
||||||
modules provided by Django or by existing 3rd party libraries. Unification of code
|
|
||||||
used for equal or similar purpose in various modules.
|
|
||||||
|
|
||||||
Removal of included 3rd party modules
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
One last 3rd party module was included with the source code of Mayan EDMS.
|
|
||||||
This module is now available on PyPI and fetched during the installation instead
|
|
||||||
of being included.
|
|
||||||
|
|
||||||
Automatic testing and code coverage check
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
Some initial tests were added, which will help with the detection of
|
|
||||||
regressions or bugs when adding new features. More tests are needed, but
|
|
||||||
the initial work has being started.
|
|
||||||
|
|
||||||
Update of required modules and libraries versions
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
Many of the required modules and libraries have been updated to a more
|
|
||||||
recent version if not to their most recent released version.
|
|
||||||
|
|
||||||
Database connection leaks
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
Stale database connection being left open by scheduler tasks are now explictly
|
|
||||||
closed. This avoids consumption of the pool of database connections, increases
|
|
||||||
stability and reduces memory usage.
|
|
||||||
|
|
||||||
Deletion of detached signatures
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
Detached signatures can now be deleted, if accidentally added to the wrong document.
|
|
||||||
|
|
||||||
Removal of fabric based installations
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
These files are now part of their own project and located at https://github.com/mayan-edms/mayan-fabric
|
|
||||||
|
|
||||||
Pluggable OCR backends
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
A commonly requested feature, it is now possible to write backends drivers
|
|
||||||
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
|
|
||||||
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.
|
|
||||||
|
|
||||||
License change
|
|
||||||
~~~~~~~~~~~~~~
|
|
||||||
Mayan EDMS is now licensed under the Apache 2.0 license. This means many
|
|
||||||
things but the main change is that inclusion of Mayan EDMS into
|
|
||||||
commercial products is now explicitly allowed.
|
|
||||||
|
|
||||||
PyPI package
|
|
||||||
~~~~~~~~~~~~
|
|
||||||
Mayan EDMS has been packaged and submitted to the PyPI_ Python Package Index
|
|
||||||
making it even easier to install and use.
|
|
||||||
|
|
||||||
New REST API
|
|
||||||
~~~~~~~~~~~~
|
|
||||||
This release feature a completely new REST API and automatic API documentation.
|
|
||||||
This new API is also used internally by *Mayan EDMS* itself.
|
|
||||||
|
|
||||||
Other changes
|
|
||||||
~~~~~~~~~~~~~
|
|
||||||
More office document types are now recognized and supported. More file types are now
|
|
||||||
supported as text files and properly previewed and parsed. Removal of the legacy
|
|
||||||
runserver.sh and runserver_plus.sh scripts. New document preview generation and
|
|
||||||
display pipeline, faster, simpler. Inclusion of a proof of concept compressed storage
|
|
||||||
backend.
|
|
||||||
|
|
||||||
Upgrading from a previous version
|
|
||||||
=================================
|
|
||||||
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
|
|
||||||
|
|
||||||
Migrate existing database schema with::
|
|
||||||
|
|
||||||
$ mayan-edms.py migrate acls 0001 --fake
|
|
||||||
$ mayan-edms.py migrate taggit 0001 --fake
|
|
||||||
$ mayan-edms.py migrate ocr 0001 --fake
|
|
||||||
$ mayan-edms.py migrate
|
|
||||||
|
|
||||||
Add new static media::
|
|
||||||
|
|
||||||
$ mayan-edms.py collectstatic --noinput
|
|
||||||
|
|
||||||
The upgrade procedure is now complete.
|
|
||||||
|
|
||||||
|
|
||||||
Backward incompatible changes
|
|
||||||
=============================
|
|
||||||
* If using the SQLite3 database option, rename the file named `mayan.sqlite` file to `db.sqlite3` and
|
|
||||||
move it to the new `media` provided folder.
|
|
||||||
* Also move to the `media` folder any `gpg_home`, `document_storage` and `image_cache` folders
|
|
||||||
from your previous installation.
|
|
||||||
|
|
||||||
|
|
||||||
Bugs fixed or issues closed
|
|
||||||
===========================
|
|
||||||
* None
|
|
||||||
|
|
||||||
|
|
||||||
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
===============================
|
|
||||||
Mayan EDMS v1.1.1 release notes
|
|
||||||
===============================
|
|
||||||
|
|
||||||
Released: May 21, 2015
|
|
||||||
|
|
||||||
What's new
|
|
||||||
==========
|
|
||||||
|
|
||||||
Update to Django 1.6.11
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
The required version of Django has been updated to version 1.6.11_.
|
|
||||||
|
|
||||||
Minor changes
|
|
||||||
~~~~~~~~~~~~~
|
|
||||||
- Fix make_dist.sh script
|
|
||||||
- Add test for issue #163
|
|
||||||
- Activate tests for the sources app
|
|
||||||
- Removal of the registration app
|
|
||||||
- New simplified official project description
|
|
||||||
- Improvements to the index admin interface
|
|
||||||
- Removal of installation statistics gathering
|
|
||||||
- Remove unused folder tag
|
|
||||||
- Fix usage of ugettext to ugettext_lazy
|
|
||||||
- Increase size of the lock name field
|
|
||||||
- New style documentation
|
|
||||||
|
|
||||||
Upgrading from a previous version
|
|
||||||
=================================
|
|
||||||
|
|
||||||
Using PIP
|
|
||||||
~~~~~~~~~
|
|
||||||
|
|
||||||
Type in the console::
|
|
||||||
|
|
||||||
$ pip install mayan-edms==1.1.1
|
|
||||||
|
|
||||||
the requirements will also be updated.
|
|
||||||
|
|
||||||
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
|
|
||||||
~~~~~~~~~~~~
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
.. _1.6.11: https://docs.djangoproject.com/en/1.8/releases/1.6.11/
|
|
||||||
@@ -1,372 +0,0 @@
|
|||||||
=============================
|
|
||||||
Mayan EDMS v1.1 release notes
|
|
||||||
=============================
|
|
||||||
|
|
||||||
Released: February 10, 2015
|
|
||||||
|
|
||||||
Welcome to Mayan EDMS v1.1
|
|
||||||
|
|
||||||
|
|
||||||
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
|
|
||||||
as per `Celery's documentation`_. This change made the built-in scheduler and
|
|
||||||
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
|
|
||||||
by prepending the app name to the view name.
|
|
||||||
|
|
||||||
|
|
||||||
Removal of the splash screen
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
The static image home screen has been replaced with a quick links view, showing
|
|
||||||
the most used actions: Uploading documents, viewing recent documents, viewing
|
|
||||||
all documents and searching documents.
|
|
||||||
|
|
||||||
|
|
||||||
Sending and receiving documents via email
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
A link or entire documents can be sent as attachments via email. Documents can
|
|
||||||
also be received via email with the addition of two document sources named IMAP and POP3
|
|
||||||
which correspond to the mail protocol used to fetch the documents. Read Django's
|
|
||||||
`email configuration settings documentation`_ for more details on how to set up
|
|
||||||
mail serving.
|
|
||||||
|
|
||||||
|
|
||||||
Update to Django 1.6.8
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
Mayan EDMS has been updated to use Django 1.6.8.
|
|
||||||
|
|
||||||
|
|
||||||
Events app
|
|
||||||
~~~~~~~~~~
|
|
||||||
The built-in history app has been removed in favor of a new events wrapper app
|
|
||||||
for `Django activity stream`_
|
|
||||||
|
|
||||||
|
|
||||||
Watch folders
|
|
||||||
~~~~~~~~~~~~~
|
|
||||||
Filesystem folders can be monitored for change and their files automatically
|
|
||||||
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.
|
|
||||||
|
|
||||||
|
|
||||||
User locale profile (language and timezone)
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
Interface language and locale setting can now be setup for each user and are not
|
|
||||||
installation wide as before. Date and times offsets are automatically ajusted to
|
|
||||||
each user's timezone settings.
|
|
||||||
|
|
||||||
|
|
||||||
Document states
|
|
||||||
~~~~~~~~~~~~~~~
|
|
||||||
A new simple workflow app that can represent document states has been included.
|
|
||||||
|
|
||||||
|
|
||||||
Explicit document types needed per index
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
Indexes can now be tied to document types, eliminating the need to update
|
|
||||||
indexes for every document update. Indexes will only update when a document of
|
|
||||||
the type to which they are associated is updated.
|
|
||||||
|
|
||||||
|
|
||||||
Optional and required metadata types
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
Metadata types can now be assigned in two ways to documents types, as optional or
|
|
||||||
required. Values for required metadata types as the name implies, must be entered
|
|
||||||
for documents to be able to be uploaded. Optional metadata types on the other hand
|
|
||||||
can be left blank by the user.
|
|
||||||
|
|
||||||
|
|
||||||
Bulk document type change
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
It is now possible to change the document type of previously uploaded documents.
|
|
||||||
When the document type of a document is changed the metadata values are reset and
|
|
||||||
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
|
|
||||||
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
|
|
||||||
version 3.0 is released, at which time version series 2.x will go into
|
|
||||||
maintenance mode.
|
|
||||||
|
|
||||||
|
|
||||||
Deprecation of Python 2.6
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
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.
|
|
||||||
|
|
||||||
|
|
||||||
API updates
|
|
||||||
~~~~~~~~~~~
|
|
||||||
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
|
|
||||||
text messages.
|
|
||||||
|
|
||||||
Improved method for custom settings
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
Custom settings now use a string based value, it is longer needed to import
|
|
||||||
classes when customizing a setting::
|
|
||||||
|
|
||||||
from custom_app.backends import CustomStorageBackend
|
|
||||||
DOCUMENTS_STORAGE_BACKEND = CustomStorageBackend
|
|
||||||
|
|
||||||
Instead the fully qualified name of the class must be passed as the setting value::
|
|
||||||
|
|
||||||
DOCUMENTS_STORAGE_BACKEND = 'custom_app.backends.CustomStorageBackend'
|
|
||||||
|
|
||||||
|
|
||||||
Removal of the OCR config setting
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
OCR behavior is now a document type property meaning that it can be turned
|
|
||||||
on or off for specific document types.
|
|
||||||
|
|
||||||
|
|
||||||
Per document language setting
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
Previously the document language used for OCR was specified for the entire
|
|
||||||
installation. If documents in multiple languages were uploaded some suffered
|
|
||||||
lower success rates. Now the language of each document can be specified.
|
|
||||||
|
|
||||||
|
|
||||||
Metadata validation and parsing support
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
It is now possible to create functions to validate metadata value input or
|
|
||||||
parse and store corrected values. Three sample metadata validations functions
|
|
||||||
are included: ``Parse date and time``, ``Parse date`` and ``Parse time``.
|
|
||||||
|
|
||||||
|
|
||||||
Removal of 960 grid system in favor Pure CSS's grid system
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
By using Pure CSS's columns based grid system, the move towards a
|
|
||||||
Bootstrap UI migration has advanced greatly.
|
|
||||||
|
|
||||||
|
|
||||||
Simplified UI
|
|
||||||
~~~~~~~~~~~~~
|
|
||||||
All user actions as well as the logout button are now under the user functions
|
|
||||||
section.
|
|
||||||
|
|
||||||
|
|
||||||
Stable PDF previews generation
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
The way PDF were being generated has been improved greatly eliminating
|
|
||||||
spurious segmentation faults at the expense of a small speed penalty.
|
|
||||||
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
|
|
||||||
Other changes
|
|
||||||
~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
* Removal of the MAIN_SIDE_BAR_SEARCH setting
|
|
||||||
* Removal of THEMES and themes support
|
|
||||||
* Removal of VERBOSE_LOGIN setting
|
|
||||||
* Removal of graphics backend supported file format list view
|
|
||||||
* Removal of the MAIN_DISABLE_ICONS setting
|
|
||||||
* Removal of specialized Sentry support
|
|
||||||
* Removal of the MAIN_ENABLE_SCROLL_JS setting
|
|
||||||
* Remove hardcoded root (/) redirections
|
|
||||||
* Removal of APSCheduler as a requirement
|
|
||||||
* Removal of the scheduled jobs view
|
|
||||||
* Removal of the web_theme app
|
|
||||||
* Removal of the sources icon selection support
|
|
||||||
* Removal of the in-app help panels
|
|
||||||
* Removal of the duplicate document search feature
|
|
||||||
* Removal of filesystem document indexes mirroring feature
|
|
||||||
* Improve sources app model sub classes and inheritance handling
|
|
||||||
* Addition of CORS support to the API
|
|
||||||
|
|
||||||
|
|
||||||
Upgrading from a previous version
|
|
||||||
=================================
|
|
||||||
IMPORTANT! Before running the upgrade make sure none of your documents have
|
|
||||||
duplicated metadata types, meaning that the same metadata type must not appear
|
|
||||||
twice for any given document.
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
Migrate existing database schema with::
|
|
||||||
|
|
||||||
$ mayan-edms.py migrate dynamic_search 0001 --fake
|
|
||||||
$ mayan-edms.py migrate history 0001 --fake
|
|
||||||
$ mayan-edms.py migrate linking 0001 --fake
|
|
||||||
$ mayan-edms.py migrate lock_manager 0001 --fake
|
|
||||||
$ mayan-edms.py migrate tags 0001 --fake
|
|
||||||
$ mayan-edms.py migrate
|
|
||||||
|
|
||||||
|
|
||||||
During the migration several messages of stale content types can occur:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
The following content types are stale and need to be deleted:
|
|
||||||
|
|
||||||
metadata | documenttypedefaults
|
|
||||||
metadata | metadataset
|
|
||||||
metadata | metadatasetitem
|
|
||||||
ocr | documentqueue
|
|
||||||
ocr | queuedocument
|
|
||||||
sources | watchfolder
|
|
||||||
sources | outofprocess
|
|
||||||
sources | webform
|
|
||||||
sources | stagingfolder
|
|
||||||
tags | tagproperties
|
|
||||||
|
|
||||||
Any objects related to these content types by a foreign key will also
|
|
||||||
be deleted. Are you sure you want to delete these content types?
|
|
||||||
If you're unsure, answer 'no'.
|
|
||||||
|
|
||||||
Type 'yes' to continue, or 'no' to cancel:
|
|
||||||
|
|
||||||
|
|
||||||
You can safely answer "yes".
|
|
||||||
|
|
||||||
Add new static media::
|
|
||||||
|
|
||||||
$ mayan-edms.py collectstatic --noinput
|
|
||||||
|
|
||||||
Remove unused dependencies::
|
|
||||||
|
|
||||||
$ pip uninstall APScheduler
|
|
||||||
$ pip uninstall django-taggit
|
|
||||||
|
|
||||||
|
|
||||||
The upgrade procedure is now complete.
|
|
||||||
|
|
||||||
|
|
||||||
Backward incompatible changes
|
|
||||||
=============================
|
|
||||||
|
|
||||||
* You will have to redefine your document sources due to the new extended models
|
|
||||||
for this app.
|
|
||||||
* Check your configurations of smart links and indexes to use the newly provided
|
|
||||||
arguments.
|
|
||||||
|
|
||||||
|
|
||||||
Bugs fixed or issues closed
|
|
||||||
===========================
|
|
||||||
|
|
||||||
* `issue #30 <https://github.com/mayan-edms/mayan-edms/issues/30>`_ Document workflows
|
|
||||||
* `issue #32 <https://github.com/mayan-edms/mayan-edms/issues/32>`_ Watched folders
|
|
||||||
* `issue #34 <https://github.com/mayan-edms/mayan-edms/issues/34>`_ Postprocessing document queue
|
|
||||||
* `issue #35 <https://github.com/mayan-edms/mayan-edms/issues/35>`_ Metadata validation
|
|
||||||
* `issue #37 <https://github.com/mayan-edms/mayan-edms/issues/37>`_ Add from __future__ import unicode_literals
|
|
||||||
* `issue #39 <https://github.com/mayan-edms/mayan-edms/issues/39>`_ Capitalization of messages
|
|
||||||
* `issue #40 <https://github.com/mayan-edms/mayan-edms/issues/40>`_ Update references to root ('/') path
|
|
||||||
* `issue #46 <https://github.com/mayan-edms/mayan-edms/issues/46>`_ Advanced search past 1st page
|
|
||||||
* `issue #49 <https://github.com/mayan-edms/mayan-edms/issues/49>`_ Problems with large pdf files
|
|
||||||
* `issue #50 <https://github.com/mayan-edms/mayan-edms/issues/50>`_ raise CommandNotFound(path)
|
|
||||||
* `issue #51 <https://github.com/mayan-edms/mayan-edms/issues/51>`_ Search with ANONYMOUS error
|
|
||||||
* `issue #55 <https://github.com/mayan-edms/mayan-edms/issues/55>`_ Document approval cicle?
|
|
||||||
* `issue #56 <https://github.com/mayan-edms/mayan-edms/issues/56>`_ Removal of non essential features, views, models
|
|
||||||
* `issue #57 <https://github.com/mayan-edms/mayan-edms/issues/57>`_ Migrate to Celery for task query and periodic tasks
|
|
||||||
* `issue #64 <https://github.com/mayan-edms/mayan-edms/issues/64>`_ Pluralize messages properly
|
|
||||||
* `issue #65 <https://github.com/mayan-edms/mayan-edms/issues/65>`_ Backport the ability to receive documents via email
|
|
||||||
* `issue #66 <https://github.com/mayan-edms/mayan-edms/issues/66>`_ Python 3 compatibility: Add from __future__ import unicode_literals and remove all u''
|
|
||||||
* `issue #68 <https://github.com/mayan-edms/mayan-edms/issues/68>`_ Revise and update the use gettext vs. gettext_lazy
|
|
||||||
* `issue #69 <https://github.com/mayan-edms/mayan-edms/issues/69>`_ Feature removal: remove "Unregistered" message from the title bar
|
|
||||||
* `issue #71 <https://github.com/mayan-edms/mayan-edms/issues/71>`_ Add retry support to the converter task
|
|
||||||
* `issue #72 <https://github.com/mayan-edms/mayan-edms/issues/72>`_ Delete unused static icons
|
|
||||||
* `issue #74 <https://github.com/mayan-edms/mayan-edms/issues/74>`_ Cache a document's first document version
|
|
||||||
* `issue #75 <https://github.com/mayan-edms/mayan-edms/issues/75>`_ Move automatic OCR queueing from a configuration settings to a property of Document Type model
|
|
||||||
* `issue #77 <https://github.com/mayan-edms/mayan-edms/issues/77>`_ Add document view permission support to the search app
|
|
||||||
* `issue #78 <https://github.com/mayan-edms/mayan-edms/issues/78>`_ COMMON_TEMPORARY_DIRECTORY seems not to be used everywhere
|
|
||||||
* `issue #79 <https://github.com/mayan-edms/mayan-edms/issues/79>`_ Error installing
|
|
||||||
* `issue #82 <https://github.com/mayan-edms/mayan-edms/issues/82>`_ Make document type a required field
|
|
||||||
* `issue #83 <https://github.com/mayan-edms/mayan-edms/issues/83>`_ Simplify source app views and navigation
|
|
||||||
* `issue #84 <https://github.com/mayan-edms/mayan-edms/issues/84>`_ Remove template context variable 'object_name' to improve translations
|
|
||||||
* `issue #85 <https://github.com/mayan-edms/mayan-edms/issues/85>`_ Reset page count for a single document
|
|
||||||
* `issue #86 <https://github.com/mayan-edms/mayan-edms/issues/86>`_ Move migrations to new 'south_migrations' folders
|
|
||||||
* `issue #87 <https://github.com/mayan-edms/mayan-edms/issues/87>`_ Per document language selection
|
|
||||||
* `issue #88 <https://github.com/mayan-edms/mayan-edms/issues/88>`_ Remove metadata type selection from the upload wizard
|
|
||||||
* `issue #89 <https://github.com/mayan-edms/mayan-edms/issues/89>`_ Allow metadata types to be required for specific document types
|
|
||||||
* `issue #90 <https://github.com/mayan-edms/mayan-edms/issues/90>`_ Remove the app_registry app
|
|
||||||
* `issue #91 <https://github.com/mayan-edms/mayan-edms/issues/91>`_ Don't preserve the ?page= URL query string value when switching sources during document upload
|
|
||||||
* `issue #92 <https://github.com/mayan-edms/mayan-edms/issues/92>`_ Make register_multi_item_links class aware
|
|
||||||
* `issue #95 <https://github.com/mayan-edms/mayan-edms/issues/95>`_ Installation error on Mac OSX; OSError: [Errno 2] No such file or directory
|
|
||||||
* `issue #96 <https://github.com/mayan-edms/mayan-edms/issues/96>`_ Remove hard code User model references
|
|
||||||
* `issue #97 <https://github.com/mayan-edms/mayan-edms/issues/97>`_ Make multi item links a drop down list
|
|
||||||
* `issue #104 <https://github.com/mayan-edms/mayan-edms/issues/104>`_ Finish polishing metadata validation patch
|
|
||||||
* `issue #105 <https://github.com/mayan-edms/mayan-edms/issues/105>`_ Tie smart links setups to document types
|
|
||||||
* `issue #106 <https://github.com/mayan-edms/mayan-edms/issues/106>`_ Convert document indexing app actions to Celery
|
|
||||||
* `issue #107 <https://github.com/mayan-edms/mayan-edms/issues/107>`_ Restrict document metadata addition and removal
|
|
||||||
* `issue #108 <https://github.com/mayan-edms/mayan-edms/issues/108>`_ New home screen
|
|
||||||
* `issue #109 <https://github.com/mayan-edms/mayan-edms/issues/109>`_ Add Roles API endpoints
|
|
||||||
* `issue #111 <https://github.com/mayan-edms/mayan-edms/issues/111>`_ Add Checkouts API endpoints
|
|
||||||
* `issue #112 <https://github.com/mayan-edms/mayan-edms/issues/112>`_ Add OCR API endpoints
|
|
||||||
* `issue #114 <https://github.com/mayan-edms/mayan-edms/issues/114>`_ Implement UI language as user preference
|
|
||||||
* `issue #116 <https://github.com/mayan-edms/mayan-edms/issues/116>`_ Add documentation topic explicitly noting the binary requirements
|
|
||||||
* `issue #118 <https://github.com/mayan-edms/mayan-edms/issues/118>`_ When a metadata type is removed from a document type, remove it from all the documents of that type
|
|
||||||
* `issue #119 <https://github.com/mayan-edms/mayan-edms/issues/119>`_ When a required metadata type is added to a document type, add it to all documents of that type
|
|
||||||
* `issue #126 <https://github.com/mayan-edms/mayan-edms/issues/126>`_ Failing migration with SQLite
|
|
||||||
* `issue #127 <https://github.com/mayan-edms/mayan-edms/issues/127>`_ Failing migration with Postgres
|
|
||||||
* `issue #128 <https://github.com/mayan-edms/mayan-edms/issues/128>`_ Add Indexes API endpoints
|
|
||||||
* `issue #129 <https://github.com/mayan-edms/mayan-edms/issues/129>`_ Search api shouldn't memorize requested page as part of the query
|
|
||||||
* `issue #130 <https://github.com/mayan-edms/mayan-edms/issues/130>`_ Users API is not working correctly
|
|
||||||
* `issue #131 <https://github.com/mayan-edms/mayan-edms/issues/131>`_ Is there an API to update a user's password?
|
|
||||||
* `issue #137 <https://github.com/mayan-edms/mayan-edms/issues/137>`_ Enhancement of language selection
|
|
||||||
* `issue #138 <https://github.com/mayan-edms/mayan-edms/issues/138>`_ Possibility to keep zoom factor
|
|
||||||
* `issue #139 <https://github.com/mayan-edms/mayan-edms/issues/139>`_ Translatability of language selection
|
|
||||||
* `issue #140 <https://github.com/mayan-edms/mayan-edms/issues/140>`_ Thumbnail creation for ods crashing
|
|
||||||
* `issue #143 <https://github.com/mayan-edms/mayan-edms/issues/143>`_ Exception Value: 'exceptions.ValueError' object has no attribute 'messages'
|
|
||||||
* `issue #144 <https://github.com/mayan-edms/mayan-edms/issues/144>`_ Behavior of 'Edit metadata' (Recent Documents)
|
|
||||||
* `issue #146 <https://github.com/mayan-edms/mayan-edms/issues/146>`_ Periodic task not initiated for mail boxes and watch folders
|
|
||||||
* `issue #149 <https://github.com/mayan-edms/mayan-edms/issues/149>`_ Attribute error in document download
|
|
||||||
* `issue #150 <https://github.com/mayan-edms/mayan-edms/issues/150>`_ Double second menu entry
|
|
||||||
* `issue #152 <https://github.com/mayan-edms/mayan-edms/issues/152>`_ Document content empty
|
|
||||||
* `issue #153 <https://github.com/mayan-edms/mayan-edms/issues/153>`_ south migration with postgres: documents: 031_remove_orphan_documents
|
|
||||||
* `issue #154 <https://github.com/mayan-edms/mayan-edms/issues/154>`_ south migration with postgres: tags: 0002_auto__add_tag__chg_field_tagproperties_tag
|
|
||||||
* `issue #157 <https://github.com/mayan-edms/mayan-edms/issues/157>`_ upload new version of a document not working
|
|
||||||
* `issue #158 <https://github.com/mayan-edms/mayan-edms/issues/158>`_ Plural form not matching singular form in ocr app bug i18n
|
|
||||||
|
|
||||||
|
|
||||||
.. _Celery: http://www.celeryproject.org/
|
|
||||||
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/
|
|
||||||
.. _Celery's documentation: http://celery.readthedocs.org/en/latest/configuration.html
|
|
||||||
.. _namespaced: https://docs.djangoproject.com/en/1.6/topics/http/urls/#url-namespaces
|
|
||||||
.. _email configuration settings documentation: https://docs.djangoproject.com/en/1.6/ref/settings/#email-host
|
|
||||||
.. _Django activity stream: https://github.com/justquick/django-activity-stream
|
|
||||||
|
|
||||||
@@ -1,99 +0,0 @@
|
|||||||
===============================
|
|
||||||
Mayan EDMS v2.0.1 release notes
|
|
||||||
===============================
|
|
||||||
|
|
||||||
Released: January 22, 2016
|
|
||||||
|
|
||||||
Welcome to Mayan EDMS v2.0.1
|
|
||||||
|
|
||||||
|
|
||||||
What's new in Mayan EDMS v2.0.1
|
|
||||||
===============================
|
|
||||||
|
|
||||||
Required metadata was not enforce correctly
|
|
||||||
-------------------------------------------
|
|
||||||
Fixed a situation where documents having required metadata could still be
|
|
||||||
uploaded without entering a value for the required metadata.
|
|
||||||
|
|
||||||
Fix multiple document metadata adding
|
|
||||||
-------------------------------------
|
|
||||||
Fixed a bug when adding metadata to multiple documents.
|
|
||||||
|
|
||||||
Fix multiple document metadata editing
|
|
||||||
--------------------------------------
|
|
||||||
Fixed a bug that made it impossible to edit multiple documents' metadata values
|
|
||||||
if one of the documents had no previous value for it's metadata.
|
|
||||||
|
|
||||||
Updated Vagrant file
|
|
||||||
--------------------
|
|
||||||
The included Vagrant file now provide 2 boxes: development and production.
|
|
||||||
Selection which kind of box to provision is as easy as executing::
|
|
||||||
|
|
||||||
vagrant up development
|
|
||||||
|
|
||||||
or
|
|
||||||
|
|
||||||
vagrant up production
|
|
||||||
|
|
||||||
|
|
||||||
Other changes
|
|
||||||
-------------
|
|
||||||
* None
|
|
||||||
|
|
||||||
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 #243 <https://gitlab.com/mayan-edms/mayan-edms/issues/243>`_ System allows a user to skip entering values for a required metadata field while uploading a new document
|
|
||||||
* `GitLab issue #245 <https://gitlab.com/mayan-edms/mayan-edms/issues/245>`_ Add multiple metadata not possible
|
|
||||||
|
|
||||||
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/
|
|
||||||
@@ -1,94 +0,0 @@
|
|||||||
===============================
|
|
||||||
Mayan EDMS v2.0.2 release notes
|
|
||||||
===============================
|
|
||||||
|
|
||||||
Released: February 15, 2016
|
|
||||||
|
|
||||||
Welcome to Mayan EDMS v2.0.2
|
|
||||||
|
|
||||||
What's new
|
|
||||||
==========
|
|
||||||
|
|
||||||
Fine tune "Update" checkbox from the metadata entry form
|
|
||||||
--------------------------------------------------------
|
|
||||||
Previously the update checkbox was ignored during the metadata step of the
|
|
||||||
document upload wizard with the wizard always creating a metadata entry for the
|
|
||||||
new document even if the entry was left blank. The checkbox now controls whether
|
|
||||||
or not the wizard will store try to create the metadata entry.
|
|
||||||
|
|
||||||
Fix empty optional lookup metadata fields behavior
|
|
||||||
--------------------------------------------------
|
|
||||||
An edge case was fixed that caused validation to be executed for empty metadata
|
|
||||||
fields that had a value lookup list.
|
|
||||||
|
|
||||||
Remove Docker files
|
|
||||||
-------------------
|
|
||||||
Included Docker and Docker Compose files were removed since the Mayan EDMS Docker
|
|
||||||
(https://gitlab.com/mayan-edms/mayan-edms-docker) repository is stable.
|
|
||||||
|
|
||||||
Other changes
|
|
||||||
-------------
|
|
||||||
- Only extract validation error messages from ValidationError exception instances.
|
|
||||||
- Add 2 second delay to document version tests to workaround MySQL not storing
|
|
||||||
the millisecond part of the document version's timestamp.
|
|
||||||
- Install testing dependencies when installing development dependencies.
|
|
||||||
- Fix OCR API test for document version page OCR content.
|
|
||||||
- Move metadata form value validation to .clean() method.
|
|
||||||
- Add HTML tags stripping to the browser title generation template.
|
|
||||||
|
|
||||||
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 #250 <https://gitlab.com/mayan-edms/mayan-edms/issues/250>`_ Empty optional lookup metadata trigger validation error.
|
|
||||||
|
|
||||||
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -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/
|
|
||||||
@@ -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/
|
|
||||||
@@ -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/
|
|
||||||
@@ -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/
|
|
||||||
@@ -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/
|
|
||||||
@@ -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/
|
|
||||||
@@ -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/
|
|
||||||
@@ -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/
|
|
||||||
@@ -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/
|
|
||||||
@@ -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/
|
|
||||||
@@ -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/
|
|
||||||
@@ -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/
|
|
||||||
@@ -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/
|
|
||||||
@@ -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/
|
|
||||||
@@ -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/
|
|
||||||
@@ -1,71 +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
|
|
||||||
===========================
|
|
||||||
|
|
||||||
* None
|
|
||||||
=======
|
|
||||||
* `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/
|
|
||||||
@@ -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/
|
|
||||||
@@ -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/
|
|
||||||
@@ -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/
|
|
||||||
@@ -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/
|
|
||||||
@@ -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/
|
|
||||||
@@ -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/
|
|
||||||
@@ -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/
|
|
||||||
@@ -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/
|
|
||||||
@@ -1,101 +0,0 @@
|
|||||||
===============================
|
|
||||||
Mayan EDMS v2.7.2 release notes
|
|
||||||
===============================
|
|
||||||
|
|
||||||
Released: September 06, 2017
|
|
||||||
|
|
||||||
What's new
|
|
||||||
==========
|
|
||||||
|
|
||||||
Fixes to the new mailer creation view
|
|
||||||
-------------------------------------
|
|
||||||
Some last minute changes to the dynamic form creation code added to support
|
|
||||||
workflow state actions broke the creation of new mailer profiles. This is fixed
|
|
||||||
now and a test was added to avoid future regressions. GitLab issue #431.
|
|
||||||
Thanks to Robert Schöftner (@robert.schoeftner) for the report and the solution.
|
|
||||||
|
|
||||||
Event consolidation
|
|
||||||
-------------------
|
|
||||||
Several events were created to audit the creation of new documents. These events
|
|
||||||
caused some confusion and were improved. When creating a new document the two
|
|
||||||
'document properties edited' events were removed as this is an internal process
|
|
||||||
and not an user event. Another change is the preservation of the user ID that
|
|
||||||
submits the file to create the document. Now instead of 'System' the actual
|
|
||||||
username of the user that uploaded the document will appear in the events log.
|
|
||||||
GitLab issue #433. Thanks to Jesaja Everling (@jeverling) for the report.
|
|
||||||
|
|
||||||
Cabinet list sorting
|
|
||||||
--------------------
|
|
||||||
The root cabinet list is now displayed alphabetically sorted. The list of
|
|
||||||
cabinets to which a document belongs to is now displayed sorted too. Thanks
|
|
||||||
to Thomas Plotkowiak for the request.
|
|
||||||
|
|
||||||
Visual cue for the document cabinet list
|
|
||||||
----------------------------------------
|
|
||||||
In the document list item view, a simple visual cue in the form of italized
|
|
||||||
text was added to the document cabinet list. GitLab issue #435. Thanks to LeVon
|
|
||||||
Smoker for the request.
|
|
||||||
|
|
||||||
Easier testing of production deployments
|
|
||||||
----------------------------------------
|
|
||||||
The testing library mock is now installed by default, making it easier to run
|
|
||||||
the entire test suit on deployed instances.
|
|
||||||
|
|
||||||
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 #431 <https://gitlab.com/mayan-edms/mayan-edms/issues/431>`_ can't create new mailer
|
|
||||||
* `GitLab issue #433 <https://gitlab.com/mayan-edms/mayan-edms/issues/433>`_ Events are not created correctly for document upload
|
|
||||||
* `GitLab issue #435 <https://gitlab.com/mayan-edms/mayan-edms/issues/435>`_ Add visual cue to differentiate the Cabinet list on a document's preview card.
|
|
||||||
|
|
||||||
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/
|
|
||||||
@@ -1,279 +0,0 @@
|
|||||||
=============================
|
|
||||||
Mayan EDMS v2.7 release notes
|
|
||||||
=============================
|
|
||||||
|
|
||||||
Released: August 30, 2017
|
|
||||||
|
|
||||||
What's new
|
|
||||||
==========
|
|
||||||
|
|
||||||
Beta Python 3 support
|
|
||||||
---------------------
|
|
||||||
Preliminary support for Python 3 has landed in this version. More testing
|
|
||||||
is still needed but for the most part seems to be usable. This is just
|
|
||||||
initial support and not meant for production. Please submit any issue with
|
|
||||||
Python 3 to help improve the support for it.
|
|
||||||
|
|
||||||
|
|
||||||
PDF introspection improvements
|
|
||||||
------------------------------
|
|
||||||
Some PDF files encode their page rotation information using indirect values
|
|
||||||
instead of actually storing the rotation value as an integer. Support these
|
|
||||||
types of PDF files was added.
|
|
||||||
|
|
||||||
|
|
||||||
3rd party apps
|
|
||||||
--------------
|
|
||||||
Support was added to allow 3rd party app adding data columns to existing
|
|
||||||
models to specify the order in which such new columns will appear. Support
|
|
||||||
was also added to allow any app to remove existing main menus. App can now in
|
|
||||||
addition to adding their own dashboard widget, remove existing widgets. As
|
|
||||||
part of the dashboard updates support was also added to allow app developers to
|
|
||||||
create multiple dashboards.
|
|
||||||
|
|
||||||
|
|
||||||
Converter customization improvements
|
|
||||||
------------------------------------
|
|
||||||
For users wanting more control over the document image conversion process,
|
|
||||||
support was added to change the internal format used for image conversion.
|
|
||||||
By default JPG used but via the `pdftoppm_format` and `pillow_format` entries
|
|
||||||
of the CONVERTER_GRAPHICS_BACKEND_CONFIG setting option any other format
|
|
||||||
support by Python's Pillow can use used. Support was also added to change the
|
|
||||||
DPI value used by the conversion process of PDF files to images. The default
|
|
||||||
value for this coversion was set to 300 DPI. The entry used to specify this
|
|
||||||
value is `pdftoppm_dpi`.
|
|
||||||
|
|
||||||
|
|
||||||
Workflow refactor
|
|
||||||
-----------------
|
|
||||||
This version includes a preview release of the workflow refactor that includes
|
|
||||||
three new features: transition triggers, state actions, and graphical previews.
|
|
||||||
The transition triggers allow setting document events as triggers to perform
|
|
||||||
a workflow transition automatically. State actions allow performing system
|
|
||||||
actions when a workflow enters or leaves a specify state. For this release
|
|
||||||
5 actions were included: attaching and removing tags to a document, granting
|
|
||||||
or revoking access via the ACL, and performing a HTTP POST request. As the
|
|
||||||
feature matures more actions will be added. These two features make the
|
|
||||||
workflow app the automation center for Mayan. This feature allow users to program
|
|
||||||
behaviors to perform, even provoke changes in 3rd party software using the HTTP
|
|
||||||
POST. This feature works very much like services like IFTTT [ifttt.com]
|
|
||||||
(If This Then That) or conditionals in programming languages. The last
|
|
||||||
improvement added to the workflow app is the ability to render a workflow
|
|
||||||
in a graphical manner, useful for visually understanding, explaining and
|
|
||||||
debugging workflows.
|
|
||||||
|
|
||||||
|
|
||||||
OCR refactor
|
|
||||||
------------
|
|
||||||
As part of the plan to add OCR zone and barcode support the first set of
|
|
||||||
changes was included in this version. These initial changes bring the OCR
|
|
||||||
app up to standard with the rest of the system and splits the OCR app into two
|
|
||||||
new apps: the OCR app and the Document parsing app. The document parsing app
|
|
||||||
will read text content from documents that provide them and display the result
|
|
||||||
under the "Content" document tab. The OCR app will also launch for each
|
|
||||||
document even if they provide text content to recognize any text on images.
|
|
||||||
This separation gives users the two choices of text information one extracted
|
|
||||||
from the document (not always available or of quality) and the other recognized
|
|
||||||
by OCR.
|
|
||||||
|
|
||||||
|
|
||||||
Document parsing
|
|
||||||
----------------
|
|
||||||
Historically Mayan has had two methods to extract text from PDF files. First
|
|
||||||
it will try the program called `pdftotext` and failing that will try the
|
|
||||||
PDFMiner Python library. The official PDFMiner library is unmaintained and
|
|
||||||
doesn't support Python 3 will be a requirement for Django 2.0, which will
|
|
||||||
force Mayan to move to Python 3 exclusively in the near future. For this
|
|
||||||
reason the PDFMiner parser has been removed. A new library called PyPDF2 was
|
|
||||||
added in a past version to improve the PDF page count and rotation detection,
|
|
||||||
initial experience with this library has been positive and since it supports
|
|
||||||
text extraction might also replace PDFMiner as the secondary PDF text
|
|
||||||
extraction strategy.
|
|
||||||
|
|
||||||
|
|
||||||
Document version UI
|
|
||||||
-------------------
|
|
||||||
The list of versions of a document was updated to use the new item list
|
|
||||||
view templated added in version 2.6 for document lists. Along with this update
|
|
||||||
preview support was added for individual document version. It is also possible
|
|
||||||
to explore and navigate different versions of a document much easier and with
|
|
||||||
more information that previously available, being able to visually see for
|
|
||||||
example the difference in a document's versions.
|
|
||||||
|
|
||||||
|
|
||||||
Events system
|
|
||||||
-------------
|
|
||||||
The events system has been updated to provide more information and improve
|
|
||||||
navigation. The `Actor` field will now display `System` when an event was
|
|
||||||
performed by the system instead of displaying the document name. The
|
|
||||||
column `Action object` was added to help identify via which object the
|
|
||||||
event was performed. This is significant when performing actions on objects
|
|
||||||
which are children of another like document versions. The number and types
|
|
||||||
of events that are monitored has been increased all of which can also be used
|
|
||||||
to trigger a workflow transition. The current list:
|
|
||||||
|
|
||||||
- Document added to cabinet
|
|
||||||
- Document removed from cabinet
|
|
||||||
- Document automatically checked in
|
|
||||||
- Document checked in
|
|
||||||
- Document checked out
|
|
||||||
- Document forcefully checked in
|
|
||||||
- Document comment created
|
|
||||||
- Document comment deleted
|
|
||||||
- Document created
|
|
||||||
- Document downloaded
|
|
||||||
- Document properties edited
|
|
||||||
- New version uploaded
|
|
||||||
- Document type changed
|
|
||||||
- Document version reverted
|
|
||||||
- Document viewed
|
|
||||||
- Document version OCR finished
|
|
||||||
- Document version submitted for OCR
|
|
||||||
- Document version parsing finished
|
|
||||||
- Document version submitted for parsing
|
|
||||||
- Tag attached to document
|
|
||||||
- Tag removed from document
|
|
||||||
|
|
||||||
|
|
||||||
Metadata on document type change
|
|
||||||
--------------------------------
|
|
||||||
Changing document types will no longer delete all metadata from the document.
|
|
||||||
Any existing metadata whose type matches the metadata in the new type will be
|
|
||||||
preserved.
|
|
||||||
|
|
||||||
|
|
||||||
Permission rebalance
|
|
||||||
--------------------
|
|
||||||
In order to attach or remove a tag to a document, the tag view permissions
|
|
||||||
was needed. This has been update to required the tag attach and remove
|
|
||||||
permissions respectively.
|
|
||||||
|
|
||||||
|
|
||||||
Other Changes
|
|
||||||
-------------
|
|
||||||
- Add workaround for PDF with IndirectObject as the
|
|
||||||
rotation value. GitHub #261.
|
|
||||||
- Add ACL list link with icon and use it for the document facet menu.
|
|
||||||
- Fix mailing app permissions labels.
|
|
||||||
- Add ACLs link and ACLs permissions to the mailer profile model.
|
|
||||||
- Improve mailer URL regex.
|
|
||||||
- Add ordering support to the SourceColumn class. GitLab issue #417.
|
|
||||||
- Shows the cabinets in the document list. GitLab #417 @corneliusludmann
|
|
||||||
- Update the index information colums to show the
|
|
||||||
total number of documents and nodes contained in a level.
|
|
||||||
- Add workaround for pycountry versions without the bibliographical key.
|
|
||||||
GitHub issue #250.
|
|
||||||
- Skip UUID migration on Oracle backends. GitHub issue #251.
|
|
||||||
- Allow changing the output format, DPI of the pdftoppm command, and
|
|
||||||
the output format of the converter via the CONVERTER_GRAPHICS_BACKEND_CONFIG
|
|
||||||
setting sub options: pdftoppm_dpi: 300, pdftoppm_format: jpeg, pillow_format: jpeg
|
|
||||||
GitHub issues #256 #257 GitLab issue #416.
|
|
||||||
- Add support for workflow triggers.
|
|
||||||
- Add support for workflow actions. Includes actions to attach and remove tags,
|
|
||||||
grant and remove access and perform an HTTP POST request.
|
|
||||||
- Add support for rendering workflows. Required graphviz binary.
|
|
||||||
- Add support for unbinding sub menus.
|
|
||||||
- Fix mailing profile test view.
|
|
||||||
- Disregard the last 3 dots that mark the end of the YAML document.
|
|
||||||
- Add support for multiple dashboards.
|
|
||||||
- Add support for removing dashboard widgets.
|
|
||||||
- Convert document version view to item list view.
|
|
||||||
- Add support for browsing individual document versions.
|
|
||||||
- Add support for dropdown menus to the item list view template.
|
|
||||||
- Add support for preserving the file extenstion when downloading a document
|
|
||||||
version. GitLab #415.
|
|
||||||
- Split OCR app into OCR and parsing.
|
|
||||||
- Use the literal 'System' instead of the target name when
|
|
||||||
the action user in unknown.
|
|
||||||
- When changing document types, don't delete the old metadata that is
|
|
||||||
also found in the new document type. GitLab issue #421.
|
|
||||||
- Change the permission needed to attach and remove tags.
|
|
||||||
- Reduces debug verbosity during tests.
|
|
||||||
- Remove the NoMimetype match exception. Not needed now that this is
|
|
||||||
a separate app from the OCR app.
|
|
||||||
- Make error messages persistent.
|
|
||||||
- Add 'Action object' column to the event list. Display the
|
|
||||||
object or target type (document, tag, etc).
|
|
||||||
- Rebalance tag permissions. Change the required permission to attach
|
|
||||||
and remove a tag from view to attach and remove respectively.
|
|
||||||
- Start of error log consolidation sub project.
|
|
||||||
- Implement field order for the action dynamic forms.
|
|
||||||
Perform action class validation by importing the class and
|
|
||||||
not relying on an instance of action model, which might not
|
|
||||||
exisit when still creating the action.
|
|
||||||
- Navigation improvements in the workflow app.
|
|
||||||
- Rename index nodes to index levels.
|
|
||||||
- Avoid Maximum recursion depth exceeded exception on index document
|
|
||||||
list view.
|
|
||||||
|
|
||||||
Removals
|
|
||||||
--------
|
|
||||||
- Folders app.
|
|
||||||
- The view to submit all document for OCR. The view to submit documents by type
|
|
||||||
substitutes this once.
|
|
||||||
- The PDFMiner parser.
|
|
||||||
|
|
||||||
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 #250 <https://github.com/mayan-edms/mayan-edms/issues/250>`_ migrate fails on documents.0025_auto_20150718_0742
|
|
||||||
* `GitHub issue #251 <https://github.com/mayan-edms/mayan-edms/issues/251>`_ migrate fails on documents.0032_auto_20160315_0537
|
|
||||||
* `GitHub issue #256 <https://github.com/mayan-edms/mayan-edms/issues/256>`_ Make it possible to adjust values in apps\converter\literals.py from Settings
|
|
||||||
* `GitHub issue #257 <https://github.com/mayan-edms/mayan-edms/issues/257>`_ Use the DEFAULT_FILE_FORMAT from literals.py in python.py
|
|
||||||
* `GitHub issue #261 <https://github.com/mayan-edms/mayan-edms/issues/261>`_ fix_orientation method causes document add to crash
|
|
||||||
* `GitHub issue #263 <https://github.com/mayan-edms/mayan-edms/issues/263>`_ Typo in mayan/apps/ocr/migrations/0004_documenttypesettings.py
|
|
||||||
* `GitLab issue #172 <https://gitlab.com/mayan-edms/mayan-edms/issues/172>`_ Metadata default value ignored when changing document type
|
|
||||||
* `GitLab issue #329 <https://gitlab.com/mayan-edms/mayan-edms/issues/329>`_ Move code to Python 3
|
|
||||||
* `GitLab issue #415 <https://gitlab.com/mayan-edms/mayan-edms/issues/415>`_ Wrong filename when downloading document version
|
|
||||||
* `GitLab issue #416 <https://gitlab.com/mayan-edms/mayan-edms/issues/416>`_ DPI value for OCR not taken from document metadata
|
|
||||||
* `GitLab issue #417 <https://gitlab.com/mayan-edms/mayan-edms/issues/417>`_ Display document cabinets in documents list
|
|
||||||
* `GitLab issue #421 <https://gitlab.com/mayan-edms/mayan-edms/issues/421>`_ Metadata lost when changing document type
|
|
||||||
|
|
||||||
|
|
||||||
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/
|
|
||||||
@@ -1,79 +0,0 @@
|
|||||||
=============================
|
|
||||||
Mayan EDMS v3.0 release notes
|
|
||||||
=============================
|
|
||||||
|
|
||||||
Released: XX XX, 2017
|
|
||||||
|
|
||||||
What's new
|
|
||||||
==========
|
|
||||||
|
|
||||||
|
|
||||||
Other changes
|
|
||||||
-------------
|
|
||||||
- Resource based API endpoints
|
|
||||||
- Update required versions of Pillow to 4.1.1, django-compressor to 2.1.1, django-suit to 0.2.25, pyocr to 0.4.7, sh to 1.12.13
|
|
||||||
- Add notifications support.
|
|
||||||
|
|
||||||
Removals
|
|
||||||
--------
|
|
||||||
- None
|
|
||||||
|
|
||||||
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 #366 <https://gitlab.com/mayan-edms/mayan-edms/issues/366>`_ Proofread documentation
|
|
||||||
* `GitLab issue #379 <https://gitlab.com/mayan-edms/mayan-edms/issues/379>`_ Add new document version list view permission.
|
|
||||||
* `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/
|
|
||||||
@@ -1,131 +0,0 @@
|
|||||||
=============
|
|
||||||
Release notes
|
|
||||||
=============
|
|
||||||
|
|
||||||
Release notes for the official Mayan EDMS releases. Each release note will tell you
|
|
||||||
what's new in each version, and will also describe any backwards-incompatible
|
|
||||||
changes made in that version.
|
|
||||||
|
|
||||||
For those upgrading to a new version of Mayan EDMS, you will need to check
|
|
||||||
all the backwards-incompatible changes and deprecated features for
|
|
||||||
each 'final' release from the one after your current Mayan EDMS version,
|
|
||||||
up to and including the latest version.
|
|
||||||
|
|
||||||
Final releases
|
|
||||||
==============
|
|
||||||
|
|
||||||
Below are release notes through Mayan EDMS |version| and its minor releases. Newer
|
|
||||||
versions of the documentation contain the release notes for any later releases.
|
|
||||||
|
|
||||||
2.0 series
|
|
||||||
----------
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
2.7.2
|
|
||||||
2.7.1
|
|
||||||
2.7
|
|
||||||
2.6.4
|
|
||||||
2.6.3
|
|
||||||
2.6.2
|
|
||||||
2.6.1
|
|
||||||
2.6
|
|
||||||
2.5.2
|
|
||||||
2.5.1
|
|
||||||
2.5
|
|
||||||
2.4
|
|
||||||
2.3
|
|
||||||
2.2
|
|
||||||
2.1.11
|
|
||||||
2.1.10
|
|
||||||
2.1.9
|
|
||||||
2.1.8
|
|
||||||
2.1.7
|
|
||||||
2.1.6
|
|
||||||
2.1.5
|
|
||||||
2.1.4
|
|
||||||
2.1.3
|
|
||||||
2.1.2
|
|
||||||
2.1.1
|
|
||||||
2.1
|
|
||||||
2.0.2
|
|
||||||
2.0.1
|
|
||||||
2.0
|
|
||||||
|
|
||||||
1.0 series
|
|
||||||
----------
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
1.1.1
|
|
||||||
1.1
|
|
||||||
1.0
|
|
||||||
|
|
||||||
0.13 release
|
|
||||||
------------
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
0.13
|
|
||||||
|
|
||||||
0.12 release
|
|
||||||
------------
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
0.12.2
|
|
||||||
0.12.1
|
|
||||||
0.12
|
|
||||||
|
|
||||||
0.11 release
|
|
||||||
------------
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
0.11.1
|
|
||||||
0.11
|
|
||||||
|
|
||||||
0.10 release
|
|
||||||
------------
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
0.10.1
|
|
||||||
0.10
|
|
||||||
|
|
||||||
0.9 release
|
|
||||||
-----------
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
0.9.1
|
|
||||||
0.9
|
|
||||||
|
|
||||||
0.8 release
|
|
||||||
-----------
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
0.8.3
|
|
||||||
0.8.2
|
|
||||||
0.8.1
|
|
||||||
0.8
|
|
||||||
|
|
||||||
0.7 release
|
|
||||||
-----------
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
0.7.6
|
|
||||||
0.7.5
|
|
||||||
0.7.4
|
|
||||||
0.7.3
|
|
||||||
0.7
|
|
||||||
|
|
||||||
0.5 release
|
|
||||||
-----------
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
0.5.1
|
|
||||||
0.5
|
|
||||||
Binary file not shown.
@@ -1,73 +0,0 @@
|
|||||||
====================
|
|
||||||
Access control lists
|
|
||||||
====================
|
|
||||||
|
|
||||||
Besides the permissions system explained in :doc:`permissions`, Mayan EDMS
|
|
||||||
provides per object permission granting. This feature is used to grant a
|
|
||||||
permission to a role, but this permission can only be executed for a limited
|
|
||||||
number of objects (documents, folders, tags) instead of being effective
|
|
||||||
system-wide.
|
|
||||||
|
|
||||||
.. blockdiag::
|
|
||||||
|
|
||||||
blockdiag {
|
|
||||||
document [ label = 'Document' ];
|
|
||||||
role [ label = 'Role' ];
|
|
||||||
permission [ label = 'Permission' ];
|
|
||||||
|
|
||||||
role -> document <- permission;
|
|
||||||
}
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
.. blockdiag::
|
|
||||||
|
|
||||||
blockdiag {
|
|
||||||
document [ label = '2015 Payroll report.txt', width=200 ];
|
|
||||||
role [ label = 'Accountants' ];
|
|
||||||
permission [ label = 'View document' ];
|
|
||||||
|
|
||||||
role -> document <- permission;
|
|
||||||
}
|
|
||||||
|
|
||||||
In this scenario only users in groups belonging to the ``Accountants`` role
|
|
||||||
would be able to view the ``2015 Payroll report.txt`` document.
|
|
||||||
|
|
||||||
Inherited access control
|
|
||||||
========================
|
|
||||||
|
|
||||||
It is also possible to grant a permission to a role for a specific document type (:doc:`document_types`).
|
|
||||||
Under this scheme all users in groups belonging to that role will inherit that
|
|
||||||
permission for all documents of that type.
|
|
||||||
|
|
||||||
.. blockdiag::
|
|
||||||
|
|
||||||
blockdiag {
|
|
||||||
document_type [ label = 'Document type' ];
|
|
||||||
role [ label = 'Role' ];
|
|
||||||
permission [ label = 'Permission' ];
|
|
||||||
|
|
||||||
role -> document_type <- permission;
|
|
||||||
}
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
.. blockdiag::
|
|
||||||
|
|
||||||
blockdiag {
|
|
||||||
document_type [ label = 'Payroll reports', width=200 ];
|
|
||||||
role [ label = 'Accountants' ];
|
|
||||||
permission [ label = 'View document' ];
|
|
||||||
|
|
||||||
role -> document_type <- permission;
|
|
||||||
}
|
|
||||||
|
|
||||||
The role ``Accountants`` is given the permission ``document view`` for the
|
|
||||||
document type ``Payroll reports``. Now all users in groups belonging to the
|
|
||||||
``Accountants`` role can view all documents of the type ``Payroll reports``
|
|
||||||
without needing to have that permissions granted for each particular
|
|
||||||
``Payroll reports`` type document.
|
|
||||||
|
|
||||||
If access control for the ``Payroll reports`` documents needs to be updated it
|
|
||||||
only needs to be done for the document type and not for each document of the type
|
|
||||||
``Payroll reports``.
|
|
||||||
@@ -1,143 +0,0 @@
|
|||||||
============
|
|
||||||
App creation
|
|
||||||
============
|
|
||||||
|
|
||||||
Mayan EDMS apps are essentially Django app with some extra code to register
|
|
||||||
navigation, permissions and other relationships.
|
|
||||||
|
|
||||||
|
|
||||||
App modules
|
|
||||||
===========
|
|
||||||
|
|
||||||
- __init__.py
|
|
||||||
|
|
||||||
Should be empty if possible. No initialization code should be here, use the
|
|
||||||
ready() method of the MayanAppConfig class in the apps.py module.
|
|
||||||
|
|
||||||
- admin.py
|
|
||||||
|
|
||||||
Standard Django app module to define how models are to be presented in the
|
|
||||||
admin interface.
|
|
||||||
|
|
||||||
- api_views.py
|
|
||||||
|
|
||||||
REST API views go here. Mayan EDMS uses Django REST Framework API view
|
|
||||||
classes.
|
|
||||||
|
|
||||||
- apps.py
|
|
||||||
|
|
||||||
Contains the MayanAppConfig subclass as required by Django 1.7 and up. This
|
|
||||||
is a place to define the app name and translatable verbose name as well as
|
|
||||||
code to be execute when the modules of the app are ready.
|
|
||||||
|
|
||||||
- classes.py
|
|
||||||
|
|
||||||
Hold python classes to be used internally or externally. Any class defined by
|
|
||||||
the app that is not a model.
|
|
||||||
|
|
||||||
- events.py
|
|
||||||
|
|
||||||
Define event class instances that are later committed to a log by custom
|
|
||||||
code.
|
|
||||||
|
|
||||||
- exceptions.py
|
|
||||||
|
|
||||||
Custom exceptions defined by the app.
|
|
||||||
|
|
||||||
- fields.py
|
|
||||||
|
|
||||||
Place any custom form field classed you define here.
|
|
||||||
|
|
||||||
- forms.py
|
|
||||||
|
|
||||||
Standard Django app module that hold custom form classes.
|
|
||||||
|
|
||||||
- handlers.py
|
|
||||||
|
|
||||||
Contains the signal handlers, functions that will process a given signal
|
|
||||||
emitted from this or other apps. Connect the handler functions to the
|
|
||||||
corresponding signal in the ready() method of the MayanAppConfig subclass in
|
|
||||||
apps.py
|
|
||||||
|
|
||||||
- links.py
|
|
||||||
|
|
||||||
Defines the links to be used by the app. Import only from the navigation app
|
|
||||||
and the local permissions.py file.
|
|
||||||
|
|
||||||
- literals.py
|
|
||||||
|
|
||||||
Stores magic numbers, module choices (if static), settings defaults, and
|
|
||||||
constants. Should contain all capital case variables. Must not import from
|
|
||||||
any other module.
|
|
||||||
|
|
||||||
- managers.py
|
|
||||||
|
|
||||||
Standard Django app module that hold custom model managers. These act as
|
|
||||||
model class method to performs actions in a series of model instances or
|
|
||||||
utilitarian actions on external models instances.
|
|
||||||
|
|
||||||
- models.py
|
|
||||||
|
|
||||||
Standard Django app module that defines ORM persistent data schema.
|
|
||||||
|
|
||||||
- permissions.py
|
|
||||||
|
|
||||||
Defines the permissions to be used to validate user access by links and views.
|
|
||||||
Imports only from the permissions app. Link or view conditions such as
|
|
||||||
testing for is_staff or is_super_user flag are defined in this same module.
|
|
||||||
|
|
||||||
- runtime.py
|
|
||||||
|
|
||||||
Use this module when you need the same instance of a class for the entire app.
|
|
||||||
This module acts as a shared memory space for the other modules of the app or
|
|
||||||
other apps.
|
|
||||||
|
|
||||||
- serializers.py
|
|
||||||
|
|
||||||
Hold Django REST Framework serializers used by the api_views.py module.
|
|
||||||
|
|
||||||
- settings.py
|
|
||||||
|
|
||||||
Define the configuration settings instances that the app will use.
|
|
||||||
|
|
||||||
- signals.py
|
|
||||||
|
|
||||||
Any custom defined signal goes here.
|
|
||||||
|
|
||||||
- statistics.py
|
|
||||||
|
|
||||||
Provides functions that will compute any sort of statistical information on
|
|
||||||
the app’s data.
|
|
||||||
|
|
||||||
- tasks.py
|
|
||||||
|
|
||||||
Code to be execute in the background or as an out-of-process action.
|
|
||||||
|
|
||||||
- tests/ directory
|
|
||||||
|
|
||||||
Hold test modules. There should be one test_*.py module for each aspect being
|
|
||||||
tested, examples: test_api.py, test_views.py, test_parsers.py, test_permissions.py
|
|
||||||
Any shared constant data used by the tests should be added to tests/literals.py
|
|
||||||
|
|
||||||
- utils.py
|
|
||||||
|
|
||||||
Holds utilitarian code that doesn't fit on any other app module or that is
|
|
||||||
used by several modules in the app. Anything used internally by the app that
|
|
||||||
is not a class or a literal (should be as little as possible)
|
|
||||||
|
|
||||||
- widgets.py
|
|
||||||
|
|
||||||
HTML widgets go here. This should be the only place with presentation
|
|
||||||
directives in the app (aside the templates).
|
|
||||||
|
|
||||||
|
|
||||||
Views
|
|
||||||
=====
|
|
||||||
|
|
||||||
The module common.generics provides custom generic class based views to be used.
|
|
||||||
The basic views used to create, edit, view and delete objects in Mayan EDMS
|
|
||||||
are: SingleObjectCreateView, SingleObjectDetailView, SingleObjectEditView,
|
|
||||||
and SingleObjectListView
|
|
||||||
|
|
||||||
These views handle aspects relating to view permissions, object permissions,
|
|
||||||
post action redirection and template context generation.
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
=======
|
|
||||||
Backups
|
|
||||||
=======
|
|
||||||
|
|
||||||
To backup your install of Mayan EDMS just copy the actual document files and
|
|
||||||
the database content. If you are using the default storage backend, the
|
|
||||||
document files should be found in ``mayan/media/document_storage/``.
|
|
||||||
|
|
||||||
To dump the content of your database manager refer to the documentation chapter
|
|
||||||
regarding database data "dumping".
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
- Postgresl: http://www.postgresql.org/docs/current/static/backup.html
|
|
||||||
- MySQL: https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
|
|
||||||
- SQLite: Just copy the file ``mayan/media/db.sqlite3``
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
=========
|
|
||||||
Checkouts
|
|
||||||
=========
|
|
||||||
|
|
||||||
Checkouts are a way to block certain accesses or actions of a document for a
|
|
||||||
period of time.
|
|
||||||
|
|
||||||
An user can choose to checkout a document to work on an update and block new
|
|
||||||
versions of that document to be uploaded by other users. Document are checked
|
|
||||||
out for a certain amount of time and if not manually checked in by the original
|
|
||||||
user, will be checked in automatically by the system.
|
|
||||||
|
|
||||||
To be able to check in documents that were checked out by other users, the
|
|
||||||
permission 'Forcefully check in documents' is required.
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
=======
|
|
||||||
Contact
|
|
||||||
=======
|
|
||||||
|
|
||||||
|
|
||||||
FAQ
|
|
||||||
---
|
|
||||||
|
|
||||||
* Try the :doc:`FAQ <faq>` -- it's got answers to many common questions.
|
|
||||||
|
|
||||||
Mailing list
|
|
||||||
------------
|
|
||||||
|
|
||||||
Search for information in the `archives of the mayan-edms mailing list`_, or
|
|
||||||
`post a question`_. If you prefer news servers, use the gateway provided by
|
|
||||||
Gmane_.
|
|
||||||
|
|
||||||
Mayan EDMS community developers do their best to reply to basic questions.
|
|
||||||
Be sure to check the list archives as it may already containt the answers to
|
|
||||||
your questions.
|
|
||||||
|
|
||||||
Twitter
|
|
||||||
-------
|
|
||||||
|
|
||||||
Mayan EDMS has an official Twitter account, `@mayanedms
|
|
||||||
<http://twitter.com/mayanedms>`_, which is used for announcements and occasional
|
|
||||||
related news tidbits.
|
|
||||||
|
|
||||||
|
|
||||||
Bugs/ticket tracker
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
Report bugs with Mayan EDMS or search existing ones using Gitlab's `ticket tracker`_.
|
|
||||||
|
|
||||||
|
|
||||||
.. _archives of the mayan-edms mailing list: http://groups.google.com/group/mayan-edms/
|
|
||||||
.. _post a question: http://groups.google.com/group/mayan-edms
|
|
||||||
.. _ticket tracker: https://gitlab.com/mayan-edms/mayan-edms/issues
|
|
||||||
.. _Gmane: http://news.gmane.org/gmane.comp.python.django.mayan-edms
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
.. _contributors:
|
|
||||||
|
|
||||||
============
|
|
||||||
Contributors
|
|
||||||
============
|
|
||||||
|
|
||||||
|
|
||||||
How to contribute?
|
|
||||||
------------------
|
|
||||||
|
|
||||||
You can help further the development of Mayan EDMS by testing, reporting
|
|
||||||
bugs, submitting documentation or code patches.
|
|
||||||
|
|
||||||
Lead developer
|
|
||||||
--------------
|
|
||||||
* Roberto Rosario (roberto.rosario@mayan-edms.com) <https://twitter.com/siloraptor>
|
|
||||||
|
|
||||||
Contributors (in alphabetical order)
|
|
||||||
------------------------------------
|
|
||||||
* Aziz M. Bookwala (https://github.com/azizmb)
|
|
||||||
* Bertrand Bordage (https://github.com/BertrandBordage)
|
|
||||||
* Brian E (brian@realize.org)
|
|
||||||
* David Herring (https://github.com/abadger1406)
|
|
||||||
* Emlyn Clay (https://github.com/EmlynC)
|
|
||||||
* Jens Kadenbach (https://github.com/audax)
|
|
||||||
* Kolmar Kafran
|
|
||||||
* Helga Carrero
|
|
||||||
* IHLeanne (https://github.com/IHLeanne)
|
|
||||||
* Iliya Georgiev (ikgeorgiev@gmail.com)
|
|
||||||
* Lars Kruse (devel@sumpfralle.de)
|
|
||||||
* Mathias Behrle <mbehrle@m9s.biz>
|
|
||||||
* Meurig Freeman (https://github.com/meurig)
|
|
||||||
* Nate Aune (nate@appsembler.com)
|
|
||||||
* Paul Whipp [https://github.com/pwhipp] [http://paulwhippconsulting.com]
|
|
||||||
* Rafael Esparra <rafael.esparra1@upr.edu>
|
|
||||||
* Sergey Glita (s.v.glita@gmail.com)
|
|
||||||
* Simone Federici [https://twitter.com/aldaranalton] [https://github.com/simone]
|
|
||||||
* Webfaction (https://www.webfaction.com)
|
|
||||||
@@ -1,283 +0,0 @@
|
|||||||
===================
|
|
||||||
Advanced deployment
|
|
||||||
===================
|
|
||||||
|
|
||||||
Mayan EDMS should be deployed like any other Django_ project and
|
|
||||||
preferably using virtualenv_. Below are some ways to deploy and use Mayan EDMS.
|
|
||||||
Do not use more than one method.
|
|
||||||
|
|
||||||
Being a Django_ and a Python_ project, familiarity with these technologies is
|
|
||||||
recommended to better understand why Mayan EDMS does some of the things it
|
|
||||||
does.
|
|
||||||
|
|
||||||
Binary dependencies
|
|
||||||
===================
|
|
||||||
|
|
||||||
Ubuntu
|
|
||||||
------
|
|
||||||
|
|
||||||
If using a Debian_ or Ubuntu_ based Linux distribution, get the executable
|
|
||||||
requirements using::
|
|
||||||
|
|
||||||
apt-get install graphviz nginx supervisor redis-server postgresql \
|
|
||||||
libpq-dev libjpeg-dev libmagic1 libpng-dev libreoffice \
|
|
||||||
libtiff-dev gcc ghostscript gnupg python-dev python-virtualenv \
|
|
||||||
tesseract-ocr poppler-utils -y
|
|
||||||
|
|
||||||
If using Ubuntu 16.10 also install GPG version 1 (as GPG version 2 is the new default for this distribution and not yet supported by Mayan EDMS) ::
|
|
||||||
|
|
||||||
apt-get install gnupg1 -y
|
|
||||||
|
|
||||||
|
|
||||||
Mac OSX
|
|
||||||
-------
|
|
||||||
|
|
||||||
Mayan EDMS is dependent on a number of binary packages and the recommended
|
|
||||||
way is to use a package manager such as `MacPorts <https://www.macports.org/>`_
|
|
||||||
or `Homebrew <http://brew.sh/>`_.
|
|
||||||
|
|
||||||
|
|
||||||
Use MacPorts to install binary dependencies
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
With MacPorts installed run the command:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
sudo port install python-dev gcc tesseract-ocr unpaper \
|
|
||||||
python-virtualenv ghostscript libjpeg-dev libpng-dev \
|
|
||||||
poppler-utils
|
|
||||||
|
|
||||||
Set the Binary paths
|
|
||||||
********************
|
|
||||||
|
|
||||||
Mayan EDMS by default will look in /usr/bin/ for the binary files it needs
|
|
||||||
so either you can symlink the binaries installed via MacPorts in /opt/local/bin/
|
|
||||||
to /usr/bin/ with ...
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
sudo ln -s /opt/local/bin/tesseract /usr/bin/tesseract
|
|
||||||
|
|
||||||
Alternatively, set the paths in the ``settings/locals.py``
|
|
||||||
|
|
||||||
.. code-block:: python
|
|
||||||
|
|
||||||
LIBREOFFICE_PATH = '/Applications/LibreOffice.app/Contents/MacOS/soffice'
|
|
||||||
|
|
||||||
Or Use Homebrew
|
|
||||||
~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
With Homebrew installed run the command:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
brew install python gcc tesseract unpaper poppler libpng postgresql
|
|
||||||
|
|
||||||
Set the Binary paths
|
|
||||||
********************
|
|
||||||
|
|
||||||
Mayan EDMS by default will look in /usr/bin/ for the binary files it needs.
|
|
||||||
You can symlink the binaries installed via brew in /usr/local/bin/
|
|
||||||
to /usr/bin/ with:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
sudo ln -s /usr/local/bin/tesseract /usr/bin/tesseract && \
|
|
||||||
sudo ln -s /usr/local/bin/unpaper /usr/bin/unpaper && \
|
|
||||||
sudo ln -s /usr/local/bin/pdftotext /usr/bin/pdftotext && \
|
|
||||||
sudo ln -s /usr/local/bin/gs /usr/bin/gs
|
|
||||||
|
|
||||||
Alternatively, set the paths in the ``settings/locals.py``
|
|
||||||
|
|
||||||
.. code-block:: python
|
|
||||||
|
|
||||||
LIBREOFFICE_PATH = '/Applications/LibreOffice.app/Contents/MacOS/soffice'
|
|
||||||
|
|
||||||
|
|
||||||
Common steps
|
|
||||||
------------
|
|
||||||
Switch to superuser::
|
|
||||||
|
|
||||||
sudo -i
|
|
||||||
|
|
||||||
Change to the directory where the project will be deployed::
|
|
||||||
|
|
||||||
cd /usr/share
|
|
||||||
|
|
||||||
Create the Python virtual environment for the installation::
|
|
||||||
|
|
||||||
virtualenv mayan-edms
|
|
||||||
|
|
||||||
Activate the virtualenv::
|
|
||||||
|
|
||||||
source mayan-edms/bin/activate
|
|
||||||
|
|
||||||
Install Mayan EDMS from PyPI::
|
|
||||||
|
|
||||||
pip install mayan-edms
|
|
||||||
|
|
||||||
Install the Python client for PostgreSQL, Redis, and uWSGI::
|
|
||||||
|
|
||||||
pip install psycopg2 redis uwsgi
|
|
||||||
|
|
||||||
Create the database for the installation::
|
|
||||||
|
|
||||||
sudo -u postgres createuser -P mayan (provide password)
|
|
||||||
sudo -u postgres createdb -O mayan mayan
|
|
||||||
|
|
||||||
Create the directory for the log files::
|
|
||||||
|
|
||||||
mkdir /var/log/mayan
|
|
||||||
|
|
||||||
Change the current directory to be the one of the installation::
|
|
||||||
|
|
||||||
cd mayan-edms
|
|
||||||
|
|
||||||
Make a convenience symbolic link::
|
|
||||||
|
|
||||||
ln -s lib/python2.7/site-packages/mayan .
|
|
||||||
|
|
||||||
Create an initial settings file::
|
|
||||||
|
|
||||||
mayan-edms.py createsettings
|
|
||||||
|
|
||||||
Append the following to the ``mayan/settings/local.py`` file, paying attention to replace the ``PASSWORD`` value::
|
|
||||||
|
|
||||||
DATABASES = {
|
|
||||||
'default': {
|
|
||||||
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
|
||||||
'NAME': 'mayan',
|
|
||||||
'USER': 'mayan',
|
|
||||||
'PASSWORD': '<password used when creating postgreSQL user>',
|
|
||||||
'HOST': 'localhost',
|
|
||||||
'PORT': '5432',
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
BROKER_URL = 'redis://127.0.0.1:6379/0'
|
|
||||||
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/0'
|
|
||||||
|
|
||||||
If using Ubuntu 16.10, also add this line to the ``mayan/settings/local.py`` file::
|
|
||||||
|
|
||||||
SIGNATURES_GPG_PATH = '/usr/bin/gpg1'
|
|
||||||
|
|
||||||
Migrate the database or initialize the project::
|
|
||||||
|
|
||||||
mayan-edms.py initialsetup
|
|
||||||
|
|
||||||
Disable the default NGINX site::
|
|
||||||
|
|
||||||
rm /etc/nginx/sites-enabled/default
|
|
||||||
|
|
||||||
Create a ``uwsgi.ini`` file with the following contents::
|
|
||||||
|
|
||||||
[uwsgi]
|
|
||||||
chdir = /usr/share/mayan-edms/lib/python2.7/site-packages/mayan
|
|
||||||
chmod-socket = 664
|
|
||||||
chown-socket = www-data:www-data
|
|
||||||
env = DJANGO_SETTINGS_MODULE=mayan.settings.production
|
|
||||||
gid = www-data
|
|
||||||
logto = /var/log/uwsgi/%n.log
|
|
||||||
pythonpath = /usr/share/mayan-edms/lib/python2.7/site-packages
|
|
||||||
master = True
|
|
||||||
max-requests = 5000
|
|
||||||
socket = /usr/share/mayan-edms/uwsgi.sock
|
|
||||||
uid = www-data
|
|
||||||
vacuum = True
|
|
||||||
wsgi-file = /usr/share/mayan-edms/lib/python2.7/site-packages/mayan/wsgi.py
|
|
||||||
|
|
||||||
Create the directory for the uWSGI log files::
|
|
||||||
|
|
||||||
mkdir /var/log/uwsgi
|
|
||||||
|
|
||||||
Create the NGINX site file for Mayan EDMS, ``/etc/nginx/sites-available/mayan``::
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Enable the NGINX site for Mayan EDMS::
|
|
||||||
|
|
||||||
ln -s /etc/nginx/sites-available/mayan /etc/nginx/sites-enabled/
|
|
||||||
|
|
||||||
Create the supervisor file for the uWSGI process, ``/etc/supervisor/conf.d/mayan-uwsgi.conf``::
|
|
||||||
|
|
||||||
[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
|
|
||||||
|
|
||||||
Create the supervisor file for the Celery worker, ``/etc/supervisor/conf.d/mayan-celery.conf``::
|
|
||||||
|
|
||||||
[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
|
|
||||||
|
|
||||||
Collect the static files::
|
|
||||||
|
|
||||||
mayan-edms.py collectstatic --noinput
|
|
||||||
|
|
||||||
Make the installation directory readable and writable by the webserver user::
|
|
||||||
|
|
||||||
chown www-data:www-data /usr/share/mayan-edms -R
|
|
||||||
|
|
||||||
Enable and restart the services [1_]::
|
|
||||||
|
|
||||||
systemctl enable supervisor
|
|
||||||
systemctl restart supervisor
|
|
||||||
systemctl restart nginx
|
|
||||||
|
|
||||||
[1]: https://bugs.launchpad.net/ubuntu/+source/supervisor/+bug/1594740
|
|
||||||
|
|
||||||
.. _Debian: http://www.debian.org/
|
|
||||||
.. _Django: http://www.djangoproject.com/
|
|
||||||
.. _Python: http://www.python.org/
|
|
||||||
.. _SQLite: https://www.sqlite.org/
|
|
||||||
.. _Ubuntu: http://www.ubuntu.com/
|
|
||||||
.. _virtualenv: http://www.virtualenv.org/en/latest/index.html
|
|
||||||
.. _1: https://bugs.launchpad.net/ubuntu/+source/supervisor/+bug/1594740
|
|
||||||
@@ -1,443 +0,0 @@
|
|||||||
.. _development:
|
|
||||||
|
|
||||||
Development
|
|
||||||
===========
|
|
||||||
|
|
||||||
Mayan EDMS is under active development, and contributions are welcome.
|
|
||||||
|
|
||||||
If you have a feature request, suggestion or bug report, please open a new
|
|
||||||
issue on the `GitLab issue tracker`_. To submit patches, please send a merge
|
|
||||||
request on GitLab_.
|
|
||||||
|
|
||||||
.. _GitLab: https://gitlab.com/mayan-edms/mayan-edms/
|
|
||||||
.. _`GitLab issue tracker`: https://gitlab.com/mayan-edms/mayan-edms/issues
|
|
||||||
|
|
||||||
|
|
||||||
Project philosophies
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
How to think about Mayan EDMS when doing changes or adding new features;
|
|
||||||
why things are the way they are in Mayan EDMS:
|
|
||||||
|
|
||||||
- Functionality must be as market/sector independent as possible, code for the
|
|
||||||
95% of use cases.
|
|
||||||
- Each user must be able to configure and customize it to their needs after
|
|
||||||
install.
|
|
||||||
- Abstract as much as possible, each app must be an expert in just one thing,
|
|
||||||
for other things they should use the API/classes/functions of other apps.
|
|
||||||
- Assume as little as possible about anything outside the project
|
|
||||||
(hardware, OS, storage).
|
|
||||||
- Provide Python based abstraction so that a default install runs with a single
|
|
||||||
step.
|
|
||||||
- No hard dependencies on binaries unless there is no other choice.
|
|
||||||
- Provide “drivers” or switchable backends to allow users to fine tune the
|
|
||||||
installation.
|
|
||||||
- Call to binaries only when there is no other choice or the Python choices are
|
|
||||||
not viable/mature/efficient.
|
|
||||||
- Each app is as independent and self contained as possible. Exceptions, the
|
|
||||||
basic requirements: navigation, permissions, common, main.
|
|
||||||
- If an app is meant to be used by more than one other app, it should be as
|
|
||||||
generic as possible in regard to the project and another app will bridge the functionality.
|
|
||||||
|
|
||||||
- Example: since indexing (document_indexing) only applies to documents, the
|
|
||||||
app is specialized and depends on the documents app.
|
|
||||||
|
|
||||||
|
|
||||||
Coding conventions
|
|
||||||
------------------
|
|
||||||
|
|
||||||
Follow PEP8
|
|
||||||
~~~~~~~~~~~
|
|
||||||
Whenever possible, but don't obsess over things like line length:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
$ flake8 --ignore=E501,E128,E122 |less
|
|
||||||
|
|
||||||
To perform automatic PEP8 checks, install flake8's git hook using:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
$ flake8 --install-hook git
|
|
||||||
|
|
||||||
Imports
|
|
||||||
~~~~~~~
|
|
||||||
|
|
||||||
Import order should be:
|
|
||||||
|
|
||||||
- Standard Python modules
|
|
||||||
- Installed Python modules
|
|
||||||
- Core Django modules
|
|
||||||
- Installed Django modules
|
|
||||||
- Mayan EDMS modules
|
|
||||||
- Local imports
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
from __future__ import absolute_import
|
|
||||||
|
|
||||||
# Standard Python library
|
|
||||||
import base64
|
|
||||||
|
|
||||||
# 3rd party installed Python libraries
|
|
||||||
import requests
|
|
||||||
|
|
||||||
# Django core modules
|
|
||||||
from django.db.models import Q
|
|
||||||
from django.template.defaultfilters import slugify
|
|
||||||
from django.utils.translation import ugettext
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
|
||||||
|
|
||||||
# 3rd party installed Django libraries
|
|
||||||
from rest_framework import APIView
|
|
||||||
|
|
||||||
# Mayan apps
|
|
||||||
from metadata.classes import MetadataClass
|
|
||||||
|
|
||||||
# Local app imports (relative)
|
|
||||||
from .conf.settings import (
|
|
||||||
AVAILABLE_INDEXING_FUNCTIONS,
|
|
||||||
MAX_SUFFIX_COUNT, SLUGIFY_PATHS
|
|
||||||
)
|
|
||||||
from .exceptions import MaxSuffixCountReached
|
|
||||||
from .filesystem import (
|
|
||||||
fs_create_index_directory, fs_create_document_link,
|
|
||||||
fs_delete_document_link, fs_delete_index_directory,
|
|
||||||
assemble_suffixed_filename
|
|
||||||
)
|
|
||||||
from .models import Index, IndexInstanceNode, DocumentRenameCount
|
|
||||||
|
|
||||||
All local app module imports are in relative form. Local app module name is to
|
|
||||||
be referenced as little as possible, unless required by a specific feature,
|
|
||||||
trick, restriction (e.g., Runtime modification of the module's attributes).
|
|
||||||
|
|
||||||
Incorrect:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
|
|
||||||
# documents app views.py model
|
|
||||||
from documents.models import Document
|
|
||||||
|
|
||||||
Correct:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
# documents app views.py model
|
|
||||||
from .models import Document
|
|
||||||
|
|
||||||
|
|
||||||
Dependencies
|
|
||||||
~~~~~~~~~~~~
|
|
||||||
Mayan EDMS apps follow a hierarchical model of dependency. Apps import from
|
|
||||||
their parents or siblings, never from their children. Think plugins. A parent
|
|
||||||
app must never assume anything about a possible existing child app. The
|
|
||||||
documents app and the Document model are the basic entities; they must never
|
|
||||||
import anything else. The common and main apps are the base apps.
|
|
||||||
|
|
||||||
|
|
||||||
Variables
|
|
||||||
~~~~~~~~~
|
|
||||||
Naming of variables should follow a Major to Minor convention, usually
|
|
||||||
including the purpose of the variable as the first piece of the name, using
|
|
||||||
underscores as spaces. camelCase is not used in Mayan EDMS.
|
|
||||||
|
|
||||||
Examples:
|
|
||||||
|
|
||||||
Links:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
link_document_page_transformation_list = ...
|
|
||||||
link_document_page_transformation_create = ...
|
|
||||||
link_document_page_transformation_edit = ...
|
|
||||||
link_document_page_transformation_delete = ...
|
|
||||||
|
|
||||||
Constants:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
PERMISSION_SMART_LINK_VIEW = ...
|
|
||||||
PERMISSION_SMART_LINK_CREATE = ...
|
|
||||||
PERMISSION_SMART_LINK_DELETE = ...
|
|
||||||
PERMISSION_SMART_LINK_EDIT = ...
|
|
||||||
|
|
||||||
Classes:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
class Document(models.Model):
|
|
||||||
class DocumentPage(models.Model):
|
|
||||||
class DocumentPageTransformation(models.Model):
|
|
||||||
class DocumentType(models.Model):
|
|
||||||
class DocumentTypeFilename(models.Model):
|
|
||||||
|
|
||||||
|
|
||||||
Strings
|
|
||||||
~~~~~~~
|
|
||||||
Quotation character used in Mayan EDMS for strings is the single quote.
|
|
||||||
Double quote is used for multiple line comments or HTML markup.
|
|
||||||
|
|
||||||
Migrations
|
|
||||||
~~~~~~~~~~
|
|
||||||
Migrations should do only one thing (eg: either create a table, move data to a
|
|
||||||
new table or remove an old table) to aid retrying on failure.
|
|
||||||
|
|
||||||
General
|
|
||||||
~~~~~~~
|
|
||||||
Code should appear in their modules in alphabetic order or in their order of
|
|
||||||
importance if it makes more sense for the specific application. This makes
|
|
||||||
visual scanning easier on modules with a large number of imports, views or
|
|
||||||
classes. Class methods that return a value should be pretended with a
|
|
||||||
``get_`` to differentiate from an object’s properties. When a variable refers
|
|
||||||
to a file it should be named as follows:
|
|
||||||
|
|
||||||
- filename: The file’s name and extension only.
|
|
||||||
- filepath: The entire path to the file including the filename.
|
|
||||||
- path: A path to a directory.
|
|
||||||
|
|
||||||
Flash messages should end with a period as applicable for the language.
|
|
||||||
Only exception is when the tail of the message contains an exceptions message
|
|
||||||
as passed directly from the exception object.
|
|
||||||
|
|
||||||
Source Control
|
|
||||||
--------------
|
|
||||||
|
|
||||||
Mayan EDMS source is controlled with Git_.
|
|
||||||
|
|
||||||
The project is publicly accessible, hosted and can be cloned from **GitLab** using::
|
|
||||||
|
|
||||||
$ git clone https://gitlab.com/mayan-edms/mayan-edms.git
|
|
||||||
|
|
||||||
|
|
||||||
Git branch structure
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
Mayan EDMS follows a simplified model layout based on Vincent Driessen's
|
|
||||||
`Successful Git Branching Model`_ blog post.
|
|
||||||
|
|
||||||
``develop``
|
|
||||||
The "next release" branch, likely unstable.
|
|
||||||
``master``
|
|
||||||
Current production release (|version|).
|
|
||||||
``feature/``
|
|
||||||
Unfinished/unmerged feature.
|
|
||||||
``series/``
|
|
||||||
Released versions.
|
|
||||||
|
|
||||||
|
|
||||||
Each release is tagged separately.
|
|
||||||
|
|
||||||
When submitting patches, please place your code in its own ``feature/`` branch
|
|
||||||
prior to opening a Merge Request on GitLab_.
|
|
||||||
|
|
||||||
.. _Git: http://git-scm.org
|
|
||||||
.. _`Successful Git Branching Model`: http://nvie.com/posts/a-successful-git-branching-model/
|
|
||||||
|
|
||||||
|
|
||||||
Steps to deploy a development version
|
|
||||||
-------------------------------------
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
$ git clone https://gitlab.com/mayan-edms/mayan-edms.git
|
|
||||||
$ cd mayan-edms
|
|
||||||
$ git checkout development
|
|
||||||
$ virtualenv venv
|
|
||||||
$ source venv/bin/activate
|
|
||||||
$ pip install -r requirements.txt
|
|
||||||
$ ./manage.py initialsetup
|
|
||||||
$ ./manage.py runserver
|
|
||||||
|
|
||||||
|
|
||||||
Contributing changes
|
|
||||||
--------------------
|
|
||||||
Once your have created and committed some new code or feature, submit a Pull
|
|
||||||
Request. Be sure to merge with the development branch before doing a Pull
|
|
||||||
Request so that patches apply as cleanly as possible. If there are no conflicts,
|
|
||||||
Merge Requests can be merged directly from the website UI otherwise a manual
|
|
||||||
command line merge has to be done and your patches might take longer to get
|
|
||||||
merged.
|
|
||||||
|
|
||||||
|
|
||||||
Debugging
|
|
||||||
---------
|
|
||||||
|
|
||||||
Mayan EDMS makes extensive use of Django's new `logging capabilities`_.
|
|
||||||
By default debug logging for all apps is turned on. If you wish to customize
|
|
||||||
how logging is managed turn off automatic logging by setting
|
|
||||||
`COMMON_AUTO_LOGGING` to ``False`` and add the following lines to your
|
|
||||||
``settings/local.py`` file::
|
|
||||||
|
|
||||||
LOGGING = {
|
|
||||||
'version': 1,
|
|
||||||
'disable_existing_loggers': True,
|
|
||||||
'formatters': {
|
|
||||||
'verbose': {
|
|
||||||
'format': '%(levelname)s %(asctime)s %(name)s %(process)d %(thread)d %(message)s'
|
|
||||||
},
|
|
||||||
'intermediate': {
|
|
||||||
'format': '%(name)s <%(process)d> [%(levelname)s] "%(funcName)s() %(message)s"'
|
|
||||||
},
|
|
||||||
'simple': {
|
|
||||||
'format': '%(levelname)s %(message)s'
|
|
||||||
},
|
|
||||||
},
|
|
||||||
'handlers': {
|
|
||||||
'console':{
|
|
||||||
'level':'DEBUG',
|
|
||||||
'class':'logging.StreamHandler',
|
|
||||||
'formatter': 'intermediate'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
'loggers': {
|
|
||||||
'documents': {
|
|
||||||
'handlers':['console'],
|
|
||||||
'propagate': True,
|
|
||||||
'level':'DEBUG',
|
|
||||||
},
|
|
||||||
'common': {
|
|
||||||
'handlers':['console'],
|
|
||||||
'propagate': True,
|
|
||||||
'level':'DEBUG',
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Likewise, to see the debug output of the ``tags`` app, just add the following inside the ``loggers`` block::
|
|
||||||
|
|
||||||
|
|
||||||
'tags': {
|
|
||||||
'handlers':['console'],
|
|
||||||
'propagate': True,
|
|
||||||
'level':'DEBUG',
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
.. _`logging capabilities`: https://docs.djangoproject.com/en/dev/topics/logging
|
|
||||||
|
|
||||||
|
|
||||||
Documentation
|
|
||||||
-------------
|
|
||||||
|
|
||||||
The documentation is written in `reStructured Text`_ format, processed with
|
|
||||||
Sphinx_, and resides in the ``docs`` directory. In order to build it, you will
|
|
||||||
first need to install the documentation editing dependencies with::
|
|
||||||
|
|
||||||
$ pip install -r requirements/documentation.txt
|
|
||||||
|
|
||||||
Then, to build an HTML version of the documentation, run the following command
|
|
||||||
from the **docs** directory::
|
|
||||||
|
|
||||||
$ make docs_serve
|
|
||||||
|
|
||||||
The generated documentation can be viewed by browsing to http://127.0.0.1:8000
|
|
||||||
or by browsing to the ``docs/_build/html`` directory.
|
|
||||||
|
|
||||||
You can also generate the documentation in formats other than HTML. Consult the
|
|
||||||
Sphinx_ documentation for more details.
|
|
||||||
|
|
||||||
.. _`reStructured Text`: http://docutils.sourceforge.net/rst.html
|
|
||||||
.. _Sphinx: http://sphinx.pocoo.org
|
|
||||||
|
|
||||||
|
|
||||||
Installable package
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
Source file package
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
This is the sequence of step used to produce an installable package:
|
|
||||||
|
|
||||||
1. Generate the packaged version (will produce dist/mayan-edms-x.y.z.tar.gz)::
|
|
||||||
|
|
||||||
$ make sdist
|
|
||||||
|
|
||||||
2. Do a test install::
|
|
||||||
|
|
||||||
$ cd /tmp
|
|
||||||
$ virtualenv venv
|
|
||||||
$ source venv/bin/activate
|
|
||||||
$ pip install <path of the Git repository>/dist/mayan-edms-x.y.z.tar.gz
|
|
||||||
$ mayan-edms.py initialsetup
|
|
||||||
$ mayan-edms.py runserver
|
|
||||||
|
|
||||||
|
|
||||||
Wheel package
|
|
||||||
~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
1. Install the development requirements::
|
|
||||||
|
|
||||||
$ pip install -r requirements/development.txt
|
|
||||||
|
|
||||||
2. Create wheel package using the makefile::
|
|
||||||
|
|
||||||
$ make wheel
|
|
||||||
|
|
||||||
3. Do a test install::
|
|
||||||
|
|
||||||
$ cd /tmp
|
|
||||||
$ virtualenv venv
|
|
||||||
$ source venv/bin/activate
|
|
||||||
$ pip install <path of the Git repository>/dist/mayan_edms-x.y.z-py2-none-any.whl
|
|
||||||
$ mayan-edms.py initialsetup
|
|
||||||
$ mayan-edms.py runserver
|
|
||||||
|
|
||||||
|
|
||||||
Version numbering
|
|
||||||
~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Mayan EDMS uses the Semantic Versioning (http://semver.org/) method to choose
|
|
||||||
version numbers along with Python's PEP-0440 (https://www.python.org/dev/peps/pep-0440/)
|
|
||||||
to format them.
|
|
||||||
|
|
||||||
X.YaN # Alpha release
|
|
||||||
X.YbN # Beta release
|
|
||||||
X.YrcN # Release Candidate
|
|
||||||
X.Y # Final release
|
|
||||||
|
|
||||||
|
|
||||||
Release checklist
|
|
||||||
~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
1. Check for missing migrations::
|
|
||||||
|
|
||||||
$ ./manage.py makemigrations
|
|
||||||
|
|
||||||
2. Synchronize translations::
|
|
||||||
|
|
||||||
$ make translations_pull
|
|
||||||
|
|
||||||
3. Compile translations::
|
|
||||||
|
|
||||||
$ make translations_compile
|
|
||||||
|
|
||||||
4. Write release notes.
|
|
||||||
5. Update changelog.
|
|
||||||
6. Update requirements version in `setup.py`
|
|
||||||
7. Bump version in `mayan/__init__.py`
|
|
||||||
8. Build source package and test::
|
|
||||||
|
|
||||||
$ make test_sdist_via_docker_ubuntu
|
|
||||||
|
|
||||||
9. Build wheel package and test::
|
|
||||||
|
|
||||||
$ make test_whell_via_docker_ubuntu
|
|
||||||
|
|
||||||
10. Tag version::
|
|
||||||
|
|
||||||
$ git tag -a vX.Y.Z -m "Version X.Y.Z"
|
|
||||||
|
|
||||||
11. Push tag upstream::
|
|
||||||
|
|
||||||
$ git push --tags
|
|
||||||
|
|
||||||
12. Build and upload a test release::
|
|
||||||
|
|
||||||
$ make release_test_via_docker_ubuntu
|
|
||||||
|
|
||||||
13. Build and upload a final release::
|
|
||||||
|
|
||||||
$ make release_via_docker_ubuntu
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
==============
|
|
||||||
Document types
|
|
||||||
==============
|
|
||||||
|
|
||||||
The basic unit of data in Mayan EDMS is the ``document type``. A document
|
|
||||||
type can be interpreted also as a document category, a document class, or a
|
|
||||||
document template. Document types need to be created before documents can be
|
|
||||||
uploaded. It is not possible to upload documents without assigning them a
|
|
||||||
document type. Examples of document type: **invoices**, **blueprints**,
|
|
||||||
**receipts**.
|
|
||||||
|
|
||||||
Settings and attributes are applied to document types and documents will
|
|
||||||
inherit those settings and attributes based on the document type they were
|
|
||||||
assigned when uploaded into Mayan EDMS. A document can only be of one
|
|
||||||
type at a given moment, but if needed, the type of a document can be changed.
|
|
||||||
Upon changing its type, the document will lose its previous settings and
|
|
||||||
attributes, and will inherit the settings and attributes of its new type.
|
|
||||||
@@ -1,135 +0,0 @@
|
|||||||
===
|
|
||||||
FAQ
|
|
||||||
===
|
|
||||||
|
|
||||||
Frequently asked questions and solutions
|
|
||||||
|
|
||||||
**Q: PostgreSQL vs. MySQL**
|
|
||||||
|
|
||||||
Since Django abstracts database operations from a functional point of view
|
|
||||||
Mayan EDMS will behave exactly the same either way. The only concern
|
|
||||||
would be that MySQL doesn't support transactions for schema modifying
|
|
||||||
commands. The only moment this could cause problems is when running
|
|
||||||
South migrations during upgrades, if a migration fails the database
|
|
||||||
structure is left in a transitory state and has to be reverted manually
|
|
||||||
before trying again.
|
|
||||||
|
|
||||||
|
|
||||||
**Q: _mysql_exceptions. OperationalError: (1267, "Illegal mix of collations (latin1_swedish_ci, IMPLICIT) and (utf8_general_ci, COERCIBLE) for operation '='")**
|
|
||||||
|
|
||||||
* Solution::
|
|
||||||
|
|
||||||
$ mayan-edms.py shell
|
|
||||||
|
|
||||||
>>> from django.db import connection
|
|
||||||
>>> cursor = connection.cursor()
|
|
||||||
>>> cursor.execute('SHOW TABLES')
|
|
||||||
>>> results=[]
|
|
||||||
>>> for row in cursor.fetchall(): results.append(row)
|
|
||||||
>>> for row in results: cursor.execute('ALTER TABLE %s CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;' % (row[0]))
|
|
||||||
|
|
||||||
|
|
||||||
* References:
|
|
||||||
|
|
||||||
- http://www.djangoshmango.com/?p=99
|
|
||||||
- http://stackoverflow.com/questions/1073295/django-character-set-with-mysql-weirdness
|
|
||||||
|
|
||||||
|
|
||||||
**Q: Incorrect string value: ``'\xE2\x80\x95rs6...'`` for column ``'content'`` at row 1**
|
|
||||||
|
|
||||||
When using ``MySQL`` and doing OCR on languages other than English
|
|
||||||
|
|
||||||
* Solution:
|
|
||||||
|
|
||||||
- Use utf-8 collation on MySQL server, or at least in table 'documents_documentpage', 'content' field
|
|
||||||
- Ref: 1- http://groups.google.com/group/django-users/browse_thread/thread/429447086fca6412
|
|
||||||
- Ref: 2- http://markmail.org/message/bqajx2utvmtriixi
|
|
||||||
|
|
||||||
|
|
||||||
**Q: Error "django.db.utils.IntegrityError IntegrityError: (1452, 'Cannot add or update a child row: a foreign key constraint fails (`...`.`...`, CONSTRAINT `..._refs_id_b0252274` FOREIGN KEY (`...`) REFERENCES `...` (`...`))')**
|
|
||||||
|
|
||||||
* Solution:
|
|
||||||
|
|
||||||
- Convert all MySQL tables to the same type, either all MyISAM or InnoDB
|
|
||||||
|
|
||||||
|
|
||||||
**Q: File system links not showing when serving content with ``Samba``**
|
|
||||||
|
|
||||||
* Solution:
|
|
||||||
|
|
||||||
- Disable unix extensions in the [global] section and enable wide links for the file serving share
|
|
||||||
- Example::
|
|
||||||
|
|
||||||
[global]
|
|
||||||
unix extensions = no
|
|
||||||
|
|
||||||
...
|
|
||||||
|
|
||||||
[digitalizacion]
|
|
||||||
path = /var/local/mayan
|
|
||||||
guest ok = yes
|
|
||||||
read only = yes
|
|
||||||
wide links = yes
|
|
||||||
follow symlinks = yes
|
|
||||||
|
|
||||||
|
|
||||||
- Ref: 1- http://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html
|
|
||||||
|
|
||||||
|
|
||||||
**Q: How do you upload a new version of an existing file?**
|
|
||||||
|
|
||||||
* Solution:
|
|
||||||
|
|
||||||
- Choose a document, and go to the versions tab, on the right menu at
|
|
||||||
the bottom under ``Other available action`` there is
|
|
||||||
``Upload new version``. Clicking it will take you to a very similar
|
|
||||||
view as the ``Upload new document`` but you will be able to specify
|
|
||||||
version number and comments for the new version being uploaded.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
**Q: Is virtualenv required as specified in the documentation?**
|
|
||||||
|
|
||||||
* It is not necessary, but it's a strong recommendation mainly to reduce
|
|
||||||
dependency conflicts by isolation from the main Python system install.
|
|
||||||
If not using a virtualenv, pip would install Mayan's dependencies
|
|
||||||
globally coming in conflict with the distribution's prepackaged Python
|
|
||||||
libraries messing other Django projects or Python programs, or another
|
|
||||||
later Python/Django project dependencies coming into conflict causing
|
|
||||||
Mayan to stop working for no apparent reason.
|
|
||||||
|
|
||||||
|
|
||||||
**Q: Mayan EDMS installed correctly and works, but static files are not served**
|
|
||||||
|
|
||||||
Django's development server doesn't serve static files unless the ``DEBUG``
|
|
||||||
option is set to ``True``, this mode of operation should only be used for
|
|
||||||
development or testing. For production deployments the management command::
|
|
||||||
|
|
||||||
$ mayan-edms.py collectstatic
|
|
||||||
|
|
||||||
should be used and the resulting ``static`` folder served from a webserver.
|
|
||||||
For more information, read https://docs.djangoproject.com/en/dev/howto/static-files/
|
|
||||||
and https://docs.djangoproject.com/en/1.2/howto/static-files/ or
|
|
||||||
http://mayan-edms-ru.blogspot.com/2011/11/blog-post_09.html
|
|
||||||
|
|
||||||
|
|
||||||
**Q: Can you change the display order of documents...i.e can they be in alphabetical order?**
|
|
||||||
|
|
||||||
A the moment no, but it is something being considered.
|
|
||||||
|
|
||||||
**Q: Does Mayan EDMS work with Python 3?**
|
|
||||||
|
|
||||||
Not at the moment. When all the projects and libraries upon which Mayan is
|
|
||||||
dependent support Python 3 then will the project move to fully support Python 3.
|
|
||||||
|
|
||||||
**Q: The watched folder feature is not working**
|
|
||||||
|
|
||||||
Make sure that the Celery BEAT scheduler is running correctly as it is the element
|
|
||||||
that triggers the periodics tasks.
|
|
||||||
|
|
||||||
**Q: How to do LDAP authentication**
|
|
||||||
|
|
||||||
A sample settings file called ldap_connection_settings.py is included in the
|
|
||||||
contrib/settings/ folder of the repository showing how to setup LDAP
|
|
||||||
authentication.
|
|
||||||
|
|
||||||
@@ -1,107 +0,0 @@
|
|||||||
========
|
|
||||||
Features
|
|
||||||
========
|
|
||||||
|
|
||||||
* :doc:`Document versioning <../topics/versioning>`.
|
|
||||||
|
|
||||||
* Store many versions of the same document, download or revert to a previous
|
|
||||||
version.
|
|
||||||
|
|
||||||
* :doc:`Electronic signature verification <../topics/signatures>`.
|
|
||||||
|
|
||||||
* Check the authenticity of documents by verifying their embedded
|
|
||||||
cryptographic signatures or upload detached signatures for document
|
|
||||||
signed after they were stored.
|
|
||||||
|
|
||||||
* Collaboration tools.
|
|
||||||
|
|
||||||
* Discuss documents, or comment on new versions of a document.
|
|
||||||
|
|
||||||
* Office document format support.
|
|
||||||
|
|
||||||
* Mayan EDMS can detect the presence of Libre Office and use it to support
|
|
||||||
word processing files, spreadsheets and presentations.
|
|
||||||
|
|
||||||
* User defined metadata fields.
|
|
||||||
|
|
||||||
* Several metadata fields can be matched to a document type as per technical,
|
|
||||||
legal or structural requirements such as the `Dublin core`_.
|
|
||||||
|
|
||||||
* Dynamic default values for metadata.
|
|
||||||
|
|
||||||
* Metadata fields can have an initial value, which can be static or determined
|
|
||||||
by a template code snippet provided by the user.
|
|
||||||
|
|
||||||
* Documents can be uploaded from different sources.
|
|
||||||
|
|
||||||
* Local file or server side file uploads, multifunctional copier, or even via
|
|
||||||
email.
|
|
||||||
|
|
||||||
* Batch upload many documents with the same metadata.
|
|
||||||
|
|
||||||
* Clone a document's metadata for speedier uploads and eliminate repetitive
|
|
||||||
data entry.
|
|
||||||
|
|
||||||
* Previews for many file formats.
|
|
||||||
|
|
||||||
* Mayan EDMS provides image preview generation for many popular file
|
|
||||||
formats.
|
|
||||||
|
|
||||||
* Full text searching.
|
|
||||||
|
|
||||||
* Documents can be searched by their text content, their metadata or any other
|
|
||||||
file attribute such as name, extension, etc.
|
|
||||||
|
|
||||||
* Configurable document grouping.
|
|
||||||
|
|
||||||
* Automatic linking of documents based on metadata values or document
|
|
||||||
properties.
|
|
||||||
|
|
||||||
* :doc:`Roles support <../topics/permissions>`.
|
|
||||||
|
|
||||||
* It is possible to create an unlimited amount of different roles not being
|
|
||||||
restricted to the traditional admin, operator, guest paradigm.
|
|
||||||
|
|
||||||
* :doc:`Fine grained permissions system <../topics/permissions>`.
|
|
||||||
|
|
||||||
* There is a permission for every atomic operation performed by users.
|
|
||||||
|
|
||||||
* Multi page document support.
|
|
||||||
|
|
||||||
* Multiple page PDF and TIFF files are supported.
|
|
||||||
|
|
||||||
* Automatic OCR processing.
|
|
||||||
|
|
||||||
* The task of transcribing text from documents via OCR can be distributed
|
|
||||||
among several physical or virtual computers to decrease load and increase
|
|
||||||
availability.
|
|
||||||
|
|
||||||
* Multilingual user interface.
|
|
||||||
|
|
||||||
* Mayan EDMS being written using the Django_ framework, can be translated
|
|
||||||
to practically any language spoken in the world. For a list of translated
|
|
||||||
languages have a look at the Transifex_ project location.
|
|
||||||
|
|
||||||
* Multilingual OCR support.
|
|
||||||
|
|
||||||
* The current language of the document is passed to the corresponding OCR
|
|
||||||
engine to increase the text recognition rate.
|
|
||||||
|
|
||||||
* :doc:`Plugable storage backends <../topics/file_storage>`.
|
|
||||||
|
|
||||||
* It is very easy to use 3rd party plugins such as the ones available for
|
|
||||||
Amazon EC2.
|
|
||||||
|
|
||||||
* Color coded tagging.
|
|
||||||
|
|
||||||
* Labeled and color coded tags can be assigned for intuitive recognition.
|
|
||||||
|
|
||||||
* Workflows.
|
|
||||||
|
|
||||||
* Keep track of the state of documents, along with the log of the previous
|
|
||||||
state changes.
|
|
||||||
|
|
||||||
|
|
||||||
.. _`Dublin core`: http://dublincore.org/metadata-basics/
|
|
||||||
.. _Django: https://www.djangoproject.com/
|
|
||||||
.. _Transifex: https://www.transifex.com/projects/p/mayan-edms/
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
============
|
|
||||||
File storage
|
|
||||||
============
|
|
||||||
|
|
||||||
The files are stored and placed under Mayan EDMS "control" to avoid
|
|
||||||
filename clashes each file gets renamed to its ``UUID`` (Universally Unique ID),
|
|
||||||
without extension, and stored in a simple flat arrangement in a directory.
|
|
||||||
|
|
||||||
.. blockdiag::
|
|
||||||
|
|
||||||
blockdiag {
|
|
||||||
file [ label = 'mayan_1-1.pdf', width=120];
|
|
||||||
document [ label = 'mayan/media/document_storage/ab6c1cfe-8a8f-4a30-96c9-f54f606b9248', width=450];
|
|
||||||
file -> document [label = "upload"];
|
|
||||||
|
|
||||||
file -> document;
|
|
||||||
}
|
|
||||||
|
|
||||||
This doesn't stop access to the files but renaming, moving or updating
|
|
||||||
directly them is not recommended because it would throw the database out
|
|
||||||
of sync.
|
|
||||||
|
|
||||||
Because Mayan EDMS components are as decoupled from each other as possible,
|
|
||||||
storage in this case is decoupled and its behavior is controlled
|
|
||||||
not by the project but by the ``Storage`` module class. All the other
|
|
||||||
modules don't make any assumptions about how the actual document files are
|
|
||||||
stored. This way files can be saved locally, over the network or even across
|
|
||||||
the Internet and everything will still operate exactly the same.
|
|
||||||
|
|
||||||
The default file storage backend: ``storage.backends.filebasedstorage.FileBasedStorage``
|
|
||||||
is a simple backend that only supports paths and not IP addresses. In case you
|
|
||||||
are interested in using remote volumes to store documents (NFS, SAMBA), first
|
|
||||||
mount these volumes so that they appear as a directories to Mayan EDMS. For
|
|
||||||
direct support for remote volumes a custom backend would be needed such as those
|
|
||||||
provided by the Django Storages project (https://django-storages.readthedocs.org/en/latest/).
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user