Compare commits

..

2 Commits

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

View File

@@ -1,14 +1,10 @@
image: ubuntu:16.10
image: python:2.7
services:
- mysql:latest
- mysql
- 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 python-dev python-pip gcc gnupg1 tesseract-ocr tesseract-ocr-deu ghostscript libjpeg-dev libpng-dev libtiff-dev poppler-utils libreoffice
- apt-get install -qq python-dev gcc tesseract-ocr tesseract-ocr-deu unpaper ghostscript libjpeg-dev libpng-dev libtiff-dev poppler-utils libreoffice
variables:
POSTGRES_DB: "mayan_edms"
POSTGRES_PASSWORD: "postgres"
@@ -16,20 +12,18 @@ variables:
MYSQL_DATABASE: "mayan_edms"
test:mysql:
script:
- apt-get install -qq libmysqlclient-dev
- pip install -r requirements/testing.txt
- pip install mysql-python
- pip install -q mysql-python
- apt-get install -qq mysql-client
- mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD" -e "set global character_set_server=utf8mb4;"
- mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD" -e "ALTER DATABASE $MYSQL_DATABASE CHARACTER SET utf8 COLLATE utf8_unicode_ci;"
- coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci.db_mysql --nomigrations
- bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN
tags:
- mysql
test:postgres:
script:
- apt-get install -qq libpq-dev
- pip install -r requirements/testing.txt
- pip install psycopg2
- pip install -q psycopg2
- coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci.db_postgres --nomigrations
- bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN
tags:

View File

@@ -127,16 +127,10 @@ source_lang = en
source_file = mayan/apps/mirroring/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.mirroring-2-0]
file_filter = mayan/apps/mirroring/locale/<lang>/LC_MESSAGES/django.po
[mayan-edms.navigation-2-0]
file_filter = mayan/apps/navigation/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = mayan/apps/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
source_file = mayan/apps/navigation/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.ocr-2-0]

View File

@@ -1,71 +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 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. 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.
License
-------
By contributing your code, you agree to license your contribution under the
terms of the project's license.

View File

@@ -1,112 +1,3 @@
2.2 (2016-XX-XX)
================
- 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).
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.
@@ -119,16 +10,15 @@ the user links
- 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
@@ -200,6 +90,7 @@ the user links
1.1 (2015-02-10)
================
- Uses Celery for background tasks
- Removal of the splash screen
- Adds a home view with common function buttons
@@ -225,6 +116,7 @@ the user links
1.0 (2014-08-27)
================
- New home @ https://github.com/mayan-edms/mayan-edms
- Updated to use Django 1.6
- Translation updates

122
Makefile
View File

@@ -1,122 +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 "test MODULE=<python module name> - Run tests for a single App, module or test class."
@echo "test-all - Run all tests."
@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 "runserver - Run the development server."
@echo "runserver_plus - Run the Django extension's development server."
@echo "shell_plus - Run the shell_plus command."
@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 runtests --settings=mayan.settings.testing --nomigrations
# 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
# 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
# Releases
release: clean
python setup.py sdist bdist_wheel upload
sdist: clean
python setup.py sdist
ls -l dist
wheel: clean
python setup.py bdist_wheel
ls -l dist
# Dev server
runserver:
./manage.py runserver
runserver_plus:
$(BROWSER) http://127.0.0.1:8000
./manage.py runserver_plus --settings=mayan.settings.development
shell_plus:
./manage.py shell_plus --settings=mayan.settings.development
# Security
safety_check:
safety check

View File

@@ -1,4 +1,4 @@
|PyPI badge| |Build Status| |Coverage badge| |Documentation| |License badge| |Python version|
|Build Status| |Coverage badge| |PyPI badge| |Installs badge| |License badge|
|Logo|
@@ -19,6 +19,10 @@ Free Open Source Electronic Document Management System.
|Animation|
Support
-------
Help support further improvements and development by donating at: https://www.patreon.com/siloraptor
License
-------
@@ -27,19 +31,28 @@ This project is open sourced under `Apache 2.0 License`_.
Installation
------------
To install Mayan EDMS, simply do:
To install **Mayan EDMS**, simply do:
.. code-block:: bash
$ virtualenv venv
$ source venv/bin/activate
(venv) $ pip install mayan-edms
(venv) $ mayan-edms.py initialsetup
(venv) $ mayan-edms.py runserver
$ pip install mayan-edms
$ mayan-edms.py initialsetup
$ mayan-edms.py runserver
Point your browser to 127.0.0.1:8000 and use the automatically created admin
account.
Contribute
----------
- Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.
- Fork `the repository`_ on GitLab to start making your changes to the **development** branch (or branch off of it).
- Write a test which shows that the bug was fixed or that the feature works as expected.
- Add yourself to the `contributors file`_.
- Send a merge request.
.. _Website: http://www.mayan-edms.com
.. _Video demostration: http://bit.ly/pADNXv
@@ -47,19 +60,20 @@ account.
.. _Translations: https://www.transifex.com/projects/p/mayan-edms/
.. _Mailing list (via Google Groups): http://groups.google.com/group/mayan-edms
.. _Apache 2.0 License: https://www.apache.org/licenses/LICENSE-2.0.txt
.. _`the repository`: http://gitlab.com/mayan-edms/mayan-edms
.. _`contributors file`: https://gitlab.com/mayan-edms/mayan-edms/blob/master/docs/topics/contributors.rst
.. |Build Status| image:: https://gitlab.com/mayan-edms/mayan-edms/badges/master/build.svg
:target: https://gitlab.com/mayan-edms/mayan-edms/commits/master
.. |Build Status| image:: https://gitlab.com/ci/projects/6169/status.png?ref=master
:target: https://gitlab.com/ci/projects/6169?ref=master
.. |Logo| image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/mayan_logo.png
.. |Animation| image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/overview.gif
.. |Installs badge| image:: http://img.shields.io/pypi/dm/mayan-edms.svg?style=flat
:target: https://crate.io/packages/mayan-edms/
.. |PyPI badge| image:: http://img.shields.io/pypi/v/mayan-edms.svg?style=flat
:target: http://badge.fury.io/py/mayan-edms
.. |License badge| image:: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat
.. |License badge| image:: http://img.shields.io/badge/license-Apache%202.0-green.svg?style=flat
.. |Analytics| image:: https://ga-beacon.appspot.com/UA-52965619-2/mayan-edms/readme?pixel
.. |Coverage badge| image:: https://codecov.io/gitlab/mayan-edms/mayan-edms/coverage.svg?branch=master
:target: https://codecov.io/gitlab/mayan-edms/mayan-edms?branch=master
.. |Documentation| image:: https://readthedocs.org/projects/mayan/badge/?version=latest
:target: http://mayan.readthedocs.io/en/latest
.. |Python version| images:: https://img.shields.io/pypi/pyversions/mayan-edms.svg
|Analytics|

33
Vagrantfile vendored Normal file
View File

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

View File

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

22
contrib/nginx/mayan Normal file
View File

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

View File

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

BIN
docs/_static/api.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

BIN
docs/_static/document_view.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
docs/_static/main.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
docs/_static/page_view.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

BIN
docs/_static/setup.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

BIN
docs/_static/statistics.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
docs/_static/tools.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

View File

@@ -1,4 +1,15 @@
<h3>Support</h3>
<p>
Consulting, support, customization, rebranding, and plug-in development are available. Email for information to: <a href='mailto:info@mayan-edms.com'>info@mayan-edms.com</a>
<h3>Donate</h3>
<p>Help support further improvements and development, via:
<ul>
<li>
- <a href="https://www.paypal.me/RobertoRosario">PayPal.Me</a>
</li>
<li>
- <a href="https://www.patreon.com/siloraptor">Patreon</a>
</li>
<li>- or Gumroad:
<script type="text/javascript" src="https://gumroad.com/js/gumroad.js"></script>
<a href="https://gumroad.com/l/UNApl" class="gumroad-button">Buy Mayan EDMS</a>
</li>
</ul>
</p>

View File

@@ -38,6 +38,7 @@ extensions = ['djangodocs', 'sphinxcontrib.blockdiag']
blockdiag_antialias = True
blockdiag_html_image_format = "SVG"
blockdiag_latex_image_format = "PDF"
blockdiag_tex_image_format = "PDF"
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']

View File

@@ -1,23 +1,21 @@
Welcome to Mayan EDMS!
======================
Mayan EDMS is a `Free Open Source`_ `Electronic Document Management System`_, coded in
**Mayan EDMS** is a `Free Open Source`_ `Electronic Document Management System`_, coded in
the Python language using the Django_ web application framework and released
under the `Apache 2.0 License`_. It provides an electronic vault or repository for electronic documents.
The easiest way to use Mayan EDMS is by using a Debian based Linux distribution
and install it from PyPI with the following commands:
The easiest way to install and try **Mayan EDMS** is by using a Debian based Linux distribution
and installing it from PyPI with the following commands:
.. code-block:: bash
$ sudo apt-get install libjpeg-dev libmagic1 libpng-dev \
libreoffice libtiff-dev gcc ghostscript gnupg python-dev \
python-virtualenv tesseract-ocr poppler-utils -y
$ virtualenv venv
$ source venv/bin/activate
(venv) pip install mayan-edms
(venv) mayan-edms.py initialsetup
(venv) mayan-edms.py runserver
sudo apt-get install libjpeg-dev libmagic1 libpng-dev libreoffice libtiff-dev gcc ghostscript gpgv python-dev python-virtualenv tesseract-ocr unpaper poppler-utils -y
virtualenv venv
source venv/bin/activate
pip install mayan-edms
mayan-edms.py initialsetup
mayan-edms.py runserver
Point your browser to 127.0.0.1:8000 and use the automatically created admin
account.
@@ -35,9 +33,9 @@ account.
Concepts <topics/index>
Development <topics/development>
App creation <topics/app_creation>
Roadmap <topics/roadmap>
Translations <topics/translations>
Contributors <topics/contributors>
Screenshots <topics/screenshots>
Licensing <topics/license>
FAQ <topics/faq>
Contact <topics/contact>

View File

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

View File

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

View File

@@ -6,12 +6,12 @@ Mayan EDMS v0.12 release notes
Welcome to Mayan EDMS v0.12!
This release commemorates Mayan EDMS first aniversary!
This release commemorates **Mayan EDMS** first aniversary!
Overview
========
Aside from new features, the focus of this release of Mayan EDMS also
Aside from new features, the focus of this release of **Mayan EDMS** also
been about improving the code and documentation quality standard
even further. The permission system has been completely overhauled to make
it entire class based. The other big change is the addition of object
@@ -61,7 +61,7 @@ Anonymous user support
~~~~~~~~~~~~~~~~~~~~~~
Anonymous user support is a two tier function, first is the addition of
the `COMMON_ALLOW_ANONYMOUS_ACCESS` configuration option that
allows non authenticated user to browse all the pages of a Mayan EDMS installation.
allows non authenticated user to browse all the pages of a **Mayan EDMS** installation.
The second part of this support is the ability to assign permissions
or individual access to objects to anonymous users.
@@ -89,7 +89,7 @@ the download of several documents in a single compressed file.
Customizable GPG home directory
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Addition of the `SIGNATURES_GPG_HOME` configuration option to let
administrators set Mayan EDMS's GPG instance home directory, used to
administrators set **Mayan EDMS**'s GPG instance home directory, used to
store keyrings and other GPG configuration files.
Out of process bulk uploading
@@ -114,7 +114,7 @@ stage to beta stage. Index configuration menus are now available on the
be populated with document links depending on their metadata and properties.
These populated trees can also be mirrored on the physical filesystem and shared
using Samba or another filesharing server giving users a structured view
of the documents contained within Mayan EDMS from the ``Indexes`` tab
of the documents contained within **Mayan EDMS** from the ``Indexes`` tab
or from a mirrored index shared via the network. A new configuration option
has been added, `DOCUMENT_INDEXING_FILESYSTEM_SERVING`, which maps
the index internal name with the physical directory where such index will be
@@ -127,7 +127,7 @@ Included in this version is a small feedback application, found under the
help determine the priority of the next planned features on the pipeline,
or even help add new features if enough requests are received. All questions
are optional but answering as many as possible will help greatly understand
the need of the Mayan EDMS user base.
the need of the **Mayan EDMS** user base.
Staging file previews
~~~~~~~~~~~~~~~~~~~~~

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,87 +0,0 @@
===============================
Mayan EDMS v2.1.1 release notes
===============================
Released: May 17, 2016
What's new
==========
This is a bugfix release and all users are encouraged to upgrade.
Fix object column resolution issue in navigation app
----------------------------------------------------
Version 2.1 includes a navigation feature that allows model instances from a
queryset generated using the .defer() or .only() Django filter optimization
features to resolve to their parent class transparently. This optimization
caused problems with the sources app which uses a
Missing Tesseract language files
--------------------------------
The Tesseract OCR backend now reports if the tesseract language file is missing
for the requested document's language.
Other changes
-------------
- Ensure the automatic default index is created after the default document type.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #288 <https://gitlab.com/mayan-edms/mayan-edms/issues/288>`_ Can't add sources in mayan-edms 2.1.
* `GitLab issue #289 <https://gitlab.com/mayan-edms/mayan-edms/issues/289>`_ OCR fails with Exception.
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,86 +0,0 @@
===============================
Mayan EDMS v2.1.2 release notes
===============================
Released: May 20, 2016
What's new
==========
This is a bugfix release and all users are encouraged to upgrade.
Language list sorting
---------------------
The document language list and the user locale profile language list are now
sorted to make it easier to find the desired language.
Fixed the metadata lookup options: {{ users }} and {{ groups }}
---------------------------------------------------------------
When configuring metadata type lookup options the {{ users }} and {{ groups }}
special options can be used to display a list of users or a list of groups.
These options where producing a list in the wrong format and were updated.
Other changes
-------------
- Add Makefile for common development tasks
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #290 <https://gitlab.com/mayan-edms/mayan-edms/issues/290>`_ Unicode characters not supported as metadata values
* `GitLab issue #292 <https://gitlab.com/mayan-edms/mayan-edms/issues/292>`_ Sort languages by name not by abbreviation
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,87 +0,0 @@
===============================
Mayan EDMS v2.1.3 release notes
===============================
Released: June 29, 2016
What's new
==========
This is a bug-fix release and all users are encouraged to upgrade.
Temporary files cleanup
-----------------------
When uploading PDF files that had been OCRed by previous software, the text
parser backend that uses Poppler, would leave behind some temporary files in
the /tmp folder. The issue has been resolved and from the fix a test mixin
system check has been devised that will identify places in the codebase with
similar behaviors, reducing the recurrence of similar issues in the future.
Other changes
-------------
- Add help message when initialsetup migration phase fails. Relates to GitLab issue #296
- Start using self.setdout instead of print as per documentation.
- Fix GitLab issue #295, "When editing a user the top bar jumps to the name of the user".
- Normalize handling of temporary file and directory creation.
- Explicitly check for residual temporary files in tests.
- Add missing temporary file cleanup for office documents.
- Fix file descriptor leak in the document signature download test.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #295 <https://gitlab.com/mayan-edms/mayan-edms/issues/295>`_ When editing a user the top bar jumps to the name of the user
* `GitLab issue #309 <https://gitlab.com/mayan-edms/mayan-edms/issues/309>`_ Temp files quickly filling-up my /tmp (1GB tmpfs)
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,81 +0,0 @@
===============================
Mayan EDMS v2.1.4 release notes
===============================
Released: October 28, 2016
What's new
==========
This is a bug-fix release and all users are encouraged to upgrade.
Other changes
-------------
- Fix statistics namespace list display view
- Fix events list display view
- Update required Django version to 1.8.15
- Update required python-gnupg version to 0.3.9
- Improved orphaned temporary files test mixin
- Re-enable and improve GitLab CI MySQL testing
- Improved GPG handling
- New GPG backend system
- Minor documentation updates
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #311 <https://gitlab.com/mayan-edms/mayan-edms/issues/311>`_ acl page return ContentType:Document
* `GitLab issue #316 <https://gitlab.com/mayan-edms/mayan-edms/issues/316>`_ Error when trying to access the statistics
* `GitLab issue #324 <https://gitlab.com/mayan-edms/mayan-edms/issues/324>`_ Document signature tests fail in Ubuntu 16.10
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,87 +0,0 @@
===============================
Mayan EDMS v2.1.5 release notes
===============================
Released: November 8, 2016
What's new
==========
This is a bug-fix release and all users are encouraged to upgrade.
Other changes
-------------
- Backport resize transformation math operation fix (GitLab #319).
- Update Pillow to 3.1.2
- https://pillow.readthedocs.io/en/3.4.x/releasenotes/3.1.1.html
- https://pillow.readthedocs.io/en/3.4.x/releasenotes/3.1.2.html
- Backport zoom performance improvement (GitLab #334).
- Backport trash can navigation link resolution fix (GitLab #331).
- Improve documentation regarding the use of GPG version 1 (GitLab #333).
- Fix ACL create view HTML response type. (GitLab #335).
- Expland staging folder and watch folder explanation.
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* `GitLab issue #319 <https://gitlab.com/mayan-edms/mayan-edms/issues/319>`_ TransformationResize issue with very "long" image
* `GitLab issue #331 <https://gitlab.com/mayan-edms/mayan-edms/issues/331>`_ Trash List View: Items actions should be limited
* `GitLab issue #333 <https://gitlab.com/mayan-edms/mayan-edms/issues/333>`_ "Unable to run gpg - it may not be available."
* `GitLab issue #334 <https://gitlab.com/mayan-edms/mayan-edms/issues/334>`_ Perfomance improvment: prevent unnecessary image.resize in TransformationZoom
* `GitLab issue #335 <https://gitlab.com/mayan-edms/mayan-edms/issues/335>`_ Wrong HTML Content-Type in ACL->NEW
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -1,73 +0,0 @@
===============================
Mayan EDMS v2.1.6 release notes
===============================
Released: November 23, 2016
What's new
==========
This is a bug-fix release and all users are encouraged to upgrade.
Changes
-------------
- Fix variable name typo in the rotation transformation class.
- Update translations
Removals
--------
* None
Upgrading from a previous version
---------------------------------
Using PIP
~~~~~~~~~
Type in the console::
$ pip install -U mayan-edms
the requirements will also be updated automatically.
Using Git
~~~~~~~~~
If you installed Mayan EDMS by cloning the Git repository issue the commands::
$ git reset --hard HEAD
$ git pull
otherwise download the compressed archived and uncompress it overriding the
existing installation.
Next upgrade/add the new requirements::
$ pip install --upgrade -r requirements.txt
Common steps
~~~~~~~~~~~~
Migrate existing database schema with::
$ mayan-edms.py performupgrade
Add new static media::
$ mayan-edms.py collectstatic --noinput
The upgrade procedure is now complete.
Backward incompatible changes
=============================
* None
Bugs fixed or issues closed
===========================
* None
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

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

View File

@@ -1,96 +0,0 @@
=============================
Mayan EDMS v2.2 release notes
=============================
Released: XX, 2017
What's new
==========
Other changes
-------------
- Remove the installation app
- Add support for 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
- Dashboard
- Moved licenses to their own module in every app
- Update project to work with Django 1.10.4
- Tags are alphabetically ordered by label
- Stop loading theme fonts from the web
- 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
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
Common steps
~~~~~~~~~~~~
Remove deprecated requirements::
$ pip uninstall -y -r removals.txt 2> /dev/null
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 #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 #307 <https://gitlab.com/mayan-edms/mayan-edms/issues/307>`_ Enter multiple Tags at once
* `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 #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
.. _PyPI: https://pypi.python.org/pypi/mayan-edms/

View File

@@ -2,19 +2,19 @@
Release notes
=============
Release notes for the official Mayan EDMS releases. Each release note will tell you
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
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,
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
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
@@ -22,17 +22,9 @@ versions of the documentation contain the release notes for any later releases.
.. toctree::
:maxdepth: 1
2.2
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
2.0.1
2.0.2
1.0 series
----------

View File

@@ -2,7 +2,7 @@
Access control lists
====================
Besides the permissions system explained in :doc:`permissions`, Mayan EDMS
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

View File

@@ -2,7 +2,7 @@
App creation
============
Mayan EDMS apps are essentially Django app with some extra code to register
**Mayan EDMS** apps are essentially Django app with some extra code to register
navigation, permissions and other relationships.
@@ -21,7 +21,7 @@ App modules
- api_views.py
REST API views go here. Mayan EDMS uses Django REST Framework API view
REST API views go here. **Mayan EDMS** uses Django REST Framework API view
classes.
- apps.py
@@ -135,7 +135,7 @@ 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
The basic views used to create, edit, view and delete objects in **Mayan EDMS**
are: SingleObjectCreateView, SingleObjectDetailView, SingleObjectEditView,
and SingleObjectListView

View File

@@ -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``

View File

@@ -15,14 +15,14 @@ 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.
**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
**Mayan EDMS** has an official Twitter account, `@mayanedms
<http://twitter.com/mayanedms>`_, which is used for announcements and occasional
related news tidbits.
@@ -30,7 +30,7 @@ related news tidbits.
Bugs/ticket tracker
-------------------
Report bugs with Mayan EDMS or search existing ones using Gitlab's `ticket tracker`_.
Report bugs with **Mayan EDMS** or search existing ones using Github's `ticket tracker`_.
.. _archives of the mayan-edms mailing list: http://groups.google.com/group/mayan-edms/

View File

@@ -8,7 +8,7 @@ Contributors
How to contribute?
------------------
You can help further the development of Mayan EDMS by testing, reporting
You can help further the development of **Mayan EDMS** by testing, reporting
bugs, submitting documentation or code patches.
Lead developer

View File

@@ -2,17 +2,15 @@
Deploying
=========
Below are some ways to deploye and use Mayan EDMS. Do use more than one method.
OS "bare metal"
===============
OS "bare metal" method
======================
Like other Django based projects Mayan EDMS can be deployed in a wide variety
Like other Django based projects **Mayan EDMS** can be deployed in a wide variety
of ways. The method provided below is only a bare minimum example.
These instructions are independent of the instructions mentioned in the
:doc:`installation` chapter but assume you have already made a test install to
test the compatibility of your operating system. These instruction are for
Ubuntu 16.10.
Ubuntu 15.04.
Switch to superuser::
@@ -22,12 +20,8 @@ Install all system dependencies::
apt-get install 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
libtiff-dev gcc ghostscript gpgv python-dev python-virtualenv \
tesseract-ocr unpaper poppler-utils -y
Change to the directory where the project will be deployed::
@@ -86,10 +80,6 @@ Append the following to the ``mayan/settings/local.py`` file, paying attention t
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
@@ -119,7 +109,7 @@ 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``::
Create the NGINX site file for **Mayan EDMS**, ``/etc/nginx/sites-available/mayan``::
server {
listen 80;
@@ -144,7 +134,7 @@ Create the NGINX site file for Mayan EDMS, ``/etc/nginx/sites-available/mayan``:
}
}
Enable the NGINX site for Mayan EDMS::
Enable the NGINX site for **Mayan EDMS**::
ln -s /etc/nginx/sites-available/mayan /etc/nginx/sites-enabled/
@@ -196,12 +186,11 @@ Make the installation directory readable and writable by the webserver user::
Restart the services::
systemctl enable supervisor
systemctl restart supervisor
systemctl restart nginx
/etc/init.d/nginx restart
/etc/init.d/supervisor restart
Docker method
=============
Docker
======
Deploy the Docker image stack::
@@ -209,15 +198,15 @@ Deploy the Docker image stack::
docker run --name redis -d redis
docker run --name mayan-edms -p 80:80 --link postgres:postgres --link redis:redis -e POSTGRES_DB=mayan -e POSTGRES_USER=mayan -e POSTGRES_PASSWORD=mysecretpassword -v /usr/local/lib/python2.7/dist-packages/mayan/media -d mayanedms/monolithic
After the Mayan EDMS container finishes initializing (about 5 minutes), it will
After the **Mayan EDMS** container finishes initializing (about 5 minutes), it will
be available by browsing to http://127.0.0.1. You can inspect the initialization
with::
docker logs mayan-edms
Docker Compose method
=====================
Docker Compose
==============
Create a file named ``environment`` with the following content::
@@ -253,14 +242,14 @@ Launch the entire stack (Postgres, Redis, and Mayan EDMS) using::
docker-compose -f docker-compose.yml -p mayanedms up -d
After the Mayan EDMS container finishes initializing (about 5 minutes), it will
After the **Mayan EDMS** container finishes initializing (about 5 minutes), it will
be available by browsing to http://127.0.0.1. You can inspect the initialization
with::
docker logs mayanedms_mayan-edms_1
Vagrant method
==============
Vagrant
=======
Make sure you have Vagrant and a provider properly installed as per
https://docs.vagrantup.com/v2/installation/index.html
Clone the repository and execute::

View File

@@ -3,11 +3,11 @@
Development
===========
Mayan EDMS is under active development, and contributions are welcome.
**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_.
issue on the `GitLab issue tracker`_. To submit patches, please send a pull
request on GitLab_. Make sure to add yourself to the :ref:`contributors` file.
.. _GitLab: https://gitlab.com/mayan-edms/mayan-edms/
.. _`GitLab issue tracker`: https://gitlab.com/mayan-edms/mayan-edms/issues
@@ -16,8 +16,8 @@ request on GitLab_.
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.
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.
@@ -125,7 +125,7 @@ Correct:
Dependencies
~~~~~~~~~~~~
Mayan EDMS apps follow a hierarchical model of dependency. Apps import from
**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
@@ -136,7 +136,7 @@ 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.
underscores as spaces. camelCase is not used in **Mayan EDMS**.
Examples:
@@ -171,7 +171,7 @@ Classes:
Strings
~~~~~~~
Quotation character used in Mayan EDMS for strings is the single quote.
Quotation character used in **Mayan EDMS** for strings is the single quote.
Double quote is used for multiple line comments or HTML markup.
Migrations
@@ -199,7 +199,7 @@ as passed directly from the exception object.
Source Control
--------------
Mayan EDMS source is controlled with Git_.
**Mayan EDMS** source is controlled with Git_.
The project is publicly accessible, hosted and can be cloned from **GitLab** using::
@@ -209,7 +209,7 @@ The project is publicly accessible, hosted and can be cloned from **GitLab** usi
Git branch structure
--------------------
Mayan EDMS follows a simplified model layout based on Vincent Driessen's
**Mayan EDMS** follows a simplified model layout based on Vincent Driessen's
`Successful Git Branching Model`_ blog post.
``develop``
@@ -299,7 +299,7 @@ merged.
Debugging
---------
Mayan EDMS makes extensive use of Django's new `logging capabilities`_.
**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

View File

@@ -2,7 +2,7 @@
Document types
==============
The basic unit of data in Mayan EDMS is the ``document type``. A document
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
@@ -11,7 +11,7 @@ document type. Examples of document type: **invoices**, **blueprints**,
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
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.

View File

@@ -7,7 +7,7 @@ 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
**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
@@ -90,7 +90,7 @@ When using ``MySQL`` and doing OCR on languages other than English
**Q: Is virtualenv required as specified in the documentation?**
* It is not necessary, but it's a strong recommendation mainly to reduce
* It is not necessary, it's just 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
@@ -116,13 +116,3 @@ 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.

View File

@@ -19,7 +19,7 @@ Features
* Office document format support.
* Mayan EDMS can detect the presence of Libre Office and use it to 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.
@@ -44,7 +44,7 @@ Features
* Previews for many file formats.
* Mayan EDMS provides image preview generation for many popular file
* **Mayan EDMS** provides image preview generation for many popular file
formats.
* Full text searching.
@@ -78,7 +78,7 @@ Features
* Multilingual user interface.
* Mayan EDMS being written using the Django_ framework, can be translated
* **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.

View File

@@ -2,7 +2,7 @@
File storage
============
The files are stored and placed under Mayan EDMS "control" to avoid
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.
@@ -20,16 +20,9 @@ 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,
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/).

View File

@@ -1,7 +1,7 @@
Concepts
========
Introductions to all the key parts of Mayan EDMS you'll need to know:
Introductions to all the key parts of **Mayan EDMS** you'll need to know:
.. toctree::
:maxdepth: 1
@@ -15,12 +15,8 @@ Introductions to all the key parts of Mayan EDMS you'll need to know:
checkouts
versioning
signatures
ocr_backend
indexes
languages
smart_links
tags
mailing
settings
file_storage
backups
screenshots

View File

@@ -17,7 +17,7 @@ Example:
- Metadata type: ``Product year``, associated as a required metadata for the document type ``Product sheet``.
- Index: ``Product sheets per year``, and associated to the document type ``Product sheet``.
- Index slug: ``product-sheets-per-year``. Slugs are internal unique identifiers that can be used by other Mayan EDMS modules to reference each index.
- Index slug: ``product-sheets-per-year``. Slugs are internal unique identifiers that can be used by other **Mayan EDMS** modules to reference each index.
- Index tree template as follows:
.. blockdiag::

View File

@@ -2,11 +2,11 @@
Installation
============
Mayan EDMS should be deployed like any other Django_ project and
**Mayan EDMS** should be deployed like any other Django_ project and
preferably using virtualenv_.
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
recommended to better understand why **Mayan EDMS** does some of the things it
does.
Bellow are the step needed for a test install.
@@ -20,13 +20,13 @@ Ubuntu
If using a Debian_ or Ubuntu_ based Linux distribution, get the executable
requirements using::
sudo apt-get install libjpeg-dev libmagic1 libpng-dev libreoffice libtiff-dev gcc ghostscript gpgv python-dev python-virtualenv tesseract-ocr poppler-utils -y
sudo apt-get install libjpeg-dev libmagic1 libpng-dev libreoffice libtiff-dev gcc ghostscript gpgv python-dev python-virtualenv tesseract-ocr unpaper poppler-utils -y
Mac OSX
-------
Mayan EDMS is dependent on a number of binary packages and the recommended
**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/>`_.
@@ -45,7 +45,7 @@ With MacPorts installed run the command:
Set the Binary paths
********************
Mayan EDMS by default will look in /usr/bin/ for the binary files it needs
**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 ...
@@ -71,7 +71,7 @@ With Homebrew installed run the command:
Set the Binary paths
********************
Mayan EDMS by default will look in /usr/bin/ for the binary files it needs
**Mayan EDMS** by default will look in /usr/bin/ for the binary files it needs
so either you can symlink the binaries installed via brew in /usr/local/bin/
to /usr/bin/ with ...
@@ -99,8 +99,8 @@ Initialize a ``virtualenv`` to deploy the project:
source venv/bin/activate
pip install mayan-edms
By default Mayan EDMS will create a single file SQLite_ database, which makes
it very easy to start using Mayan EDMS. Populate the database with the
By default **Mayan EDMS** will create a single file SQLite_ database, which makes
it very easy to start using **Mayan EDMS**. Populate the database with the
project's schema doing:
.. code-block:: bash
@@ -112,22 +112,14 @@ Point your browser to http://127.0.0.1:8000. If everything was installed
correctly you should see the login screen and panel showing a randomly generated
admin password.
Background tasks and scheduled tasks will not run when using the test server.
Note: Background tasks and scheduled tasks will not run when using the test server.
The ``runserver`` command is only meant for testing, do not use in a production
server.
Note that the default IP address, 127.0.0.1, is not accessible from other
machines on your network. To make your test server viewable to other
machines on the network, use its own IP address (e.g. 192.168.2.1) or 0.0.0.0 or :: (with IPv6 enabled).
You can provide an IPv6 address surrounded by brackets (e.g. [200a::1]:8000). This will automatically enable IPv6 support.
Production use
==============
After making sure everything is running correctly, stop the ``runserver`` command.
Deploy Mayan EDMS using the webserver of your preference. For more information
After making sure everything is running correctly, stop the `runserver` command.
Deploy **Mayan EDMS** using the webserver of your preference. For more information
on deployment instructions and examples, checkout Django's official documentation
on the topic https://docs.djangoproject.com/en/1.7/howto/deployment/
For a simple production deployment setup follow the instructions in the

View File

@@ -1,19 +0,0 @@
=========
Languages
=========
The list of languages choices in the language dropdown used for documents is
based on the current ISO 639 list. This list can be quite extensive. To reduce
the number of languages available use the settings ``DOCUMENTS_LANGUAGE_CHOICES``,
and set it to a nested list of abbreviations + languages names like::
DOCUMENTS_LANGUAGE_CHOICES = (('eng', 'English'), ('spa', 'Spanish'))
The default language to appear on the dropdown can also be configured using::
DOCUMENTS_LANGUAGE = 'spa'
Use the correct ISO 639-3 language abbreviation (https://en.wikipedia.org/wiki/ISO_639)
as this code is used in several subsystems in Mayan EDMS such as the OCR app
to determine how to interpret the document.

View File

@@ -2,7 +2,7 @@
License
=======
Mayan EDMS is distributed under the `Apache 2.0 License`_.
**Mayan EDMS** is distributed under the `Apache 2.0 License`_.
The complete license terms are included below.
.. _Apache 2.0 License: https://www.apache.org/licenses/LICENSE-2.0.txt

View File

@@ -1,17 +0,0 @@
=================
Mailing documents
=================
To be able to send documents via email from inside Mayan EDMS you need to add
and configure the following configuration variables in your
mayan/settings/local.py file::
EMAIL_HOST = 'smtp.gmail.com' # Or similar
EMAIL_PORT = 587
EMAIL_HOST_USER = '<your smtp username>'
EMAIL_HOST_PASSWORD = '<your smtp password>'
EMAIL_USE_TLS = True
"Mail is sent using the SMTP host and port specified in the EMAIL_HOST and EMAIL_PORT settings. The EMAIL_HOST_USER andEMAIL_HOST_PASSWORD settings, if set, are used to authenticate to the SMTP server, and the EMAIL_USE_TLS and EMAIL_USE_SSL settings control whether a secure connection is used."
For more details consult Django's documentation on the topic: https://docs.djangoproject.com/en/1.8/ref/settings/#email-host

View File

@@ -1,21 +0,0 @@
===========
OCR backend
===========
Mayan EDMS ships an OCR backend that uses the FLOSS engine Tesseract
(https://github.com/tesseract-ocr/tesseract/), but it can
use other engines. To support other engines crate a wrapper that subclasess the
``OCRBackendBase`` class defined in mayan/apps/ocr/classes. This subclass should
expose the ``execute`` method. For an example of how the Tesseract backend
is implemented take a look at the file ``mayan/apps/ocr/backends/tesseract.py``
Once you create you own backend, in your local.py settings add the option
OCR_BACKEND and point it to your new OCR backend class path.
The default value of OCR_BACKEND is ``"ocr.backends.tesseract.Tesseract"``
To add support to OCR more languages when using Tesseract, install the
corresponding language file. If using a Debian based OS, this command will
display the available language files:
apt-cache search tesseract-ocr

View File

@@ -2,7 +2,7 @@
Permissions
===========
Mayan EDMS provides very fine control over which actions users can
**Mayan EDMS** provides very fine control over which actions users can
perform. Action control works by allowing ``roles``, that are composed of
``groups`` of ``users`` to be granted a ``permission`` such that the holder of
that permission can exercise it throughout the entire system.

View File

@@ -1,102 +0,0 @@
=======
Roadmap
=======
- Goals for version 2.2:
- Improve workflow system
- Workflow indexing support. Accessor already works ``{{ document.workflows.all.0.get_current_state }}``. Index recalculation after workflow transition is missing.
- Workflow actions. Predefined actions to be execute on document leaving or entering a state or a transition. Example: "Add to folder X", "Attach tag X".
- Add support for state recipients.
- Add workflow document inbox notification.
- Replace indexing and smart linking template language (use Jinja2 instead of Django's).
- Display/find documents by their current workflow state.
- Goals for version 3.0:
- Replace UI.
- General goals:
- Distribution:
- Debian packages. Limited success so far using https://github.com/astraw/stdeb.
- Downloads:
- Transition from filetransfer package to django-downloadview. This task was started and the view ``common.generics.SingleObjectDownloadView`` was created. The ``document_signatures`` app is the first app to use it.
- Notifications:
- Add support for subscribing to a document's events.
- Add support for subscribing to a document type events.
- Add support for subscribing specific events.
- OCR:
- Add image preprocessing for OCR. Increase effectiveness of Tesseract.
- Improve interface with tesseract.
- Fix pytesseract shortcomings via upstream patches or re-implement. Move to PyOCR.
- Python 3:
- Complete support for Python3.
- Find replacement for pdfminer (Python3 support blocker). Use pdfminer.six (#257).
- Simple serving:
- Provide option to serve Mayan EDMS without a webserver (using Tornado o similar). Work started in branch: ``/feature/tornado``
- Source code:
- Implement Developer certificate of origin: http://developercertificate.org/
- Upload wizard:
- Make wizard step configurable. Create ``WirzardStep`` class so apps can add their own upload wizard steps, instead of the steps being hardcoded in the sources app.
- Add upload wizard step to add the new documents to a folder.
- Other
- Use a sequence and not the document upload date to determine the document version sequence. MySQL doesn't store milisecond value in dates and if several version are uploaded in a single second there is no way to know the order or which one is the latests. This is why the document version tests include a 2 second delay. Possible solution: http://schinckel.net/2015/05/17/django-second-autofield/
- Include external app Mayan-EXIF into main code.
- Convert all views from functions to class based views (CBV).
- Increase test coverage.
- Mock external services in tests. For example the ``django_GPG`` app key search and receive tests.
- Pluggable icon app. Make switching icon set easier.
- Reduce dependency on binary executables for a default install.
- Find replacement for ``cssmin`` & ``django-compressor``.
- Find replacement for ``python-gnupg``. Unstable & inconsistent API.
- Google docs integration. Upload document from Google Drive.
- Get ``dumpdata`` and ``loaddata`` working flawlessly. Will allow for easier backups, restores and database backend migrations.
- Make more view asynchronous:
- trash can emptying.
- document delete view.
- Add support for loading settings from environment variables, not just settings/local.py.
- Add generic list ordering. ``django.views.generic.list.MultipleObjectMixin`` (https://docs.djangoproject.com/en/1.8/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin) now supports an ``ordering`` parameter.
- Workaround GitLab CI MySQL test errors. GitLab MySQL's container doesn't support UTF-8 content.
- Add support for downloading the OCR content as a text file.
- Add support to convert any document to PDF. https://gitlab.mister-muffin.de/josch/img2pdf
- Add support for combining documents.
- Add support for splitting documents.
- Add task viewer.
- Add new document source to get documents from an URL.
- Document overlay support. Such as watermarks. https://gist.github.com/umrashrf/8616550
- Add support for metadata mapping files. CSV file containing filename to metadata values mapping, useful for bulk upload and migrations.
- Add support for registering widgets to the home screen.
- Merge mimetype and converter apps.
- Add entry in About menu to check latest Mayan EDMS version via PyPI.
- Add GPG key generation.
- Add documentation section on editing the settings/local.py file.
- Add documentation section with warning about using runserver.
- Replace ``urlpatterns = patterns( ''``, with Python lists. Django recommendation for post 1.7.
- If SourceColumn label is None take description from model. Avoid unnecessary translatable strings.
- Metadata widgets (Date, time, timedate).
- Datatime widget: https://github.com/smalot/bootstrap-datetimepicker
- Separate Event class instances with a parent namespace class: EventNamespace.
- Add events for document signing app (uploaded detached signateure, signed document, deleted signature)
- A configurable conversion process. Being able to invoke different binaries for file conversion, as opposed to the current libreoffice only solution.
- A tool in the admin interface to mass (re)convert the files (basically the page count function, but then applied on all documents).
- Find solution so that documents in watched folders are not processed until they are ready. Use case scanning directly to scanned folders.

View File

@@ -0,0 +1,64 @@
===========
Screenshots
===========
.. figure:: /_static/main.png
:figwidth: 40%
:scale: 30 %
:alt: Home screen
:align: left
Home screen
.. figure:: /_static/page_view.png
:figwidth: 40%
:scale: 30 %
:alt: Page view
:align: right
Page view
.. figure:: /_static/document_view.png
:figwidth: 40%
:scale: 30 %
:alt: Document view
:align: left
Document view
.. figure:: /_static/api.png
:figwidth: 40%
:scale: 30 %
:alt: REST API
:align: right
REST API
.. figure:: /_static/tools.png
:figwidth: 40%
:scale: 30 %
:alt: Tools
:align: left
Tools
.. figure:: /_static/setup.png
:figwidth: 40%
:scale: 30 %
:alt: Setup
:align: right
Setup
.. figure:: /_static/statistics.png
:figwidth: 40%
:scale: 30 %
:alt: Statistics
:align: left
Statistics

View File

@@ -1,12 +0,0 @@
========
Settings
========
When Mayan EDMS is initially installed a ``local.py`` file is created inside the
``/mayan/settings/`` folder. So if you installed Mayan EDMS according to the
instructions provided in this documentation your ``local.py`` should be located in
the directory: ``/usr/share/mayan-edms/mayan/settings/local.py``.
For a list of all the configuration options, go to "Setup" then "Settings" on
your browser. This is also a good place to check if your overrided setting
option value in your ``local.py`` file is being interpreted correctly.

View File

@@ -2,7 +2,7 @@
Document signatures
===================
Mayan EDMS supports two types of document signatures: embedded and
**Mayan EDMS** supports two types of document signatures: embedded and
detached signatures. When a document with an embedded signature is
uploaded, this signature is readily detected as part of the document
inspection step. The status of the signature can be verified by accessing the
@@ -21,6 +21,4 @@ keys no longer needed can also be deleted from this menu.
Only `GNU Privacy Guard`_ signatures are support at the moment.
Only version 1 of `GNU Privacy Guard`_ is supported for now.
.. _`GNU Privacy Guard`: www.gnupg.org/

View File

@@ -9,6 +9,9 @@ The current document sources supported are:
- Web - ``HTML`` forms with a ``Browse`` button that will open the file dialog
when clicked to allow selection of files in the user's computer to be
uploaded as documents.
- Staging folder - Folder where networked attached scanned can save image
files. The files in these staging folders are scanned and a preview is
generated to help the process of upload.
- POP3 email - Provide the email, server and credential of a ``POP3`` based
email to be scanned periodically for email. The body of the email is uploaded
as a document and the attachments of the email are uploaded as separate
@@ -17,19 +20,6 @@ The current document sources supported are:
the ``IMAP`` protocol.
- Watch folder - A filesystem folder that is scanned periodically for files.
Any file in the watch folder is automatically uploaded.
- Staging folder - Folder where networked attached scanned can save image
files. The files in these staging folders are scanned and a preview is
generated to help the process of upload. Staging folders and Watch folders
work in a similar way with the main difference being that Staging folders are
interactive while Watch folders are automatic; documents in a Watch folder
are uploaded periodically and documents in a Staging folder remain indefinitely
there until an user uploads them. A preview for files in a Staging folder is
also provided. An example of Staging folder use is when multiple people
are scanning documents but only one person must be allowed to upload those
documents. This one person examines the scans quality and decides what to
upload and what to reject and have re-scanned. Watch folders can be used
when the quality of the scans is irrelevant or when they will be known
to be of good quality, such as when receiving e-faxes as PDFs.
Document source can be configure to allow document bundles to uploaded as
compressed files which are decompressed and their content uploaded as separate

View File

@@ -7,16 +7,5 @@ documents. For example: a scanning equipment may only produce landscape PDFs.
In this case an useful transformation for that document source would be to
rotate all documents scanned by 270 degrees after being uploaded, this way
whenever a document is uploaded from that scanner it will appear in portrait
orientation. In this case add a this transformation to the Mayan EDMS source
that is connected to that device this way all pages scanned via that source
with inherit the transformation as they are created.
Transformations can also be added to existing documents, by clicking on a
document's page, then clicking on "transformations". In this view the Actions
menu will have a new option that reads "Create new transformation". At the
moment the rotation, zoom, crop, and resize transformations are available.
Once the document image has been corrected resubmit it for OCR for improved
results.
Transformations are not destructive and do not physically modify the document
file, they just modify the document's graphical representation.
orientation. Transformations do not physically modify the document file but
are just associated with the document's temporary graphical representation.

View File

@@ -2,7 +2,7 @@
Document versioning
===================
Mayan EDMS has the ability to store different versions of the same
**Mayan EDMS** has the ability to store different versions of the same
document. A comment field is provided to allow users to summarize the new
version changes in comparison with the previous one. If a new version was
uploaded by mistake or such new version is no longer necessary the option to

View File

@@ -4,20 +4,7 @@ import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mayan.settings")
try:
from django.core.management import execute_from_command_line
except ImportError:
# The above import may fail for some other reason. Ensure that the
# issue is really that Django is missing to avoid masking other
# exceptions on Python 2.
try:
import django
except ImportError:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
)
raise
execute_from_command_line(sys.argv)
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)

View File

@@ -1,10 +1,10 @@
from __future__ import unicode_literals
__title__ = 'Mayan EDMS'
__version__ = '2.1.6'
__build__ = 0x020106
__version__ = '2.0.2'
__build__ = 0x020002
__author__ = 'Roberto Rosario'
__author_email__ = 'roberto.rosario@mayan-edms.com'
__description__ = 'Free Open Source Electronic Document Management System'
__license__ = 'Apache 2.0'
__copyright__ = 'Copyright 2011-2016 Roberto Rosario'
__copyright__ = 'Copyright 2011-2015 Roberto Rosario'

View File

@@ -5,7 +5,8 @@ from django.utils.translation import ugettext_lazy as _
from common import MayanAppConfig, menu_object, menu_sidebar
from navigation import SourceColumn
from .links import link_acl_create, link_acl_delete, link_acl_permissions
from .links import link_acl_new, link_acl_delete, link_acl_permissions
from .models import AccessControlList
class ACLsApp(MayanAppConfig):
@@ -16,8 +17,6 @@ class ACLsApp(MayanAppConfig):
def ready(self):
super(ACLsApp, self).ready()
AccessControlList = self.get_model('AccessControlList')
SourceColumn(
source=AccessControlList, label=_('Permissions'),
attribute='get_permission_titles'
@@ -31,5 +30,5 @@ class ACLsApp(MayanAppConfig):
sources=(AccessControlList,)
)
menu_sidebar.bind_links(
links=(link_acl_create,), sources=('acls:acl_list',)
links=(link_acl_new,), sources=('acls:acl_list',)
)

View File

@@ -2,7 +2,7 @@ from __future__ import unicode_literals, absolute_import
import logging
from django.apps import apps
from permissions.models import StoredPermission
logger = logging.getLogger(__name__)
@@ -20,23 +20,15 @@ class ModelPermission(object):
@classmethod
def get_for_instance(cls, instance):
StoredPermission = apps.get_model(
app_label='permissions', model_name='StoredPermission'
)
try:
permissions = cls._registry[type(instance)]
except KeyError:
try:
permissions = cls._registry[cls._proxies[type(instance)]]
except KeyError:
permissions = ()
permissions = []
class_permissions = cls._registry.get(type(instance))
if class_permissions:
permissions.extend(class_permissions)
proxy = cls._proxies.get(type(instance))
if proxy:
permissions.extend(cls._registry.get(proxy))
pks = [permission.stored_permission.pk for permission in set(permissions)]
pks = [permission.stored_permission.pk for permission in permissions]
return StoredPermission.objects.filter(pk__in=pks)
@classmethod

View File

@@ -1,6 +1,6 @@
from __future__ import unicode_literals
from django.apps import apps
from django.contrib.contenttypes.models import ContentType
from django.utils.translation import ugettext_lazy as _
from navigation import Link
@@ -10,10 +10,6 @@ from .permissions import permission_acl_view, permission_acl_edit
def get_kwargs_factory(variable_name):
def get_kwargs(context):
ContentType = apps.get_model(
app_label='contenttypes', model_name='ContentType'
)
content_type = ContentType.objects.get_for_model(
context[variable_name]
)
@@ -27,20 +23,18 @@ def get_kwargs_factory(variable_name):
link_acl_delete = Link(
permissions=(permission_acl_edit,), permissions_related='content_object',
tags='dangerous', text=_('Delete'), view='acls:acl_delete',
args='resolved_object.pk'
permissions=(permission_acl_edit,), tags='dangerous', text=_('Delete'),
view='acls:acl_delete', args='resolved_object.pk'
)
link_acl_list = Link(
permissions=(permission_acl_view,), text=_('ACLs'), view='acls:acl_list',
kwargs=get_kwargs_factory('resolved_object')
)
link_acl_create = Link(
link_acl_new = Link(
permissions=(permission_acl_edit,), text=_('New ACL'),
view='acls:acl_create', kwargs=get_kwargs_factory('resolved_object')
view='acls:acl_new', kwargs=get_kwargs_factory('resolved_object')
)
link_acl_permissions = Link(
permissions=(permission_acl_edit,), permissions_related='content_object',
text=_('Permissions'), view='acls:acl_permissions',
args='resolved_object.pk'
permissions=(permission_acl_edit,), text=_('Permissions'),
view='acls:acl_permissions', args='resolved_object.pk'
)

View File

@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"POT-Creation-Date: 2015-09-24 16:24-0400\n"
"PO-Revision-Date: 2015-09-24 05:15+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n"
"MIME-Version: 1.0\n"
@@ -18,31 +18,31 @@ msgstr ""
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#: apps.py:14 links.py:31
#: apps.py:14 links.py:30
msgid "ACLs"
msgstr "ACLs"
msgstr ""
#: apps.py:22 links.py:40 models.py:36
#: apps.py:20 links.py:38 models.py:36
msgid "Permissions"
msgstr "الصلاحيات"
msgstr ""
#: apps.py:26 models.py:38
#: apps.py:24 models.py:38
#| msgid "Roles"
msgid "Role"
msgstr ""
#: links.py:27
#: links.py:26
msgid "Delete"
msgstr ""
#: links.py:35
#: links.py:34
#| msgid "View ACLs"
msgid "New ACL"
msgstr ""
#: managers.py:85
#: managers.py:72
msgid "Insufficient access."
msgstr "Insufficient access."
msgstr ""
#: models.py:44
msgid "Access entry"
@@ -52,59 +52,53 @@ msgstr ""
msgid "Access entries"
msgstr ""
#: models.py:48
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
#: models.py:60
msgid "None"
msgstr "لا شيء"
msgstr ""
#: permissions.py:7
msgid "Access control lists"
msgstr "Access control lists"
msgstr ""
#: permissions.py:10
msgid "Edit ACLs"
msgstr "Edit ACLs"
msgstr ""
#: permissions.py:13
msgid "View ACLs"
msgstr "View ACLs"
msgstr ""
#: views.py:78
#: views.py:61
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:107
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:109
#: views.py:132
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:151
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
#: views.py:147
msgid "Available permissions"
msgstr ""
#: views.py:163
#: views.py:148
msgid "Granted permissions"
msgstr ""
#: views.py:222
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
#: views.py:187
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#: views.py:242
msgid "Disabled permissions are inherited from a parent object."
#: views.py:218
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#~ msgid "New holder"
@@ -179,6 +173,9 @@ msgstr ""
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."

View File

@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"POT-Creation-Date: 2015-09-24 16:24-0400\n"
"PO-Revision-Date: 2015-09-24 05:15+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n"
"MIME-Version: 1.0\n"
@@ -18,93 +18,87 @@ msgstr ""
"Language: bg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:31
#: apps.py:14 links.py:30
msgid "ACLs"
msgstr "ACLs"
msgstr ""
#: apps.py:22 links.py:40 models.py:36
#: apps.py:20 links.py:38 models.py:36
msgid "Permissions"
msgstr "Разрешения"
msgstr ""
#: apps.py:26 models.py:38
#: apps.py:24 models.py:38
#| msgid "Roles"
msgid "Role"
msgstr ""
#: links.py:27
#: links.py:26
msgid "Delete"
msgstr ""
#: links.py:35
#: links.py:34
#| msgid "View ACLs"
msgid "New ACL"
msgstr ""
#: managers.py:85
#: managers.py:72
msgid "Insufficient access."
msgstr "Недостатъчен достъп."
msgstr ""
#: models.py:44
msgid "Access entry"
msgstr "достъп вписване"
msgstr ""
#: models.py:45
msgid "Access entries"
msgstr "достъп вписвания"
#: models.py:48
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
#: models.py:60
msgid "None"
msgstr "Няма"
msgstr ""
#: permissions.py:7
msgid "Access control lists"
msgstr "Контролни списъци за достъп"
msgstr ""
#: permissions.py:10
msgid "Edit ACLs"
msgstr "Редактиране на контролни списъци за достъп"
msgstr ""
#: permissions.py:13
msgid "View ACLs"
msgstr "Преглед на контролни списъци за достъп"
msgstr ""
#: views.py:78
#: views.py:61
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:107
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:109
#: views.py:132
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:151
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
#: views.py:147
msgid "Available permissions"
msgstr ""
#: views.py:163
#: views.py:148
msgid "Granted permissions"
msgstr ""
#: views.py:222
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
#: views.py:187
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#: views.py:242
msgid "Disabled permissions are inherited from a parent object."
#: views.py:218
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#~ msgid "New holder"
@@ -179,6 +173,9 @@ msgstr ""
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."

View File

@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"POT-Creation-Date: 2015-09-24 16:24-0400\n"
"PO-Revision-Date: 2015-09-24 05:15+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n"
"MIME-Version: 1.0\n"
@@ -18,31 +18,31 @@ msgstr ""
"Language: bs_BA\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: apps.py:14 links.py:31
#: apps.py:14 links.py:30
msgid "ACLs"
msgstr "ACLs"
msgstr ""
#: apps.py:22 links.py:40 models.py:36
#: apps.py:20 links.py:38 models.py:36
msgid "Permissions"
msgstr "Dozvole"
msgstr ""
#: apps.py:26 models.py:38
#: apps.py:24 models.py:38
#| msgid "Roles"
msgid "Role"
msgstr ""
#: links.py:27
#: links.py:26
msgid "Delete"
msgstr ""
#: links.py:35
#: links.py:34
#| msgid "View ACLs"
msgid "New ACL"
msgstr ""
#: managers.py:85
#: managers.py:72
msgid "Insufficient access."
msgstr "Nedovoljne dozvole."
msgstr ""
#: models.py:44
msgid "Access entry"
@@ -52,59 +52,53 @@ msgstr ""
msgid "Access entries"
msgstr ""
#: models.py:48
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
#: models.py:60
msgid "None"
msgstr "Nijedno"
msgstr ""
#: permissions.py:7
msgid "Access control lists"
msgstr "Liste kontrole pristupa (ACLs)"
msgstr ""
#: permissions.py:10
msgid "Edit ACLs"
msgstr "Izmjeniti ACLs"
msgstr ""
#: permissions.py:13
msgid "View ACLs"
msgstr "Pregledati ACLs"
msgstr ""
#: views.py:78
#: views.py:61
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:107
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:109
#: views.py:132
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:151
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
#: views.py:147
msgid "Available permissions"
msgstr ""
#: views.py:163
#: views.py:148
msgid "Granted permissions"
msgstr ""
#: views.py:222
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
#: views.py:187
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#: views.py:242
msgid "Disabled permissions are inherited from a parent object."
#: views.py:218
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#~ msgid "New holder"
@@ -179,6 +173,9 @@ msgstr ""
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."

View File

@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
"POT-Creation-Date: 2015-09-24 16:24-0400\n"
"PO-Revision-Date: 2015-09-24 05:15+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n"
"MIME-Version: 1.0\n"
@@ -18,29 +18,29 @@ msgstr ""
"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:31
#: apps.py:14 links.py:30
msgid "ACLs"
msgstr "ACLs"
msgstr ""
#: apps.py:22 links.py:40 models.py:36
#: apps.py:20 links.py:38 models.py:36
msgid "Permissions"
msgstr ""
#: apps.py:26 models.py:38
#: apps.py:24 models.py:38
#| msgid "Roles"
msgid "Role"
msgstr ""
#: links.py:27
#: links.py:26
msgid "Delete"
msgstr ""
#: links.py:35
#: links.py:34
#| msgid "View ACLs"
msgid "New ACL"
msgstr ""
#: managers.py:85
#: managers.py:72
msgid "Insufficient access."
msgstr ""
@@ -52,15 +52,9 @@ msgstr ""
msgid "Access entries"
msgstr ""
#: models.py:48
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr ""
#: models.py:64
#: models.py:60
msgid "None"
msgstr "Ingen"
msgstr ""
#: permissions.py:7
msgid "Access control lists"
@@ -74,37 +68,37 @@ msgstr ""
msgid "View ACLs"
msgstr ""
#: views.py:78
#: views.py:61
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:107
#, python-format
msgid "New access control lists for: %s"
msgstr ""
#: views.py:109
#: views.py:132
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:151
#, python-format
msgid "Access control lists for: %s"
msgstr ""
#: views.py:162
#: views.py:147
msgid "Available permissions"
msgstr ""
#: views.py:163
#: views.py:148
msgid "Granted permissions"
msgstr ""
#: views.py:222
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
#: views.py:187
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#: views.py:242
msgid "Disabled permissions are inherited from a parent object."
#: views.py:218
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#~ msgid "New holder"
@@ -179,6 +173,9 @@ msgstr ""
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."

View File

@@ -5,14 +5,13 @@
# Translators:
# Translators:
# Berny <berny@bernhard-marx.de>, 2015
# Tobias Paepke <tobias.paepke@paepke.net>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-31 18:56+0000\n"
"Last-Translator: Tobias Paepke <tobias.paepke@paepke.net>\n"
"POT-Creation-Date: 2015-09-24 16:24-0400\n"
"PO-Revision-Date: 2015-09-24 17:20+0000\n"
"Last-Translator: Berny <berny@bernhard-marx.de>\n"
"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -20,29 +19,29 @@ msgstr ""
"Language: de_DE\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:31
#: apps.py:14 links.py:30
msgid "ACLs"
msgstr "Zugriffsberechtigungen"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:20 links.py:38 models.py:36
msgid "Permissions"
msgstr "Berechtigungen"
#: apps.py:26 models.py:38
#: apps.py:24 models.py:38
#| msgid "Roles"
msgid "Role"
msgstr "Rolle"
#: links.py:27
#: links.py:26
msgid "Delete"
msgstr "Löschen"
#: links.py:35
#: links.py:34
#| msgid "View ACLs"
msgid "New ACL"
msgstr "Neue Berechtigung"
#: managers.py:85
#: managers.py:72
msgid "Insufficient access."
msgstr "Fehlende Berechtigung"
@@ -54,13 +53,7 @@ msgstr "Berechtigungseintrag"
msgid "Access entries"
msgstr "Berechtigungseinträge"
#: models.py:48
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr "Berechtigungen \"%(permissions)s\" zur Rolle \"%(role)s\" für \"%(object)s\""
#: models.py:64
#: models.py:60
msgid "None"
msgstr "Keine"
@@ -76,39 +69,39 @@ msgstr "Zugriffsberechtigungen bearbeiten"
msgid "View ACLs"
msgstr "Zugriffsberechtigungen anzeigen"
#: views.py:78
#: views.py:61
#, python-format
msgid "Access control lists for: %s"
msgstr "Zugriffsberechtigungen für %s"
#: views.py:107
#, python-format
msgid "New access control lists for: %s"
msgstr "Neue Zugriffsberechtigung für %s"
#: views.py:109
#: views.py:132
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr "ACL \"%s\" löschen"
#: views.py:151
#, python-format
msgid "Access control lists for: %s"
msgstr "Zugriffsberechtigungen für %s"
#: views.py:162
#: views.py:147
msgid "Available permissions"
msgstr "Verfügbare Berechtigungen"
#: views.py:163
#: views.py:148
msgid "Granted permissions"
msgstr "Erteilte Berechtigungen"
#: views.py:222
#: views.py:187
msgid "Disabled permissions are inherited from a parent object."
msgstr "Deaktivierte Berechtigungen sind von einem übergeordneten Objekt vererbt."
#: views.py:218
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr "Berechtigungen von Rolle \"%(role)s\" für \"%(object)s\""
#: views.py:242
msgid "Disabled permissions are inherited from a parent object."
msgstr "Deaktivierte Berechtigungen sind von einem übergeordneten Objekt vererbt."
#~ msgid "New holder"
#~ msgstr "New holder"
@@ -181,6 +174,9 @@ msgstr "Deaktivierte Berechtigungen sind von einem übergeordneten Objekt vererb
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"POT-Creation-Date: 2015-09-24 16:24-0400\n"
"PO-Revision-Date: 2012-02-02 18:20+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/"
@@ -18,32 +18,32 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:31
#: apps.py:14 links.py:30
msgid "ACLs"
msgstr "ACLs"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:20 links.py:38 models.py:36
#, fuzzy
msgid "Permissions"
msgstr "permissions"
#: apps.py:26 models.py:38
#: apps.py:24 models.py:38
#, fuzzy
#| msgid "Roles"
msgid "Role"
msgstr "Roles"
#: links.py:27
#: links.py:26
msgid "Delete"
msgstr ""
#: links.py:35
#: links.py:34
#, fuzzy
#| msgid "View ACLs"
msgid "New ACL"
msgstr "View ACLs"
#: managers.py:85
#: managers.py:72
msgid "Insufficient access."
msgstr "Insufficient access."
@@ -57,13 +57,7 @@ msgstr "access entry"
msgid "Access entries"
msgstr "access entries"
#: models.py:48
#, fuzzy, python-format
#| msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#: models.py:64
#: models.py:60
msgid "None"
msgstr ""
@@ -79,39 +73,39 @@ msgstr "Edit ACLs"
msgid "View ACLs"
msgstr "View ACLs"
#: views.py:78
#: views.py:61
#, fuzzy, python-format
msgid "Access control lists for: %s"
msgstr "access control lists for: %s"
#: views.py:107
#, fuzzy, python-format
msgid "New access control lists for: %s"
msgstr "access control lists for: %s"
#: views.py:109
#: views.py:132
#, fuzzy, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr "Default ACLs"
#: views.py:151
#, fuzzy, python-format
msgid "Access control lists for: %s"
msgstr "access control lists for: %s"
#: views.py:162
#: views.py:147
#, fuzzy
msgid "Available permissions"
msgstr "has permission"
#: views.py:163
#: views.py:148
#, fuzzy
msgid "Granted permissions"
msgstr "has permission"
#: views.py:222
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
#: views.py:187
msgid "Disabled permissions are inherited from a parent object."
msgstr ""
#: views.py:242
msgid "Disabled permissions are inherited from a parent object."
#: views.py:218
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr ""
#~ msgid "New holder"
@@ -197,6 +191,9 @@ msgstr ""
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."

View File

@@ -6,13 +6,13 @@
# Translators:
# jmcainzos <jmcainzos@vodafone.es>, 2015
# Roberto Rosario, 2015
# Roberto Rosario, 2015-2016
# Roberto Rosario, 2015
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
"PO-Revision-Date: 2016-10-28 07:38+0000\n"
"POT-Creation-Date: 2015-09-24 16:24-0400\n"
"PO-Revision-Date: 2015-09-24 05:15+0000\n"
"Last-Translator: Roberto Rosario\n"
"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n"
"MIME-Version: 1.0\n"
@@ -21,29 +21,29 @@ msgstr ""
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps.py:14 links.py:31
#: apps.py:14 links.py:30
msgid "ACLs"
msgstr "LCAs"
#: apps.py:22 links.py:40 models.py:36
#: apps.py:20 links.py:38 models.py:36
msgid "Permissions"
msgstr "Permisos"
#: apps.py:26 models.py:38
#: apps.py:24 models.py:38
#| msgid "Roles"
msgid "Role"
msgstr "Rol"
#: links.py:27
#: links.py:26
msgid "Delete"
msgstr "Borrar"
#: links.py:35
#: links.py:34
#| msgid "View ACLs"
msgid "New ACL"
msgstr "Nueva LCA"
#: managers.py:85
#: managers.py:72
msgid "Insufficient access."
msgstr "Acceso insuficiente."
@@ -55,13 +55,7 @@ msgstr "Entrada de acceso"
msgid "Access entries"
msgstr "Entradas de acceso"
#: models.py:48
#, python-format
#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\""
msgstr "Permisos \"%(permissions)s\" para el rol \"%(role)s\" para \"%(object)s\""
#: models.py:64
#: models.py:60
msgid "None"
msgstr "Ninguno"
@@ -77,39 +71,39 @@ msgstr "Editar LCAs"
msgid "View ACLs"
msgstr "Ver LCAs"
#: views.py:78
#, python-format
msgid "New access control lists for: %s"
msgstr "Nueva lista de control de acceso para: %s"
#: views.py:109
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr "Borrar LCA: %s"
#: views.py:151
#: views.py:61
#, python-format
msgid "Access control lists for: %s"
msgstr "Listas de control de acceso para: %s"
#: views.py:162
#: views.py:107
#, python-format
msgid "New access control lists for: %s"
msgstr "Nueva lista de control de acceso para: %s"
#: views.py:132
#, python-format
#| msgid "Default ACLs"
msgid "Delete ACL: %s"
msgstr ""
#: views.py:147
msgid "Available permissions"
msgstr "Permisos disponibles"
#: views.py:163
#: views.py:148
msgid "Granted permissions"
msgstr "Permisos otorgados"
#: views.py:222
#: views.py:187
msgid "Disabled permissions are inherited from a parent object."
msgstr "Los permisos inactivos se heredan de un objeto precedente."
#: views.py:218
#, python-format
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
msgstr "Permisos del rol \"%(role)s\" para \"%(object)s\""
#: views.py:242
msgid "Disabled permissions are inherited from a parent object."
msgstr "Los permisos inactivos se heredan de un objeto precedente."
#~ msgid "New holder"
#~ msgstr "New holder"
@@ -182,6 +176,9 @@ msgstr "Los permisos inactivos se heredan de un objeto precedente."
#~ msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgstr "Are you sure you wish to grant the permissions %(title_suffix)s?"
#~ msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
#~ msgid ""
#~ "%(actor)s, already had the permission \"%(permission)s\" granted for "
#~ "%(object)s."

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