Compare commits
175 Commits
feature/mu
...
feature/ex
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6063aa5cd8 | ||
|
|
79b0763fe9 | ||
|
|
92130608fb | ||
|
|
5662b56714 | ||
|
|
1e194e04fa | ||
|
|
71af09c1fc | ||
|
|
5b1779fe59 | ||
|
|
61c5f6eaa0 | ||
|
|
272c8a2628 | ||
|
|
50a2a6c0f0 | ||
|
|
c21eb6d4cf | ||
|
|
c262ccabbd | ||
|
|
a0bcbdbce9 | ||
|
|
477869bd3b | ||
|
|
cc02ab19d5 | ||
|
|
90de742deb | ||
|
|
0801682569 | ||
|
|
727766cbf0 | ||
|
|
2f46e49937 | ||
|
|
c71a8f4e13 | ||
|
|
ba65611c81 | ||
|
|
3e63010338 | ||
|
|
375948c1dc | ||
|
|
108102219c | ||
|
|
ced3211318 | ||
|
|
6aa0590b33 | ||
|
|
e950ea6698 | ||
|
|
844511340d | ||
|
|
a94745ab9e | ||
|
|
b5c5602301 | ||
|
|
ba11e63364 | ||
|
|
4578eacce9 | ||
|
|
8b02ea7134 | ||
|
|
1133577e4d | ||
|
|
7adf3621b7 | ||
|
|
a335f39e2a | ||
|
|
a5a6afe240 | ||
|
|
3663521899 | ||
|
|
90c08b707d | ||
|
|
44531bd92a | ||
|
|
f5e3d5a8f2 | ||
|
|
c5ab1a22a9 | ||
|
|
9ed20091d2 | ||
|
|
99302e9300 | ||
|
|
aa91bce3ab | ||
|
|
248d3886e0 | ||
|
|
d4a95ddb8b | ||
|
|
aa2e8f3a11 | ||
|
|
9c0d2ac60c | ||
|
|
1867b2e08d | ||
|
|
df3f7c38c3 | ||
|
|
7f4dee8d69 | ||
|
|
95a23c8f7a | ||
|
|
98327ae877 | ||
|
|
e4a4e6b0c8 | ||
|
|
048960ae52 | ||
|
|
d072c0af55 | ||
|
|
6b9b280d71 | ||
|
|
14bde36c1f | ||
|
|
4222035cc1 | ||
|
|
43264f23b1 | ||
|
|
f98063835a | ||
|
|
19d20ff9d1 | ||
|
|
7c8fc51ad1 | ||
|
|
2df6cb7985 | ||
|
|
bc7f5f44ed | ||
|
|
69bcade6fb | ||
|
|
d473245fb2 | ||
|
|
3df30b63f3 | ||
|
|
0992e22568 | ||
|
|
011db7c0f6 | ||
|
|
31b2464899 | ||
|
|
b2ba2c70dc | ||
|
|
a59c4e8fc1 | ||
|
|
4d9da58890 | ||
|
|
b9791287d3 | ||
|
|
2b335e9454 | ||
|
|
877772f80d | ||
|
|
12e500e55d | ||
|
|
2cdee10d50 | ||
|
|
6fbbc7bacb | ||
|
|
2777dc1070 | ||
|
|
3ab4778814 | ||
|
|
696c2be2f3 | ||
|
|
43d2539c95 | ||
|
|
5893e149e0 | ||
|
|
621c988809 | ||
|
|
c0194c63dc | ||
|
|
ff67b11110 | ||
|
|
de6564c264 | ||
|
|
9eb9c93afc | ||
|
|
6e3d99670c | ||
|
|
24ef702e9c | ||
|
|
aca0491941 | ||
|
|
52b2ae3c84 | ||
|
|
27943dca8c | ||
|
|
1f648c5e86 | ||
|
|
ed7955f8e7 | ||
|
|
1e50676f11 | ||
|
|
6b6a238039 | ||
|
|
f978bd4982 | ||
|
|
b6784ee173 | ||
|
|
718582f09d | ||
|
|
b9bdf5c315 | ||
|
|
6c2f00e0d7 | ||
|
|
49ea4ff2f6 | ||
|
|
2a0c50a313 | ||
|
|
6a48de5029 | ||
|
|
e556c16117 | ||
|
|
5c9a34ab5e | ||
|
|
5193009447 | ||
|
|
5ddd0c861d | ||
|
|
80623e4436 | ||
|
|
c10637aaa4 | ||
|
|
2ad40a0970 | ||
|
|
dbad54bf6b | ||
|
|
da250a6a9e | ||
|
|
3bb47c20db | ||
|
|
eb2a3bba30 | ||
|
|
aef395f4df | ||
|
|
b8b2e0e929 | ||
|
|
f66f815ba6 | ||
|
|
62c0918acf | ||
|
|
61e2925a61 | ||
|
|
d488c8271b | ||
|
|
7cc5064df3 | ||
|
|
7b9a2bcfcc | ||
|
|
fa7c6ae8d7 | ||
|
|
72980f09a6 | ||
|
|
0b5edb4ad6 | ||
|
|
9d527ae423 | ||
|
|
7ead59a408 | ||
|
|
d779676724 | ||
|
|
1f1954161e | ||
|
|
6abf3384c7 | ||
|
|
f59d7ad0bd | ||
|
|
d3e6b21146 | ||
|
|
665b814641 | ||
|
|
56feae6e0e | ||
|
|
3db472b0cd | ||
|
|
07c8d36545 | ||
|
|
1b9a40dc5c | ||
|
|
f28b797f0a | ||
|
|
35c96034a7 | ||
|
|
d13c444312 | ||
|
|
9e7ffc1e99 | ||
|
|
07ecc60b63 | ||
|
|
03d13ff224 | ||
|
|
652b0f13d0 | ||
|
|
bf29846b54 | ||
|
|
89af7e9f12 | ||
|
|
c881641ae8 | ||
|
|
a44c76165b | ||
|
|
91144a749f | ||
|
|
221301abd1 | ||
|
|
8250085703 | ||
|
|
5fedada0f5 | ||
|
|
ce8377da03 | ||
|
|
4b7c4335e1 | ||
|
|
4f2744f916 | ||
|
|
9483309332 | ||
|
|
07ac1cbbbe | ||
|
|
e62e6a9a08 | ||
|
|
97089670ee | ||
|
|
063b325986 | ||
|
|
2ea3c08c97 | ||
|
|
f3f5cff36e | ||
|
|
d0aee4f72b | ||
|
|
5ac1276f25 | ||
|
|
113ad144e0 | ||
|
|
c531631a37 | ||
|
|
a76a55f70a | ||
|
|
98e6ba2b50 | ||
|
|
945158bd60 | ||
|
|
ab831aa493 |
@@ -1,35 +1,41 @@
|
||||
image: python:2.7
|
||||
image: ubuntu:16.10
|
||||
services:
|
||||
- mysql
|
||||
- mysql:latest
|
||||
- postgres
|
||||
before_script:
|
||||
- echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale
|
||||
- locale-gen en_US.UTF-8
|
||||
- update-locale LANG=en_US.UTF-8
|
||||
- export LC_ALL=en_US.UTF-8
|
||||
- apt-get update -qq
|
||||
- apt-get install -qq python-dev gcc tesseract-ocr tesseract-ocr-deu unpaper ghostscript libjpeg-dev libpng-dev libtiff-dev poppler-utils libreoffice
|
||||
- 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
|
||||
variables:
|
||||
POSTGRES_DB: "mayan_edms"
|
||||
POSTGRES_PASSWORD: "postgres"
|
||||
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
|
||||
MYSQL_DATABASE: "mayan_edms"
|
||||
#test:mysql:
|
||||
# script:
|
||||
# - pip install -r requirements/testing.txt
|
||||
# - pip install -q mysql-python
|
||||
# - apt-get install -qq mysql-client
|
||||
# - mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD" -e "ALTER DATABASE $MYSQL_DATABASE CHARACTER SET utf8 COLLATE utf8_unicode_ci;"
|
||||
# - coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci.db_mysql --nomigrations
|
||||
# - bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN
|
||||
# tags:
|
||||
# - mysql
|
||||
#test:postgres:
|
||||
# script:
|
||||
# - pip install -r requirements/testing.txt
|
||||
# - pip install -q psycopg2
|
||||
# - coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci.db_postgres --nomigrations
|
||||
# - bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN
|
||||
# tags:
|
||||
# - postgres
|
||||
#test:sqlite:
|
||||
# script:
|
||||
# - pip install -r requirements/testing.txt
|
||||
# - coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci --nomigrations
|
||||
# - bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN
|
||||
test:mysql:
|
||||
script:
|
||||
- apt-get install -qq libmysqlclient-dev
|
||||
- pip install -r requirements/testing.txt
|
||||
- pip install mysql-python
|
||||
- apt-get install -qq mysql-client
|
||||
- mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD" -e "set global character_set_server=utf8mb4;"
|
||||
- coverage run manage.py 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
|
||||
- coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci.db_postgres --nomigrations
|
||||
- bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN
|
||||
tags:
|
||||
- postgres
|
||||
test:sqlite:
|
||||
script:
|
||||
- pip install -r requirements/testing.txt
|
||||
- coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci --nomigrations
|
||||
- bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN
|
||||
|
||||
71
CONTRIBUTING.md
Normal file
@@ -0,0 +1,71 @@
|
||||
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.
|
||||
59
HISTORY.rst
@@ -1,3 +1,62 @@
|
||||
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.
|
||||
|
||||
31
Makefile
@@ -1,12 +1,5 @@
|
||||
.PHONY: clean-pyc clean-build
|
||||
|
||||
define BROWSER_PYSCRIPT
|
||||
import sys, webbrowser
|
||||
webbrowser.open(sys.argv[1])
|
||||
endef
|
||||
export BROWSER_PYSCRIPT
|
||||
BROWSER := python -c "$$BROWSER_PYSCRIPT"
|
||||
|
||||
|
||||
help:
|
||||
@echo
|
||||
@@ -32,6 +25,10 @@ help:
|
||||
@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
|
||||
@@ -52,16 +49,15 @@ clean-pyc:
|
||||
# Testing
|
||||
|
||||
test:
|
||||
python -Wall ./manage.py test $(MODULE) --settings=mayan.settings.testing --nomigrations
|
||||
./manage.py test $(MODULE) --settings=mayan.settings.testing --nomigrations
|
||||
|
||||
test-all:
|
||||
python -Wall ./manage.py runtests --settings=mayan.settings.testing --nomigrations
|
||||
./manage.py runtests --settings=mayan.settings.testing --nomigrations
|
||||
|
||||
|
||||
# Documentation
|
||||
|
||||
docs_serve:
|
||||
$(BROWSER) http://127.0.0.1:8000
|
||||
cd docs;make livehtml
|
||||
|
||||
|
||||
@@ -109,5 +105,18 @@ wheel: clean
|
||||
# Dev server
|
||||
|
||||
runserver:
|
||||
$(BROWSER) http://127.0.0.1:8000
|
||||
./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
|
||||
|
||||
|
||||
26
README.rst
@@ -1,4 +1,4 @@
|
||||
|PyPI badge| |Build Status| |Coverage badge| |Installs badge| |License badge|
|
||||
|PyPI badge| |Build Status| |Coverage badge| |Documentation| |License badge| |Python version|
|
||||
|
||||
|Logo|
|
||||
|
||||
@@ -33,22 +33,13 @@ To install Mayan EDMS, simply do:
|
||||
|
||||
$ virtualenv venv
|
||||
$ source venv/bin/activate
|
||||
$ pip install mayan-edms
|
||||
$ mayan-edms.py initialsetup
|
||||
$ mayan-edms.py runserver
|
||||
(venv) $ pip install mayan-edms
|
||||
(venv) $ mayan-edms.py initialsetup
|
||||
(venv) $ 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
|
||||
@@ -56,20 +47,19 @@ Contribute
|
||||
.. _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
|
||||
.. |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:: http://img.shields.io/badge/license-Apache%202.0-green.svg?style=flat
|
||||
.. |License badge| image:: https://img.shields.io/pypi/l/mayan-edms.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
@@ -1,33 +0,0 @@
|
||||
# -*- 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
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
DJANGO_SETTINGS_MODULE='mayan.settings.celery_redis' celery -A mayan worker -l DEBUG -Ofair -B
|
||||
@@ -1,22 +0,0 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
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
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
find 'fabfile' -depth -name '*.pyc' -exec rm {} \;
|
||||
tar -czvf contrib/fabfile.tar.gz fabfile
|
||||
@@ -1,5 +0,0 @@
|
||||
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'
|
||||
@@ -1,26 +0,0 @@
|
||||
[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
|
||||
@@ -1,6 +0,0 @@
|
||||
[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
|
Before Width: | Height: | Size: 78 KiB |
BIN
docs/_static/document_view.png
vendored
|
Before Width: | Height: | Size: 67 KiB |
BIN
docs/_static/main.png
vendored
|
Before Width: | Height: | Size: 32 KiB |
BIN
docs/_static/page_view.png
vendored
|
Before Width: | Height: | Size: 69 KiB |
BIN
docs/_static/setup.png
vendored
|
Before Width: | Height: | Size: 61 KiB |
BIN
docs/_static/statistics.png
vendored
|
Before Width: | Height: | Size: 28 KiB |
BIN
docs/_static/tools.png
vendored
|
Before Width: | Height: | Size: 67 KiB |
@@ -38,7 +38,6 @@ 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']
|
||||
|
||||
@@ -10,12 +10,14 @@ and install it from PyPI with the following commands:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo apt-get install libjpeg-dev libmagic1 libpng-dev libreoffice libtiff-dev gcc ghostscript gpgv python-dev python-virtualenv tesseract-ocr poppler-utils -y
|
||||
virtualenv venv
|
||||
source venv/bin/activate
|
||||
pip install mayan-edms
|
||||
mayan-edms.py initialsetup
|
||||
mayan-edms.py runserver
|
||||
$ 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
|
||||
|
||||
Point your browser to 127.0.0.1:8000 and use the automatically created admin
|
||||
account.
|
||||
@@ -36,7 +38,6 @@ account.
|
||||
Roadmap <topics/roadmap>
|
||||
Translations <topics/translations>
|
||||
Contributors <topics/contributors>
|
||||
Screenshots <topics/screenshots>
|
||||
Licensing <topics/license>
|
||||
FAQ <topics/faq>
|
||||
Contact <topics/contact>
|
||||
|
||||
87
docs/releases/2.1.3.rst
Normal file
@@ -0,0 +1,87 @@
|
||||
===============================
|
||||
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/
|
||||
81
docs/releases/2.1.4.rst
Normal file
@@ -0,0 +1,81 @@
|
||||
===============================
|
||||
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/
|
||||
87
docs/releases/2.1.5.rst
Normal file
@@ -0,0 +1,87 @@
|
||||
===============================
|
||||
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/
|
||||
73
docs/releases/2.1.6.rst
Normal file
@@ -0,0 +1,73 @@
|
||||
===============================
|
||||
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/
|
||||
96
docs/releases/2.2.rst
Normal file
@@ -0,0 +1,96 @@
|
||||
=============================
|
||||
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/
|
||||
@@ -22,6 +22,11 @@ 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,15 +2,17 @@
|
||||
Deploying
|
||||
=========
|
||||
|
||||
OS "bare metal"
|
||||
===============
|
||||
Below are some ways to deploye and use Mayan EDMS. Do use more than one method.
|
||||
|
||||
OS "bare metal" method
|
||||
======================
|
||||
|
||||
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 15.04.
|
||||
Ubuntu 16.10.
|
||||
|
||||
Switch to superuser::
|
||||
|
||||
@@ -20,8 +22,12 @@ Install all system dependencies::
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
Change to the directory where the project will be deployed::
|
||||
|
||||
@@ -80,6 +86,10 @@ 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
|
||||
@@ -186,11 +196,12 @@ Make the installation directory readable and writable by the webserver user::
|
||||
|
||||
Restart the services::
|
||||
|
||||
/etc/init.d/nginx restart
|
||||
/etc/init.d/supervisor restart
|
||||
systemctl enable supervisor
|
||||
systemctl restart supervisor
|
||||
systemctl restart nginx
|
||||
|
||||
Docker
|
||||
======
|
||||
Docker method
|
||||
=============
|
||||
|
||||
Deploy the Docker image stack::
|
||||
|
||||
@@ -205,8 +216,8 @@ with::
|
||||
docker logs mayan-edms
|
||||
|
||||
|
||||
Docker Compose
|
||||
==============
|
||||
Docker Compose method
|
||||
=====================
|
||||
|
||||
Create a file named ``environment`` with the following content::
|
||||
|
||||
@@ -248,8 +259,8 @@ with::
|
||||
|
||||
docker logs mayanedms_mayan-edms_1
|
||||
|
||||
Vagrant
|
||||
=======
|
||||
Vagrant method
|
||||
==============
|
||||
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::
|
||||
|
||||
@@ -6,8 +6,8 @@ Development
|
||||
Mayan EDMS is under active development, and contributions are welcome.
|
||||
|
||||
If you have a feature request, suggestion or bug report, please open a new
|
||||
issue on the `GitLab issue tracker`_. To submit patches, please send a pull
|
||||
request on GitLab_. Make sure to add yourself to the :ref:`contributors` file.
|
||||
issue on the `GitLab issue tracker`_. To submit patches, please send a merge
|
||||
request on GitLab_.
|
||||
|
||||
.. _GitLab: https://gitlab.com/mayan-edms/mayan-edms/
|
||||
.. _`GitLab issue tracker`: https://gitlab.com/mayan-edms/mayan-edms/issues
|
||||
|
||||
@@ -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, it's just a strong recommendation mainly to reduce
|
||||
* It is not necessary, but it's a strong recommendation mainly to reduce
|
||||
dependency conflicts by isolation from the main Python system install.
|
||||
If not using a virtualenv, pip would install Mayan's dependencies
|
||||
globally coming in conflict with the distribution's prepackaged Python
|
||||
@@ -116,3 +116,13 @@ 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.
|
||||
|
||||
@@ -24,4 +24,3 @@ Introductions to all the key parts of Mayan EDMS you'll need to know:
|
||||
settings
|
||||
file_storage
|
||||
backups
|
||||
screenshots
|
||||
|
||||
@@ -2,8 +2,9 @@
|
||||
OCR backend
|
||||
===========
|
||||
|
||||
Mayan EDMS ships an OCR backend that uses the FLOSS engine Tesseract, but it can
|
||||
use other engines. To support other engines a wrapper that subclasess the
|
||||
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``
|
||||
@@ -13,3 +14,8 @@ 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
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
===========
|
||||
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
|
||||
@@ -21,4 +21,6 @@ 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/
|
||||
|
||||
@@ -9,9 +9,6 @@ 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
|
||||
@@ -20,6 +17,19 @@ 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
|
||||
|
||||
19
manage.py
@@ -4,7 +4,20 @@ import sys
|
||||
|
||||
if __name__ == "__main__":
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mayan.settings")
|
||||
|
||||
from django.core.management import execute_from_command_line
|
||||
|
||||
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)
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
__title__ = 'Mayan EDMS'
|
||||
__version__ = '2.1.2'
|
||||
__build__ = 0x020102
|
||||
__version__ = '2.1.6'
|
||||
__build__ = 0x020106
|
||||
__author__ = 'Roberto Rosario'
|
||||
__author_email__ = 'roberto.rosario@mayan-edms.com'
|
||||
__description__ = 'Free Open Source Electronic Document Management System'
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.apps import apps
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from navigation import Link
|
||||
@@ -10,6 +10,10 @@ 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]
|
||||
)
|
||||
|
||||
@@ -1,42 +1,42 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
|
||||
"Last-Translator: Roberto Rosario\n"
|
||||
"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/"
|
||||
"ar/)\n"
|
||||
"Language: ar\n"
|
||||
"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\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"
|
||||
"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:30
|
||||
#: apps.py:14 links.py:31
|
||||
msgid "ACLs"
|
||||
msgstr "ACLs"
|
||||
|
||||
#: apps.py:22 links.py:38 models.py:36
|
||||
#: apps.py:22 links.py:40 models.py:36
|
||||
msgid "Permissions"
|
||||
msgstr "الصلاحيات"
|
||||
|
||||
#: apps.py:26 models.py:38
|
||||
#| msgid "Roles"
|
||||
msgid "Role"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:26
|
||||
#: links.py:27
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:34
|
||||
#: links.py:35
|
||||
#| msgid "View ACLs"
|
||||
msgid "New ACL"
|
||||
msgstr ""
|
||||
|
||||
@@ -52,7 +52,13 @@ msgstr ""
|
||||
msgid "Access entries"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:60
|
||||
#: 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
|
||||
msgid "None"
|
||||
msgstr "لا شيء"
|
||||
|
||||
@@ -75,6 +81,7 @@ msgstr ""
|
||||
|
||||
#: views.py:109
|
||||
#, python-format
|
||||
#| msgid "Default ACLs"
|
||||
msgid "Delete ACL: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -172,9 +179,6 @@ 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."
|
||||
@@ -194,10 +198,8 @@ msgstr ""
|
||||
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
|
||||
#~ msgid "Add new holder for: %s"
|
||||
#~ msgstr "add new holder for: %s"
|
||||
|
||||
@@ -1,41 +1,42 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
|
||||
"Last-Translator: Roberto Rosario\n"
|
||||
"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/"
|
||||
"language/bg/)\n"
|
||||
"Language: bg\n"
|
||||
"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: bg\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: apps.py:14 links.py:30
|
||||
#: apps.py:14 links.py:31
|
||||
msgid "ACLs"
|
||||
msgstr "ACLs"
|
||||
|
||||
#: apps.py:22 links.py:38 models.py:36
|
||||
#: apps.py:22 links.py:40 models.py:36
|
||||
msgid "Permissions"
|
||||
msgstr "Разрешения"
|
||||
|
||||
#: apps.py:26 models.py:38
|
||||
#| msgid "Roles"
|
||||
msgid "Role"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:26
|
||||
#: links.py:27
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:34
|
||||
#: links.py:35
|
||||
#| msgid "View ACLs"
|
||||
msgid "New ACL"
|
||||
msgstr ""
|
||||
|
||||
@@ -45,13 +46,19 @@ 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:60
|
||||
#: models.py:64
|
||||
msgid "None"
|
||||
msgstr "Няма"
|
||||
|
||||
@@ -61,11 +68,11 @@ msgstr "Контролни списъци за достъп"
|
||||
|
||||
#: permissions.py:10
|
||||
msgid "Edit ACLs"
|
||||
msgstr ""
|
||||
msgstr "Редактиране на контролни списъци за достъп"
|
||||
|
||||
#: permissions.py:13
|
||||
msgid "View ACLs"
|
||||
msgstr ""
|
||||
msgstr "Преглед на контролни списъци за достъп"
|
||||
|
||||
#: views.py:78
|
||||
#, python-format
|
||||
@@ -74,6 +81,7 @@ msgstr ""
|
||||
|
||||
#: views.py:109
|
||||
#, python-format
|
||||
#| msgid "Default ACLs"
|
||||
msgid "Delete ACL: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -171,9 +179,6 @@ 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."
|
||||
@@ -193,10 +198,8 @@ msgstr ""
|
||||
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
|
||||
#~ msgid "Add new holder for: %s"
|
||||
#~ msgstr "add new holder for: %s"
|
||||
|
||||
@@ -1,42 +1,42 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
|
||||
"Last-Translator: Roberto Rosario\n"
|
||||
"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/"
|
||||
"rosarior/mayan-edms/language/bs_BA/)\n"
|
||||
"Language: bs_BA\n"
|
||||
"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\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"
|
||||
"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:30
|
||||
#: apps.py:14 links.py:31
|
||||
msgid "ACLs"
|
||||
msgstr "ACLs"
|
||||
|
||||
#: apps.py:22 links.py:38 models.py:36
|
||||
#: apps.py:22 links.py:40 models.py:36
|
||||
msgid "Permissions"
|
||||
msgstr "Dozvole"
|
||||
|
||||
#: apps.py:26 models.py:38
|
||||
#| msgid "Roles"
|
||||
msgid "Role"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:26
|
||||
#: links.py:27
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:34
|
||||
#: links.py:35
|
||||
#| msgid "View ACLs"
|
||||
msgid "New ACL"
|
||||
msgstr ""
|
||||
|
||||
@@ -52,7 +52,13 @@ msgstr ""
|
||||
msgid "Access entries"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:60
|
||||
#: 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
|
||||
msgid "None"
|
||||
msgstr "Nijedno"
|
||||
|
||||
@@ -75,6 +81,7 @@ msgstr ""
|
||||
|
||||
#: views.py:109
|
||||
#, python-format
|
||||
#| msgid "Default ACLs"
|
||||
msgid "Delete ACL: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -172,9 +179,6 @@ 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."
|
||||
@@ -194,10 +198,8 @@ msgstr ""
|
||||
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
|
||||
#~ msgid "Add new holder for: %s"
|
||||
#~ msgstr "add new holder for: %s"
|
||||
|
||||
@@ -1,41 +1,42 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
|
||||
"Last-Translator: Roberto Rosario\n"
|
||||
"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/"
|
||||
"da/)\n"
|
||||
"Language: da\n"
|
||||
"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: da\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: apps.py:14 links.py:30
|
||||
#: apps.py:14 links.py:31
|
||||
msgid "ACLs"
|
||||
msgstr "ACLs"
|
||||
|
||||
#: apps.py:22 links.py:38 models.py:36
|
||||
#: apps.py:22 links.py:40 models.py:36
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: apps.py:26 models.py:38
|
||||
#| msgid "Roles"
|
||||
msgid "Role"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:26
|
||||
#: links.py:27
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:34
|
||||
#: links.py:35
|
||||
#| msgid "View ACLs"
|
||||
msgid "New ACL"
|
||||
msgstr ""
|
||||
|
||||
@@ -51,7 +52,13 @@ msgstr ""
|
||||
msgid "Access entries"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:60
|
||||
#: 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
|
||||
msgid "None"
|
||||
msgstr "Ingen"
|
||||
|
||||
@@ -74,6 +81,7 @@ msgstr ""
|
||||
|
||||
#: views.py:109
|
||||
#, python-format
|
||||
#| msgid "Default ACLs"
|
||||
msgid "Delete ACL: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -171,9 +179,6 @@ 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."
|
||||
@@ -193,10 +198,8 @@ msgstr ""
|
||||
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
|
||||
#~ msgid "Add new holder for: %s"
|
||||
#~ msgstr "add new holder for: %s"
|
||||
|
||||
@@ -1,42 +1,44 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# 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-04-27 14:09-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
|
||||
"Last-Translator: Mathias Behrle <mathiasb@m9s.biz>\n"
|
||||
"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-"
|
||||
"edms/language/de_DE/)\n"
|
||||
"Language: de_DE\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"
|
||||
"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"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: de_DE\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: apps.py:14 links.py:30
|
||||
#: apps.py:14 links.py:31
|
||||
msgid "ACLs"
|
||||
msgstr "Zugriffsberechtigungen"
|
||||
|
||||
#: apps.py:22 links.py:38 models.py:36
|
||||
#: apps.py:22 links.py:40 models.py:36
|
||||
msgid "Permissions"
|
||||
msgstr "Berechtigungen"
|
||||
|
||||
#: apps.py:26 models.py:38
|
||||
#| msgid "Roles"
|
||||
msgid "Role"
|
||||
msgstr "Rolle"
|
||||
|
||||
#: links.py:26
|
||||
#: links.py:27
|
||||
msgid "Delete"
|
||||
msgstr "Löschen"
|
||||
|
||||
#: links.py:34
|
||||
#: links.py:35
|
||||
#| msgid "View ACLs"
|
||||
msgid "New ACL"
|
||||
msgstr "Neue Berechtigung"
|
||||
|
||||
@@ -52,7 +54,13 @@ msgstr "Berechtigungseintrag"
|
||||
msgid "Access entries"
|
||||
msgstr "Berechtigungseinträge"
|
||||
|
||||
#: models.py:60
|
||||
#: 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
|
||||
msgid "None"
|
||||
msgstr "Keine"
|
||||
|
||||
@@ -75,6 +83,7 @@ msgstr "Neue Zugriffsberechtigung für %s"
|
||||
|
||||
#: views.py:109
|
||||
#, python-format
|
||||
#| msgid "Default ACLs"
|
||||
msgid "Delete ACL: %s"
|
||||
msgstr "ACL \"%s\" löschen"
|
||||
|
||||
@@ -98,8 +107,7 @@ 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."
|
||||
msgstr "Deaktivierte Berechtigungen sind von einem übergeordneten Objekt vererbt."
|
||||
|
||||
#~ msgid "New holder"
|
||||
#~ msgstr "New holder"
|
||||
@@ -173,9 +181,6 @@ 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."
|
||||
@@ -195,10 +200,8 @@ msgstr ""
|
||||
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
|
||||
#~ msgid "Add new holder for: %s"
|
||||
#~ msgstr "add new holder for: %s"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-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,11 +18,11 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: apps.py:14 links.py:30
|
||||
#: apps.py:14 links.py:31
|
||||
msgid "ACLs"
|
||||
msgstr "ACLs"
|
||||
|
||||
#: apps.py:22 links.py:38 models.py:36
|
||||
#: apps.py:22 links.py:40 models.py:36
|
||||
#, fuzzy
|
||||
msgid "Permissions"
|
||||
msgstr "permissions"
|
||||
@@ -33,11 +33,11 @@ msgstr "permissions"
|
||||
msgid "Role"
|
||||
msgstr "Roles"
|
||||
|
||||
#: links.py:26
|
||||
#: links.py:27
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:34
|
||||
#: links.py:35
|
||||
#, fuzzy
|
||||
#| msgid "View ACLs"
|
||||
msgid "New ACL"
|
||||
@@ -57,7 +57,13 @@ msgstr "access entry"
|
||||
msgid "Access entries"
|
||||
msgstr "access entries"
|
||||
|
||||
#: models.py:60
|
||||
#: 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
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
@@ -191,9 +197,6 @@ 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."
|
||||
|
||||
@@ -11,8 +11,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"PO-Revision-Date: 2016-05-09 01:48+0000\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-10-28 07:38+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,11 +21,11 @@ msgstr ""
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: apps.py:14 links.py:30
|
||||
#: apps.py:14 links.py:31
|
||||
msgid "ACLs"
|
||||
msgstr "LCAs"
|
||||
|
||||
#: apps.py:22 links.py:38 models.py:36
|
||||
#: apps.py:22 links.py:40 models.py:36
|
||||
msgid "Permissions"
|
||||
msgstr "Permisos"
|
||||
|
||||
@@ -34,11 +34,11 @@ msgstr "Permisos"
|
||||
msgid "Role"
|
||||
msgstr "Rol"
|
||||
|
||||
#: links.py:26
|
||||
#: links.py:27
|
||||
msgid "Delete"
|
||||
msgstr "Borrar"
|
||||
|
||||
#: links.py:34
|
||||
#: links.py:35
|
||||
#| msgid "View ACLs"
|
||||
msgid "New ACL"
|
||||
msgstr "Nueva LCA"
|
||||
@@ -55,7 +55,13 @@ msgstr "Entrada de acceso"
|
||||
msgid "Access entries"
|
||||
msgstr "Entradas de acceso"
|
||||
|
||||
#: models.py:60
|
||||
#: 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
|
||||
msgid "None"
|
||||
msgstr "Ninguno"
|
||||
|
||||
@@ -176,9 +182,6 @@ 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."
|
||||
|
||||
@@ -1,41 +1,42 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
|
||||
"Last-Translator: Roberto Rosario\n"
|
||||
"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/"
|
||||
"language/fa/)\n"
|
||||
"Language: fa\n"
|
||||
"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fa\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: apps.py:14 links.py:30
|
||||
#: apps.py:14 links.py:31
|
||||
msgid "ACLs"
|
||||
msgstr "ACLs"
|
||||
|
||||
#: apps.py:22 links.py:38 models.py:36
|
||||
#: apps.py:22 links.py:40 models.py:36
|
||||
msgid "Permissions"
|
||||
msgstr "مجوزها"
|
||||
|
||||
#: apps.py:26 models.py:38
|
||||
#| msgid "Roles"
|
||||
msgid "Role"
|
||||
msgstr "نقش"
|
||||
|
||||
#: links.py:26
|
||||
#: links.py:27
|
||||
msgid "Delete"
|
||||
msgstr "حذف"
|
||||
|
||||
#: links.py:34
|
||||
#: links.py:35
|
||||
#| msgid "View ACLs"
|
||||
msgid "New ACL"
|
||||
msgstr ""
|
||||
|
||||
@@ -51,7 +52,13 @@ msgstr "ورودی دسترسی"
|
||||
msgid "Access entries"
|
||||
msgstr "ورودیهای دسترسی"
|
||||
|
||||
#: models.py:60
|
||||
#: 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
|
||||
msgid "None"
|
||||
msgstr "هیچکدام."
|
||||
|
||||
@@ -74,6 +81,7 @@ msgstr ""
|
||||
|
||||
#: views.py:109
|
||||
#, python-format
|
||||
#| msgid "Default ACLs"
|
||||
msgid "Delete ACL: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -171,9 +179,6 @@ 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."
|
||||
@@ -193,10 +198,8 @@ msgstr ""
|
||||
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
|
||||
#~ msgid "Add new holder for: %s"
|
||||
#~ msgstr "add new holder for: %s"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
# Christophe CHAUVET <christophe.chauvet@gmail.com>, 2015
|
||||
@@ -9,34 +9,35 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
|
||||
"Last-Translator: Christophe CHAUVET <christophe.chauvet@gmail.com>\n"
|
||||
"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/"
|
||||
"fr/)\n"
|
||||
"Language: fr\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
|
||||
"Last-Translator: Roberto Rosario\n"
|
||||
"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: apps.py:14 links.py:30
|
||||
#: apps.py:14 links.py:31
|
||||
msgid "ACLs"
|
||||
msgstr "Droits"
|
||||
|
||||
#: apps.py:22 links.py:38 models.py:36
|
||||
#: apps.py:22 links.py:40 models.py:36
|
||||
msgid "Permissions"
|
||||
msgstr "Permissions"
|
||||
|
||||
#: apps.py:26 models.py:38
|
||||
#| msgid "Roles"
|
||||
msgid "Role"
|
||||
msgstr "Rôle"
|
||||
|
||||
#: links.py:26
|
||||
#: links.py:27
|
||||
msgid "Delete"
|
||||
msgstr "Suppression"
|
||||
|
||||
#: links.py:34
|
||||
#: links.py:35
|
||||
#| msgid "View ACLs"
|
||||
msgid "New ACL"
|
||||
msgstr "Nouveau droit"
|
||||
|
||||
@@ -52,7 +53,13 @@ msgstr "Entrée d'accès"
|
||||
msgid "Access entries"
|
||||
msgstr "Entrées d'accès"
|
||||
|
||||
#: models.py:60
|
||||
#: 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
|
||||
msgid "None"
|
||||
msgstr "Aucun"
|
||||
|
||||
@@ -75,6 +82,7 @@ msgstr "Nouvelle liste de contrôle d'accès pour: %s"
|
||||
|
||||
#: views.py:109
|
||||
#, python-format
|
||||
#| msgid "Default ACLs"
|
||||
msgid "Delete ACL: %s"
|
||||
msgstr "Supprimer le droit: %s"
|
||||
|
||||
@@ -172,9 +180,6 @@ msgstr "La désactivation de permission est hérité de l'objet parent"
|
||||
#~ 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."
|
||||
@@ -194,10 +199,8 @@ msgstr "La désactivation de permission est hérité de l'objet parent"
|
||||
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
|
||||
#~ msgid "Add new holder for: %s"
|
||||
#~ msgstr "add new holder for: %s"
|
||||
|
||||
@@ -1,41 +1,42 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
|
||||
"Last-Translator: Roberto Rosario\n"
|
||||
"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/"
|
||||
"language/hu/)\n"
|
||||
"Language: hu\n"
|
||||
"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: hu\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: apps.py:14 links.py:30
|
||||
#: apps.py:14 links.py:31
|
||||
msgid "ACLs"
|
||||
msgstr "ACL-ek"
|
||||
|
||||
#: apps.py:22 links.py:38 models.py:36
|
||||
#: apps.py:22 links.py:40 models.py:36
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: apps.py:26 models.py:38
|
||||
#| msgid "Roles"
|
||||
msgid "Role"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:26
|
||||
#: links.py:27
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:34
|
||||
#: links.py:35
|
||||
#| msgid "View ACLs"
|
||||
msgid "New ACL"
|
||||
msgstr ""
|
||||
|
||||
@@ -51,7 +52,13 @@ msgstr ""
|
||||
msgid "Access entries"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:60
|
||||
#: 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
|
||||
msgid "None"
|
||||
msgstr "Semmi"
|
||||
|
||||
@@ -74,6 +81,7 @@ msgstr ""
|
||||
|
||||
#: views.py:109
|
||||
#, python-format
|
||||
#| msgid "Default ACLs"
|
||||
msgid "Delete ACL: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -171,9 +179,6 @@ 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."
|
||||
@@ -193,10 +198,8 @@ msgstr ""
|
||||
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
|
||||
#~ msgid "Add new holder for: %s"
|
||||
#~ msgstr "add new holder for: %s"
|
||||
|
||||
@@ -1,41 +1,42 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"PO-Revision-Date: 2015-09-24 05:15+0000\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
|
||||
"Last-Translator: Roberto Rosario\n"
|
||||
"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/"
|
||||
"language/id/)\n"
|
||||
"Language: id\n"
|
||||
"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: id\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: apps.py:14 links.py:30
|
||||
#: apps.py:14 links.py:31
|
||||
msgid "ACLs"
|
||||
msgstr ""
|
||||
|
||||
#: apps.py:22 links.py:38 models.py:36
|
||||
#: apps.py:22 links.py:40 models.py:36
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: apps.py:26 models.py:38
|
||||
#| msgid "Roles"
|
||||
msgid "Role"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:26
|
||||
#: links.py:27
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:34
|
||||
#: links.py:35
|
||||
#| msgid "View ACLs"
|
||||
msgid "New ACL"
|
||||
msgstr ""
|
||||
|
||||
@@ -51,7 +52,13 @@ msgstr ""
|
||||
msgid "Access entries"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:60
|
||||
#: 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
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
@@ -74,6 +81,7 @@ msgstr ""
|
||||
|
||||
#: views.py:109
|
||||
#, python-format
|
||||
#| msgid "Default ACLs"
|
||||
msgid "Delete ACL: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -171,9 +179,6 @@ 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."
|
||||
@@ -193,10 +198,8 @@ msgstr ""
|
||||
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
|
||||
#~ msgid "Add new holder for: %s"
|
||||
#~ msgstr "add new holder for: %s"
|
||||
|
||||
@@ -1,43 +1,45 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
# Marco Camplese <marco.camplese.mc@gmail.com>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
|
||||
"Last-Translator: Roberto Rosario\n"
|
||||
"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/"
|
||||
"language/it/)\n"
|
||||
"Language: it\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-10-30 21:18+0000\n"
|
||||
"Last-Translator: Marco Camplese <marco.camplese.mc@gmail.com>\n"
|
||||
"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: it\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: apps.py:14 links.py:30
|
||||
#: apps.py:14 links.py:31
|
||||
msgid "ACLs"
|
||||
msgstr "ACLs"
|
||||
|
||||
#: apps.py:22 links.py:38 models.py:36
|
||||
#: apps.py:22 links.py:40 models.py:36
|
||||
msgid "Permissions"
|
||||
msgstr "Permessi"
|
||||
|
||||
#: apps.py:26 models.py:38
|
||||
#| msgid "Roles"
|
||||
msgid "Role"
|
||||
msgstr "Ruolo"
|
||||
|
||||
#: links.py:26
|
||||
#: links.py:27
|
||||
msgid "Delete"
|
||||
msgstr "Cancella"
|
||||
|
||||
#: links.py:34
|
||||
#: links.py:35
|
||||
#| msgid "View ACLs"
|
||||
msgid "New ACL"
|
||||
msgstr ""
|
||||
msgstr "Nuova ACL"
|
||||
|
||||
#: managers.py:85
|
||||
msgid "Insufficient access."
|
||||
@@ -51,7 +53,13 @@ msgstr "Voce di accesso"
|
||||
msgid "Access entries"
|
||||
msgstr "Voci di accesso"
|
||||
|
||||
#: models.py:60
|
||||
#: 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 "Permessi \"%(permissions)s\" del ruolo \"%(role)s\" per \"%(object)s\""
|
||||
|
||||
#: models.py:64
|
||||
msgid "None"
|
||||
msgstr "Nessuna "
|
||||
|
||||
@@ -70,12 +78,13 @@ msgstr "Visualizza ACL"
|
||||
#: views.py:78
|
||||
#, python-format
|
||||
msgid "New access control lists for: %s"
|
||||
msgstr ""
|
||||
msgstr "Nuova lista di controllo accesso per: %s"
|
||||
|
||||
#: views.py:109
|
||||
#, python-format
|
||||
#| msgid "Default ACLs"
|
||||
msgid "Delete ACL: %s"
|
||||
msgstr ""
|
||||
msgstr "Cancella ACL: %s"
|
||||
|
||||
#: views.py:151
|
||||
#, python-format
|
||||
@@ -93,11 +102,11 @@ msgstr "Autorizzazioni concesse "
|
||||
#: views.py:222
|
||||
#, python-format
|
||||
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
|
||||
msgstr ""
|
||||
msgstr "Permessi del ruolo \"%(role)s\" per \"%(object)s\""
|
||||
|
||||
#: views.py:242
|
||||
msgid "Disabled permissions are inherited from a parent object."
|
||||
msgstr ""
|
||||
msgstr "Il permesso disabilita è ereditato dall'oggetto padre"
|
||||
|
||||
#~ msgid "New holder"
|
||||
#~ msgstr "New holder"
|
||||
@@ -171,9 +180,6 @@ 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."
|
||||
@@ -193,10 +199,8 @@ msgstr ""
|
||||
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
|
||||
#~ msgid "Add new holder for: %s"
|
||||
#~ msgstr "add new holder for: %s"
|
||||
|
||||
@@ -1,42 +1,44 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
# Evelijn Saaltink <evelijnsaaltink@gmail.com>, 2016
|
||||
# Justin Albstbstmeijer <justin@albstmeijer.nl>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
|
||||
"Last-Translator: Justin Albstbstmeijer <justin@albstmeijer.nl>\n"
|
||||
"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-"
|
||||
"edms/language/nl_NL/)\n"
|
||||
"Language: nl_NL\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-10-28 12:43+0000\n"
|
||||
"Last-Translator: Evelijn Saaltink <evelijnsaaltink@gmail.com>\n"
|
||||
"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: nl_NL\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: apps.py:14 links.py:30
|
||||
#: apps.py:14 links.py:31
|
||||
msgid "ACLs"
|
||||
msgstr "Authorisatielijsten"
|
||||
|
||||
#: apps.py:22 links.py:38 models.py:36
|
||||
#: apps.py:22 links.py:40 models.py:36
|
||||
msgid "Permissions"
|
||||
msgstr "Permissies"
|
||||
|
||||
#: apps.py:26 models.py:38
|
||||
#| msgid "Roles"
|
||||
msgid "Role"
|
||||
msgstr "Gebruikersrol"
|
||||
|
||||
#: links.py:26
|
||||
#: links.py:27
|
||||
msgid "Delete"
|
||||
msgstr "Verwijder"
|
||||
|
||||
#: links.py:34
|
||||
#: links.py:35
|
||||
#| msgid "View ACLs"
|
||||
msgid "New ACL"
|
||||
msgstr "Nieuwe authorisatielijst"
|
||||
|
||||
@@ -52,7 +54,13 @@ msgstr "Authorisatie invoer"
|
||||
msgid "Access entries"
|
||||
msgstr "Authorisaties invoer"
|
||||
|
||||
#: models.py:60
|
||||
#: 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 "Permissies \"%(permissions)s\" voor gebruikersrol \"%(role)s\" voor \"%(object)s\""
|
||||
|
||||
#: models.py:64
|
||||
msgid "None"
|
||||
msgstr "Geen"
|
||||
|
||||
@@ -75,6 +83,7 @@ msgstr "Nieuwe authorisatielijsten voor: %s"
|
||||
|
||||
#: views.py:109
|
||||
#, python-format
|
||||
#| msgid "Default ACLs"
|
||||
msgid "Delete ACL: %s"
|
||||
msgstr "Verwijder authorisatielijst: %s"
|
||||
|
||||
@@ -172,9 +181,6 @@ msgstr "Uitgeschakelde permissies zijn geërfd van een parent object."
|
||||
#~ 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."
|
||||
@@ -194,10 +200,8 @@ msgstr "Uitgeschakelde permissies zijn geërfd van een parent object."
|
||||
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
|
||||
#~ msgid "Add new holder for: %s"
|
||||
#~ msgstr "add new holder for: %s"
|
||||
|
||||
@@ -1,43 +1,43 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
# Wojciech Warczakowski <w.warczakowski@gmail.com>, 2016
|
||||
# Wojtek Warczakowski <w.warczakowski@gmail.com>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
|
||||
"Last-Translator: Wojciech Warczakowski <w.warczakowski@gmail.com>\n"
|
||||
"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/"
|
||||
"pl/)\n"
|
||||
"Language: pl\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
|
||||
"Last-Translator: Roberto Rosario\n"
|
||||
"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||
"|| n%100>=20) ? 1 : 2);\n"
|
||||
"Language: pl\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
|
||||
#: apps.py:14 links.py:30
|
||||
#: apps.py:14 links.py:31
|
||||
msgid "ACLs"
|
||||
msgstr "Listy ACL"
|
||||
|
||||
#: apps.py:22 links.py:38 models.py:36
|
||||
#: apps.py:22 links.py:40 models.py:36
|
||||
msgid "Permissions"
|
||||
msgstr "Uprawnienia"
|
||||
|
||||
#: apps.py:26 models.py:38
|
||||
#| msgid "Roles"
|
||||
msgid "Role"
|
||||
msgstr "Rola"
|
||||
|
||||
#: links.py:26
|
||||
#: links.py:27
|
||||
msgid "Delete"
|
||||
msgstr "Usuń"
|
||||
|
||||
#: links.py:34
|
||||
#: links.py:35
|
||||
#| msgid "View ACLs"
|
||||
msgid "New ACL"
|
||||
msgstr "Nowa lista ACL"
|
||||
|
||||
@@ -53,7 +53,13 @@ msgstr "Zgłoszenie dostępu"
|
||||
msgid "Access entries"
|
||||
msgstr "Zgłoszenia dostępu"
|
||||
|
||||
#: models.py:60
|
||||
#: 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
|
||||
msgid "None"
|
||||
msgstr "Brak"
|
||||
|
||||
@@ -76,6 +82,7 @@ msgstr "Nowe listy ACL dla: %s"
|
||||
|
||||
#: views.py:109
|
||||
#, python-format
|
||||
#| msgid "Default ACLs"
|
||||
msgid "Delete ACL: %s"
|
||||
msgstr "Usuń listę ACL: %s"
|
||||
|
||||
@@ -173,9 +180,6 @@ msgstr "Domyślne uprawnienia są dziedziczone z obiektu nadrzędnego."
|
||||
#~ 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."
|
||||
@@ -195,10 +199,8 @@ msgstr "Domyślne uprawnienia są dziedziczone z obiektu nadrzędnego."
|
||||
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
|
||||
#~ msgid "Add new holder for: %s"
|
||||
#~ msgstr "add new holder for: %s"
|
||||
|
||||
@@ -1,41 +1,42 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
|
||||
"Last-Translator: Roberto Rosario\n"
|
||||
"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/"
|
||||
"language/pt/)\n"
|
||||
"Language: pt\n"
|
||||
"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: pt\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: apps.py:14 links.py:30
|
||||
#: apps.py:14 links.py:31
|
||||
msgid "ACLs"
|
||||
msgstr "ACL's"
|
||||
|
||||
#: apps.py:22 links.py:38 models.py:36
|
||||
#: apps.py:22 links.py:40 models.py:36
|
||||
msgid "Permissions"
|
||||
msgstr "Permissões"
|
||||
|
||||
#: apps.py:26 models.py:38
|
||||
#| msgid "Roles"
|
||||
msgid "Role"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:26
|
||||
#: links.py:27
|
||||
msgid "Delete"
|
||||
msgstr "Eliminar"
|
||||
|
||||
#: links.py:34
|
||||
#: links.py:35
|
||||
#| msgid "View ACLs"
|
||||
msgid "New ACL"
|
||||
msgstr ""
|
||||
|
||||
@@ -51,7 +52,13 @@ msgstr ""
|
||||
msgid "Access entries"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:60
|
||||
#: 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
|
||||
msgid "None"
|
||||
msgstr "Nenhum"
|
||||
|
||||
@@ -74,6 +81,7 @@ msgstr ""
|
||||
|
||||
#: views.py:109
|
||||
#, python-format
|
||||
#| msgid "Default ACLs"
|
||||
msgid "Delete ACL: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -171,9 +179,6 @@ 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."
|
||||
@@ -193,10 +198,8 @@ msgstr ""
|
||||
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
|
||||
#~ msgid "Add new holder for: %s"
|
||||
#~ msgstr "add new holder for: %s"
|
||||
|
||||
@@ -1,43 +1,45 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
# Aline Freitas <aline@alinefreitas.com.br>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
|
||||
"Last-Translator: Roberto Rosario\n"
|
||||
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-"
|
||||
"edms/language/pt_BR/)\n"
|
||||
"Language: pt_BR\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-11-17 22:31+0000\n"
|
||||
"Last-Translator: Aline Freitas <aline@alinefreitas.com.br>\n"
|
||||
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: pt_BR\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: apps.py:14 links.py:30
|
||||
#: apps.py:14 links.py:31
|
||||
msgid "ACLs"
|
||||
msgstr "ACLs"
|
||||
|
||||
#: apps.py:22 links.py:38 models.py:36
|
||||
#: apps.py:22 links.py:40 models.py:36
|
||||
msgid "Permissions"
|
||||
msgstr "Permissões"
|
||||
|
||||
#: apps.py:26 models.py:38
|
||||
#| msgid "Roles"
|
||||
msgid "Role"
|
||||
msgstr "Regras"
|
||||
|
||||
#: links.py:26
|
||||
#: links.py:27
|
||||
msgid "Delete"
|
||||
msgstr "Excluir"
|
||||
|
||||
#: links.py:34
|
||||
#: links.py:35
|
||||
#| msgid "View ACLs"
|
||||
msgid "New ACL"
|
||||
msgstr ""
|
||||
msgstr "Nova ACL"
|
||||
|
||||
#: managers.py:85
|
||||
msgid "Insufficient access."
|
||||
@@ -51,7 +53,13 @@ msgstr "Acesso entrada"
|
||||
msgid "Access entries"
|
||||
msgstr "Entradas de acesso"
|
||||
|
||||
#: models.py:60
|
||||
#: 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 "Permissões \"%(permissions)s\" do papel \"%(role)s\" para \"%(object)s\""
|
||||
|
||||
#: models.py:64
|
||||
msgid "None"
|
||||
msgstr "Nenhum"
|
||||
|
||||
@@ -70,12 +78,13 @@ msgstr "Visualizar ACLs"
|
||||
#: views.py:78
|
||||
#, python-format
|
||||
msgid "New access control lists for: %s"
|
||||
msgstr ""
|
||||
msgstr "Nova lista de controle de acesso para: %s"
|
||||
|
||||
#: views.py:109
|
||||
#, python-format
|
||||
#| msgid "Default ACLs"
|
||||
msgid "Delete ACL: %s"
|
||||
msgstr ""
|
||||
msgstr "Apagar ACL: %s"
|
||||
|
||||
#: views.py:151
|
||||
#, python-format
|
||||
@@ -84,20 +93,20 @@ msgstr "listas de controle de acesso para: %s"
|
||||
|
||||
#: views.py:162
|
||||
msgid "Available permissions"
|
||||
msgstr ""
|
||||
msgstr "Permissões disponíveis"
|
||||
|
||||
#: views.py:163
|
||||
msgid "Granted permissions"
|
||||
msgstr ""
|
||||
msgstr "Permissões outorgadas"
|
||||
|
||||
#: views.py:222
|
||||
#, python-format
|
||||
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
|
||||
msgstr ""
|
||||
msgstr "Permissões do papel \"%(role)s\" para \"%(object)s\""
|
||||
|
||||
#: views.py:242
|
||||
msgid "Disabled permissions are inherited from a parent object."
|
||||
msgstr ""
|
||||
msgstr "As permissões inativas foram herdadas de um objeto precedente."
|
||||
|
||||
#~ msgid "New holder"
|
||||
#~ msgstr "New holder"
|
||||
@@ -171,9 +180,6 @@ 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."
|
||||
@@ -193,10 +199,8 @@ msgstr ""
|
||||
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
|
||||
#~ msgid "Add new holder for: %s"
|
||||
#~ msgstr "add new holder for: %s"
|
||||
|
||||
@@ -1,42 +1,42 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
|
||||
"Last-Translator: Roberto Rosario\n"
|
||||
"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-"
|
||||
"edms/language/ro_RO/)\n"
|
||||
"Language: ro_RO\n"
|
||||
"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
|
||||
"2:1));\n"
|
||||
"Language: ro_RO\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
|
||||
|
||||
#: apps.py:14 links.py:30
|
||||
#: apps.py:14 links.py:31
|
||||
msgid "ACLs"
|
||||
msgstr "ACL-uri"
|
||||
|
||||
#: apps.py:22 links.py:38 models.py:36
|
||||
#: apps.py:22 links.py:40 models.py:36
|
||||
msgid "Permissions"
|
||||
msgstr "Permisiuni"
|
||||
|
||||
#: apps.py:26 models.py:38
|
||||
#| msgid "Roles"
|
||||
msgid "Role"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:26
|
||||
#: links.py:27
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
msgstr "Șterge"
|
||||
|
||||
#: links.py:34
|
||||
#: links.py:35
|
||||
#| msgid "View ACLs"
|
||||
msgid "New ACL"
|
||||
msgstr ""
|
||||
|
||||
@@ -52,7 +52,13 @@ msgstr ""
|
||||
msgid "Access entries"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:60
|
||||
#: 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
|
||||
msgid "None"
|
||||
msgstr "Nici unul"
|
||||
|
||||
@@ -75,6 +81,7 @@ msgstr ""
|
||||
|
||||
#: views.py:109
|
||||
#, python-format
|
||||
#| msgid "Default ACLs"
|
||||
msgid "Delete ACL: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -172,9 +179,6 @@ 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."
|
||||
@@ -194,10 +198,8 @@ msgstr ""
|
||||
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
|
||||
#~ msgid "Add new holder for: %s"
|
||||
#~ msgstr "add new holder for: %s"
|
||||
|
||||
@@ -1,61 +1,67 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
# lilo.panic, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
|
||||
"Last-Translator: Roberto Rosario\n"
|
||||
"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/"
|
||||
"language/ru/)\n"
|
||||
"Language: ru\n"
|
||||
"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
|
||||
"%100>=11 && n%100<=14)? 2 : 3);\n"
|
||||
"Language: ru\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
|
||||
|
||||
#: apps.py:14 links.py:30
|
||||
#: apps.py:14 links.py:31
|
||||
msgid "ACLs"
|
||||
msgstr "ACLs"
|
||||
msgstr "СУДы"
|
||||
|
||||
#: apps.py:22 links.py:38 models.py:36
|
||||
#: apps.py:22 links.py:40 models.py:36
|
||||
msgid "Permissions"
|
||||
msgstr "Разрешения"
|
||||
|
||||
#: apps.py:26 models.py:38
|
||||
#| msgid "Roles"
|
||||
msgid "Role"
|
||||
msgstr ""
|
||||
msgstr "Роль"
|
||||
|
||||
#: links.py:26
|
||||
#: links.py:27
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
msgstr "Удалить"
|
||||
|
||||
#: links.py:34
|
||||
#: links.py:35
|
||||
#| msgid "View ACLs"
|
||||
msgid "New ACL"
|
||||
msgstr ""
|
||||
msgstr "Создать СУД"
|
||||
|
||||
#: managers.py:85
|
||||
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:60
|
||||
#: models.py:64
|
||||
msgid "None"
|
||||
msgstr "Ни один"
|
||||
msgstr "Пусто"
|
||||
|
||||
#: permissions.py:7
|
||||
msgid "Access control lists"
|
||||
@@ -63,43 +69,44 @@ msgstr "Списки контроля доступа"
|
||||
|
||||
#: permissions.py:10
|
||||
msgid "Edit ACLs"
|
||||
msgstr "Редактировать списки ACL"
|
||||
msgstr "Редактировать СУДы"
|
||||
|
||||
#: permissions.py:13
|
||||
msgid "View ACLs"
|
||||
msgstr "Просмотр списков ACL"
|
||||
msgstr "Просмотр СУДов"
|
||||
|
||||
#: views.py:78
|
||||
#, python-format
|
||||
msgid "New access control lists for: %s"
|
||||
msgstr ""
|
||||
msgstr "Новый СУД для: %s"
|
||||
|
||||
#: views.py:109
|
||||
#, python-format
|
||||
#| msgid "Default ACLs"
|
||||
msgid "Delete ACL: %s"
|
||||
msgstr ""
|
||||
msgstr "Удалить СУД: %s"
|
||||
|
||||
#: views.py:151
|
||||
#, python-format
|
||||
msgid "Access control lists for: %s"
|
||||
msgstr ""
|
||||
msgstr "СУДы для: %s"
|
||||
|
||||
#: views.py:162
|
||||
msgid "Available permissions"
|
||||
msgstr ""
|
||||
msgstr "Доступные разрешения"
|
||||
|
||||
#: views.py:163
|
||||
msgid "Granted permissions"
|
||||
msgstr ""
|
||||
msgstr "Предоставленные разрешения"
|
||||
|
||||
#: views.py:222
|
||||
#, python-format
|
||||
msgid "Role \"%(role)s\" permission's for \"%(object)s\""
|
||||
msgstr ""
|
||||
msgstr "Права роли \"%(role)s\" для \"%(object)s\""
|
||||
|
||||
#: views.py:242
|
||||
msgid "Disabled permissions are inherited from a parent object."
|
||||
msgstr ""
|
||||
msgstr "Отключенные права наследуются от родительского объекта."
|
||||
|
||||
#~ msgid "New holder"
|
||||
#~ msgstr "New holder"
|
||||
@@ -173,9 +180,6 @@ 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."
|
||||
@@ -195,10 +199,8 @@ msgstr ""
|
||||
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
|
||||
#~ msgid "Add new holder for: %s"
|
||||
#~ msgstr "add new holder for: %s"
|
||||
|
||||
@@ -1,72 +1,78 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-11-17 08:58+0000\n"
|
||||
"Last-Translator: Roberto Rosario\n"
|
||||
"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-"
|
||||
"edms/language/sl_SI/)\n"
|
||||
"Language: sl_SI\n"
|
||||
"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
|
||||
"%100==4 ? 2 : 3);\n"
|
||||
"Language: sl_SI\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
|
||||
|
||||
#: apps.py:14 links.py:30
|
||||
#: apps.py:14 links.py:31
|
||||
msgid "ACLs"
|
||||
msgstr ""
|
||||
msgstr "Pravice"
|
||||
|
||||
#: apps.py:22 links.py:38 models.py:36
|
||||
#: apps.py:22 links.py:40 models.py:36
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
msgstr "Pravice"
|
||||
|
||||
#: apps.py:26 models.py:38
|
||||
#| msgid "Roles"
|
||||
msgid "Role"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:26
|
||||
#: links.py:27
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:34
|
||||
#: links.py:35
|
||||
#| msgid "View ACLs"
|
||||
msgid "New ACL"
|
||||
msgstr ""
|
||||
|
||||
#: managers.py:85
|
||||
msgid "Insufficient access."
|
||||
msgstr ""
|
||||
msgstr "Nezadosten dostop"
|
||||
|
||||
#: models.py:44
|
||||
msgid "Access entry"
|
||||
msgstr ""
|
||||
msgstr "Vstopna točka"
|
||||
|
||||
#: models.py:45
|
||||
msgid "Access entries"
|
||||
msgstr "Vstopne točke"
|
||||
|
||||
#: 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:60
|
||||
#: models.py:64
|
||||
msgid "None"
|
||||
msgstr "Brez"
|
||||
|
||||
#: permissions.py:7
|
||||
msgid "Access control lists"
|
||||
msgstr ""
|
||||
msgstr "Seznami za nadzor dostopa"
|
||||
|
||||
#: permissions.py:10
|
||||
msgid "Edit ACLs"
|
||||
msgstr ""
|
||||
msgstr "Uredi dostopne pravice"
|
||||
|
||||
#: permissions.py:13
|
||||
msgid "View ACLs"
|
||||
msgstr ""
|
||||
msgstr "Preglej dostopne pravice"
|
||||
|
||||
#: views.py:78
|
||||
#, python-format
|
||||
@@ -75,13 +81,14 @@ msgstr ""
|
||||
|
||||
#: views.py:109
|
||||
#, python-format
|
||||
#| msgid "Default ACLs"
|
||||
msgid "Delete ACL: %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:151
|
||||
#, python-format
|
||||
msgid "Access control lists for: %s"
|
||||
msgstr ""
|
||||
msgstr "Dostopne pravice za %s"
|
||||
|
||||
#: views.py:162
|
||||
msgid "Available permissions"
|
||||
@@ -172,9 +179,6 @@ 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."
|
||||
@@ -194,10 +198,8 @@ msgstr ""
|
||||
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
|
||||
#~ msgid "Add new holder for: %s"
|
||||
#~ msgstr "add new holder for: %s"
|
||||
|
||||
@@ -1,41 +1,42 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
|
||||
"Last-Translator: Roberto Rosario\n"
|
||||
"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/"
|
||||
"mayan-edms/language/vi_VN/)\n"
|
||||
"Language: vi_VN\n"
|
||||
"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: vi_VN\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: apps.py:14 links.py:30
|
||||
#: apps.py:14 links.py:31
|
||||
msgid "ACLs"
|
||||
msgstr "ACLs"
|
||||
|
||||
#: apps.py:22 links.py:38 models.py:36
|
||||
#: apps.py:22 links.py:40 models.py:36
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: apps.py:26 models.py:38
|
||||
#| msgid "Roles"
|
||||
msgid "Role"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:26
|
||||
#: links.py:27
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:34
|
||||
#: links.py:35
|
||||
#| msgid "View ACLs"
|
||||
msgid "New ACL"
|
||||
msgstr ""
|
||||
|
||||
@@ -51,7 +52,13 @@ msgstr ""
|
||||
msgid "Access entries"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:60
|
||||
#: 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
|
||||
msgid "None"
|
||||
msgstr "None"
|
||||
|
||||
@@ -74,6 +81,7 @@ msgstr ""
|
||||
|
||||
#: views.py:109
|
||||
#, python-format
|
||||
#| msgid "Default ACLs"
|
||||
msgid "Delete ACL: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -171,9 +179,6 @@ 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."
|
||||
@@ -193,10 +198,8 @@ msgstr ""
|
||||
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
|
||||
#~ msgid "Add new holder for: %s"
|
||||
#~ msgstr "add new holder for: %s"
|
||||
|
||||
@@ -1,41 +1,42 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:03+0000\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-10-28 07:32+0000\n"
|
||||
"Last-Translator: Roberto Rosario\n"
|
||||
"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/"
|
||||
"language/zh_CN/)\n"
|
||||
"Language: zh_CN\n"
|
||||
"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: zh_CN\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: apps.py:14 links.py:30
|
||||
#: apps.py:14 links.py:31
|
||||
msgid "ACLs"
|
||||
msgstr "访问控制列表"
|
||||
|
||||
#: apps.py:22 links.py:38 models.py:36
|
||||
#: apps.py:22 links.py:40 models.py:36
|
||||
msgid "Permissions"
|
||||
msgstr "权限"
|
||||
|
||||
#: apps.py:26 models.py:38
|
||||
#| msgid "Roles"
|
||||
msgid "Role"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:26
|
||||
#: links.py:27
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:34
|
||||
#: links.py:35
|
||||
#| msgid "View ACLs"
|
||||
msgid "New ACL"
|
||||
msgstr ""
|
||||
|
||||
@@ -51,7 +52,13 @@ msgstr "访问入口"
|
||||
msgid "Access entries"
|
||||
msgstr "多个访问入口"
|
||||
|
||||
#: models.py:60
|
||||
#: 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
|
||||
msgid "None"
|
||||
msgstr "无"
|
||||
|
||||
@@ -74,6 +81,7 @@ msgstr ""
|
||||
|
||||
#: views.py:109
|
||||
#, python-format
|
||||
#| msgid "Default ACLs"
|
||||
msgid "Delete ACL: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -171,9 +179,6 @@ 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."
|
||||
@@ -193,10 +198,8 @@ msgstr ""
|
||||
#~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
#~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr ""
|
||||
#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
|
||||
|
||||
#~ msgid "Add new holder for: %s"
|
||||
#~ msgstr "add new holder for: %s"
|
||||
|
||||
@@ -9,6 +9,7 @@ from django.db.models import Q
|
||||
from django.utils.translation import ugettext
|
||||
|
||||
from common.utils import return_attrib
|
||||
from permissions import Permission
|
||||
from permissions.models import StoredPermission
|
||||
|
||||
from .classes import ModelPermission
|
||||
@@ -51,78 +52,100 @@ class AccessControlListManager(models.Manager):
|
||||
return True
|
||||
|
||||
try:
|
||||
stored_permissions = [
|
||||
permission.stored_permission for permission in permissions
|
||||
]
|
||||
except TypeError:
|
||||
# Not a list of permissions, just one
|
||||
stored_permissions = [permissions.stored_permission]
|
||||
|
||||
if related:
|
||||
obj = return_attrib(obj, related)
|
||||
|
||||
try:
|
||||
parent_accessor = ModelPermission.get_inheritance(obj._meta.model)
|
||||
except KeyError:
|
||||
pass
|
||||
else:
|
||||
return Permission.check_permissions(
|
||||
requester=user, permissions=permissions
|
||||
)
|
||||
except PermissionDenied:
|
||||
try:
|
||||
return self.check_access(
|
||||
permissions, user, getattr(obj, parent_accessor)
|
||||
stored_permissions = [
|
||||
permission.stored_permission for permission in permissions
|
||||
]
|
||||
except TypeError:
|
||||
# Not a list of permissions, just one
|
||||
stored_permissions = (permissions.stored_permission,)
|
||||
|
||||
if related:
|
||||
obj = return_attrib(obj, related)
|
||||
|
||||
try:
|
||||
parent_accessor = ModelPermission.get_inheritance(
|
||||
model=obj._meta.model
|
||||
)
|
||||
except PermissionDenied:
|
||||
except AttributeError:
|
||||
# AttributeError means non model objects: ie Statistics
|
||||
# These can't have ACLS so we raise PermissionDenied
|
||||
raise PermissionDenied
|
||||
except KeyError:
|
||||
pass
|
||||
else:
|
||||
try:
|
||||
return self.check_access(
|
||||
permissions, user, getattr(obj, parent_accessor)
|
||||
)
|
||||
except PermissionDenied:
|
||||
pass
|
||||
|
||||
user_roles = []
|
||||
for group in user.organization_groups.all():
|
||||
for role in group.roles.all():
|
||||
if set(stored_permissions).intersection(set(self.get_inherited_permissions(role=role, obj=obj))):
|
||||
return True
|
||||
user_roles = []
|
||||
for group in user.groups.all():
|
||||
for role in group.roles.all():
|
||||
if set(stored_permissions).intersection(set(self.get_inherited_permissions(role=role, obj=obj))):
|
||||
return True
|
||||
|
||||
user_roles.append(role)
|
||||
user_roles.append(role)
|
||||
|
||||
if not self.model.on_organization.filter(content_type=ContentType.objects.get_for_model(obj), object_id=obj.pk, permissions__in=stored_permissions, role__in=user_roles).exists():
|
||||
raise PermissionDenied(ugettext('Insufficient access.'))
|
||||
if not self.filter(content_type=ContentType.objects.get_for_model(obj), object_id=obj.pk, permissions__in=stored_permissions, role__in=user_roles).exists():
|
||||
raise PermissionDenied(ugettext('Insufficient access.'))
|
||||
|
||||
def filter_by_access(self, permission, user, queryset):
|
||||
if user.is_superuser or user.is_staff:
|
||||
return queryset
|
||||
|
||||
user_roles = []
|
||||
for group in user.organization_groups.all():
|
||||
for role in group.roles.all():
|
||||
user_roles.append(role)
|
||||
|
||||
try:
|
||||
parent_accessor = ModelPermission.get_inheritance(queryset.model)
|
||||
except KeyError:
|
||||
parent_acl_query = Q()
|
||||
else:
|
||||
instance = queryset.first()
|
||||
if instance:
|
||||
parent_object = getattr(instance, parent_accessor)
|
||||
parent_content_type = ContentType.objects.get_for_model(
|
||||
parent_object
|
||||
Permission.check_permissions(
|
||||
requester=user, permissions=(permission,)
|
||||
)
|
||||
except PermissionDenied:
|
||||
user_roles = []
|
||||
for group in user.groups.all():
|
||||
for role in group.roles.all():
|
||||
user_roles.append(role)
|
||||
|
||||
try:
|
||||
parent_accessor = ModelPermission.get_inheritance(
|
||||
model=queryset.model
|
||||
)
|
||||
parent_queryset = self.filter(
|
||||
content_type=parent_content_type, role__in=user_roles,
|
||||
permissions=permission.stored_permission
|
||||
)
|
||||
parent_acl_query = Q(
|
||||
**{
|
||||
'{}__pk__in'.format(
|
||||
parent_accessor
|
||||
): parent_queryset.values_list('object_id', flat=True)
|
||||
}
|
||||
)
|
||||
else:
|
||||
except KeyError:
|
||||
parent_acl_query = Q()
|
||||
else:
|
||||
instance = queryset.first()
|
||||
if instance:
|
||||
parent_object = getattr(instance, parent_accessor)
|
||||
parent_content_type = ContentType.objects.get_for_model(
|
||||
parent_object
|
||||
)
|
||||
parent_queryset = self.filter(
|
||||
content_type=parent_content_type, role__in=user_roles,
|
||||
permissions=permission.stored_permission
|
||||
)
|
||||
parent_acl_query = Q(
|
||||
**{
|
||||
'{}__pk__in'.format(
|
||||
parent_accessor
|
||||
): parent_queryset.values_list(
|
||||
'object_id', flat=True
|
||||
)
|
||||
}
|
||||
)
|
||||
else:
|
||||
parent_acl_query = Q()
|
||||
|
||||
# Directly granted access
|
||||
content_type = ContentType.objects.get_for_model(queryset.model)
|
||||
acl_query = Q(pk__in=self.filter(
|
||||
content_type=content_type, role__in=user_roles,
|
||||
permissions=permission.stored_permission
|
||||
).values_list('object_id', flat=True))
|
||||
# Directly granted access
|
||||
content_type = ContentType.objects.get_for_model(queryset.model)
|
||||
acl_query = Q(pk__in=self.filter(
|
||||
content_type=content_type, role__in=user_roles,
|
||||
permissions=permission.stored_permission
|
||||
).values_list('object_id', flat=True))
|
||||
|
||||
return queryset.filter(parent_acl_query | acl_query)
|
||||
return queryset.filter(parent_acl_query | acl_query)
|
||||
else:
|
||||
return queryset
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
import organizations.shortcuts
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('organizations', '0002_add_data_default_organization'),
|
||||
('acls', '0002_auto_20150703_0513'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='accesscontrollist',
|
||||
name='organization',
|
||||
field=models.ForeignKey(default=organizations.shortcuts.get_current_organization, to='organizations.Organization'),
|
||||
),
|
||||
]
|
||||
@@ -8,9 +8,6 @@ from django.db import models
|
||||
from django.utils.encoding import python_2_unicode_compatible
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from organizations.models import Organization
|
||||
from organizations.managers import CurrentOrganizationManager
|
||||
from organizations.shortcuts import get_current_organization
|
||||
from permissions.models import Role, StoredPermission
|
||||
|
||||
from .managers import AccessControlListManager
|
||||
@@ -33,9 +30,6 @@ class AccessControlList(models.Model):
|
||||
ct_field='content_type',
|
||||
fk_field='object_id',
|
||||
)
|
||||
organization = models.ForeignKey(
|
||||
Organization, default=get_current_organization
|
||||
)
|
||||
# TODO: limit choices to the permissions valid for the content_object
|
||||
permissions = models.ManyToManyField(
|
||||
StoredPermission, blank=True, related_name='acls',
|
||||
@@ -44,7 +38,6 @@ class AccessControlList(models.Model):
|
||||
role = models.ForeignKey(Role, related_name='acls', verbose_name=_('Role'))
|
||||
|
||||
objects = AccessControlListManager()
|
||||
on_organization = CurrentOrganizationManager()
|
||||
|
||||
class Meta:
|
||||
unique_together = ('content_type', 'object_id', 'role')
|
||||
|
||||
@@ -1,17 +1,16 @@
|
||||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.auth.models import Group
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.test import TestCase, override_settings
|
||||
|
||||
from documents.models import Document, DocumentType
|
||||
from documents.permissions import permission_document_view
|
||||
from documents.tests import TEST_SMALL_DOCUMENT_PATH, TEST_DOCUMENT_TYPE
|
||||
from organizations.tests.base import OrganizationTestCase
|
||||
from permissions.classes import Permission
|
||||
from permissions.models import Role
|
||||
from permissions.tests.literals import TEST_ROLE_LABEL
|
||||
from user_management.models import MayanGroup
|
||||
from user_management.tests.literals import TEST_USER_USERNAME, TEST_GROUP
|
||||
|
||||
from ..models import AccessControlList
|
||||
@@ -20,15 +19,13 @@ TEST_DOCUMENT_TYPE_2 = 'test document type 2'
|
||||
|
||||
|
||||
@override_settings(OCR_AUTO_OCR=False)
|
||||
class PermissionTestCase(OrganizationTestCase):
|
||||
class PermissionTestCase(TestCase):
|
||||
def setUp(self):
|
||||
super(PermissionTestCase, self).setUp()
|
||||
|
||||
self.document_type_1 = DocumentType.on_organization.create(
|
||||
self.document_type_1 = DocumentType.objects.create(
|
||||
label=TEST_DOCUMENT_TYPE
|
||||
)
|
||||
|
||||
self.document_type_2 = DocumentType.on_organization.create(
|
||||
self.document_type_2 = DocumentType.objects.create(
|
||||
label=TEST_DOCUMENT_TYPE_2
|
||||
)
|
||||
|
||||
@@ -47,23 +44,21 @@ class PermissionTestCase(OrganizationTestCase):
|
||||
file_object=file_object
|
||||
)
|
||||
|
||||
self.user = get_user_model().on_organization.create(
|
||||
self.user = get_user_model().objects.create(
|
||||
username=TEST_USER_USERNAME
|
||||
)
|
||||
self.group = MayanGroup.on_organization.create(name=TEST_GROUP)
|
||||
self.role = Role.on_organization.create(label=TEST_ROLE_LABEL)
|
||||
self.group = Group.objects.create(name=TEST_GROUP)
|
||||
self.role = Role.objects.create(label=TEST_ROLE_LABEL)
|
||||
|
||||
self.group.users.add(self.user)
|
||||
self.role.organization_groups.add(self.group)
|
||||
self.group.user_set.add(self.user)
|
||||
self.role.groups.add(self.group)
|
||||
|
||||
Permission.invalidate_cache()
|
||||
|
||||
def tearDown(self):
|
||||
for document_type in DocumentType.on_organization.all():
|
||||
for document_type in DocumentType.objects.all():
|
||||
document_type.delete()
|
||||
|
||||
super(PermissionTestCase, self).tearDown()
|
||||
|
||||
def test_check_access_without_permissions(self):
|
||||
with self.assertRaises(PermissionDenied):
|
||||
AccessControlList.objects.check_access(
|
||||
@@ -80,7 +75,7 @@ class PermissionTestCase(OrganizationTestCase):
|
||||
)
|
||||
|
||||
def test_check_access_with_acl(self):
|
||||
acl = AccessControlList.on_organization.create(
|
||||
acl = AccessControlList.objects.create(
|
||||
content_object=self.document_1, role=self.role
|
||||
)
|
||||
acl.permissions.add(permission_document_view.stored_permission)
|
||||
@@ -94,9 +89,7 @@ class PermissionTestCase(OrganizationTestCase):
|
||||
self.fail('PermissionDenied exception was not expected.')
|
||||
|
||||
def test_filtering_with_permissions(self):
|
||||
self.role.permissions.add(permission_document_view.stored_permission)
|
||||
|
||||
acl = AccessControlList.on_organization.create(
|
||||
acl = AccessControlList.objects.create(
|
||||
content_object=self.document_1, role=self.role
|
||||
)
|
||||
acl.permissions.add(permission_document_view.stored_permission)
|
||||
@@ -109,7 +102,7 @@ class PermissionTestCase(OrganizationTestCase):
|
||||
)
|
||||
|
||||
def test_check_access_with_inherited_acl(self):
|
||||
acl = AccessControlList.on_organization.create(
|
||||
acl = AccessControlList.objects.create(
|
||||
content_object=self.document_type_1, role=self.role
|
||||
)
|
||||
acl.permissions.add(permission_document_view.stored_permission)
|
||||
@@ -123,12 +116,12 @@ class PermissionTestCase(OrganizationTestCase):
|
||||
self.fail('PermissionDenied exception was not expected.')
|
||||
|
||||
def test_check_access_with_inherited_acl_and_local_acl(self):
|
||||
acl = AccessControlList.on_organization.create(
|
||||
acl = AccessControlList.objects.create(
|
||||
content_object=self.document_type_1, role=self.role
|
||||
)
|
||||
acl.permissions.add(permission_document_view.stored_permission)
|
||||
|
||||
acl = AccessControlList.on_organization.create(
|
||||
acl = AccessControlList.objects.create(
|
||||
content_object=self.document_3, role=self.role
|
||||
)
|
||||
acl.permissions.add(permission_document_view.stored_permission)
|
||||
@@ -142,9 +135,7 @@ class PermissionTestCase(OrganizationTestCase):
|
||||
self.fail('PermissionDenied exception was not expected.')
|
||||
|
||||
def test_filtering_with_inherited_permissions(self):
|
||||
self.role.permissions.add(permission_document_view.stored_permission)
|
||||
|
||||
acl = AccessControlList.on_organization.create(
|
||||
acl = AccessControlList.objects.create(
|
||||
content_object=self.document_type_1, role=self.role
|
||||
)
|
||||
acl.permissions.add(permission_document_view.stored_permission)
|
||||
@@ -153,6 +144,10 @@ class PermissionTestCase(OrganizationTestCase):
|
||||
permission=permission_document_view, user=self.user,
|
||||
queryset=Document.objects.all()
|
||||
)
|
||||
|
||||
# Since document_1 and document_2 are of document_type_1
|
||||
# they are the only ones that should be returned
|
||||
|
||||
self.assertTrue(self.document_1 in result)
|
||||
self.assertTrue(self.document_2 in result)
|
||||
self.assertTrue(self.document_3 not in result)
|
||||
@@ -160,12 +155,12 @@ class PermissionTestCase(OrganizationTestCase):
|
||||
def test_filtering_with_inherited_permissions_and_local_acl(self):
|
||||
self.role.permissions.add(permission_document_view.stored_permission)
|
||||
|
||||
acl = AccessControlList.on_organization.create(
|
||||
acl = AccessControlList.objects.create(
|
||||
content_object=self.document_type_1, role=self.role
|
||||
)
|
||||
acl.permissions.add(permission_document_view.stored_permission)
|
||||
|
||||
acl = AccessControlList.on_organization.create(
|
||||
acl = AccessControlList.objects.create(
|
||||
content_object=self.document_3, role=self.role
|
||||
)
|
||||
acl.permissions.add(permission_document_view.stored_permission)
|
||||
|
||||
@@ -8,7 +8,7 @@ from user_management.tests import (
|
||||
)
|
||||
|
||||
from ..models import AccessControlList
|
||||
from ..permissions import permission_acl_edit
|
||||
from ..permissions import permission_acl_edit, permission_acl_view
|
||||
|
||||
|
||||
class AccessControlListViewTestCase(GenericDocumentViewTestCase):
|
||||
@@ -26,6 +26,35 @@ class AccessControlListViewTestCase(GenericDocumentViewTestCase):
|
||||
def test_acl_create_view_no_permission(self):
|
||||
self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD)
|
||||
|
||||
response = self.get(
|
||||
viewname='acls:acl_create', kwargs=self.view_arguments, data={
|
||||
'role': self.role.pk
|
||||
}
|
||||
)
|
||||
|
||||
self.assertEquals(response.status_code, 403)
|
||||
self.assertEqual(AccessControlList.objects.count(), 0)
|
||||
|
||||
def test_acl_create_view_with_permission(self):
|
||||
self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD)
|
||||
|
||||
self.role.permissions.add(
|
||||
permission_acl_edit.stored_permission
|
||||
)
|
||||
|
||||
response = self.get(
|
||||
viewname='acls:acl_create', kwargs=self.view_arguments, data={
|
||||
'role': self.role.pk
|
||||
}, follow=True
|
||||
)
|
||||
|
||||
self.assertContains(
|
||||
response, text=self.document.label, status_code=200
|
||||
)
|
||||
|
||||
def test_acl_create_view_post_no_permission(self):
|
||||
self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD)
|
||||
|
||||
response = self.post(
|
||||
viewname='acls:acl_create', kwargs=self.view_arguments, data={
|
||||
'role': self.role.pk
|
||||
@@ -33,9 +62,9 @@ class AccessControlListViewTestCase(GenericDocumentViewTestCase):
|
||||
)
|
||||
|
||||
self.assertEquals(response.status_code, 403)
|
||||
self.assertEqual(AccessControlList.on_organization.count(), 0)
|
||||
self.assertEqual(AccessControlList.objects.count(), 0)
|
||||
|
||||
def test_acl_create_view_with_permission(self):
|
||||
def test_acl_create_view_with_post_permission(self):
|
||||
self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD)
|
||||
|
||||
self.role.permissions.add(
|
||||
@@ -49,7 +78,7 @@ class AccessControlListViewTestCase(GenericDocumentViewTestCase):
|
||||
)
|
||||
|
||||
self.assertContains(response, text='created', status_code=200)
|
||||
self.assertEqual(AccessControlList.on_organization.count(), 1)
|
||||
self.assertEqual(AccessControlList.objects.count(), 1)
|
||||
|
||||
def test_acl_create_duplicate_view_with_permission(self):
|
||||
"""
|
||||
@@ -57,7 +86,7 @@ class AccessControlListViewTestCase(GenericDocumentViewTestCase):
|
||||
Result: Should redirect to existing ACL for object + role combination
|
||||
"""
|
||||
|
||||
acl = AccessControlList.on_organization.create(
|
||||
acl = AccessControlList.objects.create(
|
||||
content_object=self.document, role=self.role
|
||||
)
|
||||
|
||||
@@ -76,8 +105,8 @@ class AccessControlListViewTestCase(GenericDocumentViewTestCase):
|
||||
self.assertContains(
|
||||
response, text='vailable permissions', status_code=200
|
||||
)
|
||||
self.assertEqual(AccessControlList.on_organization.count(), 1)
|
||||
self.assertEqual(AccessControlList.on_organization.first().pk, acl.pk)
|
||||
self.assertEqual(AccessControlList.objects.count(), 1)
|
||||
self.assertEqual(AccessControlList.objects.first().pk, acl.pk)
|
||||
|
||||
def test_orphan_acl_create_view_with_permission(self):
|
||||
"""
|
||||
@@ -108,4 +137,61 @@ class AccessControlListViewTestCase(GenericDocumentViewTestCase):
|
||||
)
|
||||
|
||||
self.assertNotContains(response, text='optgroup', status_code=200)
|
||||
self.assertEqual(AccessControlList.on_organization.count(), 1)
|
||||
self.assertEqual(AccessControlList.objects.count(), 1)
|
||||
|
||||
def test_acl_list_view_no_permission(self):
|
||||
self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD)
|
||||
|
||||
document = self.document.add_as_recent_document_for_user(
|
||||
self.user
|
||||
).document
|
||||
|
||||
acl = AccessControlList.objects.create(
|
||||
content_object=document, role=self.role
|
||||
)
|
||||
acl.permissions.add(permission_acl_edit.stored_permission)
|
||||
|
||||
content_type = ContentType.objects.get_for_model(document)
|
||||
|
||||
view_arguments = {
|
||||
'app_label': content_type.app_label,
|
||||
'model': content_type.model,
|
||||
'object_id': document.pk
|
||||
}
|
||||
|
||||
response = self.get(
|
||||
viewname='acls:acl_list', kwargs=view_arguments
|
||||
)
|
||||
|
||||
self.assertNotContains(response, text=document.label, status_code=403)
|
||||
self.assertNotContains(response, text='otal: 1', status_code=403)
|
||||
|
||||
def test_acl_list_view_with_permission(self):
|
||||
self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD)
|
||||
|
||||
self.role.permissions.add(
|
||||
permission_acl_view.stored_permission
|
||||
)
|
||||
|
||||
document = self.document.add_as_recent_document_for_user(
|
||||
self.user
|
||||
).document
|
||||
|
||||
acl = AccessControlList.objects.create(
|
||||
content_object=document, role=self.role
|
||||
)
|
||||
acl.permissions.add(permission_acl_view.stored_permission)
|
||||
|
||||
content_type = ContentType.objects.get_for_model(document)
|
||||
|
||||
view_arguments = {
|
||||
'app_label': content_type.app_label,
|
||||
'model': content_type.model,
|
||||
'object_id': document.pk
|
||||
}
|
||||
|
||||
response = self.get(
|
||||
viewname='acls:acl_list', kwargs=view_arguments
|
||||
)
|
||||
self.assertContains(response, text=document.label, status_code=200)
|
||||
self.assertContains(response, text='otal: 1', status_code=200)
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from .views import (
|
||||
ACLCreateView, ACLDeleteView, ACLListView, ACLPermissionsView
|
||||
)
|
||||
|
||||
urlpatterns = patterns(
|
||||
'acls.views',
|
||||
urlpatterns = [
|
||||
url(
|
||||
r'^(?P<app_label>[-\w]+)/(?P<model>[-\w]+)/(?P<object_id>\d+)/create/$',
|
||||
ACLCreateView.as_view(), name='acl_create'
|
||||
@@ -21,4 +20,4 @@ urlpatterns = patterns(
|
||||
r'^(?P<pk>\d+)/permissions/$', ACLPermissionsView.as_view(),
|
||||
name='acl_permissions'
|
||||
),
|
||||
)
|
||||
]
|
||||
|
||||
@@ -4,7 +4,6 @@ import itertools
|
||||
import logging
|
||||
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.http import Http404, HttpResponseRedirect
|
||||
from django.shortcuts import get_object_or_404
|
||||
@@ -14,7 +13,7 @@ from common.views import (
|
||||
AssignRemoveView, SingleObjectCreateView, SingleObjectDeleteView,
|
||||
SingleObjectListView
|
||||
)
|
||||
from permissions import Permission, PermissionNamespace
|
||||
from permissions import PermissionNamespace
|
||||
from permissions.models import StoredPermission
|
||||
|
||||
from .classes import ModelPermission
|
||||
@@ -26,35 +25,37 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
class ACLCreateView(SingleObjectCreateView):
|
||||
fields = ('role',)
|
||||
model = AccessControlList
|
||||
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
self.content_type = get_object_or_404(
|
||||
self.object_content_type = get_object_or_404(
|
||||
ContentType, app_label=self.kwargs['app_label'],
|
||||
model=self.kwargs['model']
|
||||
)
|
||||
|
||||
try:
|
||||
self.content_object = self.content_type.get_object_for_this_type(
|
||||
self.content_object = self.object_content_type.get_object_for_this_type(
|
||||
pk=self.kwargs['object_id']
|
||||
)
|
||||
except self.content_type.model_class().DoesNotExist:
|
||||
except self.object_content_type.model_class().DoesNotExist:
|
||||
raise Http404
|
||||
|
||||
try:
|
||||
Permission.check_permissions(
|
||||
request.user, permissions=(permission_acl_edit,)
|
||||
)
|
||||
except PermissionDenied:
|
||||
AccessControlList.objects.check_access(
|
||||
permission_acl_edit, request.user, self.content_object
|
||||
)
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_acl_edit, user=request.user,
|
||||
obj=self.content_object
|
||||
)
|
||||
|
||||
return super(ACLCreateView, self).dispatch(request, *args, **kwargs)
|
||||
|
||||
def get_instance_extra_data(self):
|
||||
return {
|
||||
'content_object': self.content_object
|
||||
}
|
||||
|
||||
def form_valid(self, form):
|
||||
try:
|
||||
acl = AccessControlList.on_organization.get(
|
||||
content_type=self.content_type,
|
||||
acl = AccessControlList.objects.get(
|
||||
content_type=self.object_content_type,
|
||||
object_id=self.content_object.pk,
|
||||
role=form.cleaned_data['role']
|
||||
)
|
||||
@@ -73,14 +74,6 @@ class ACLCreateView(SingleObjectCreateView):
|
||||
) % self.content_object
|
||||
}
|
||||
|
||||
def get_instance_extra_data(self):
|
||||
return {
|
||||
'content_object': self.content_object
|
||||
}
|
||||
|
||||
def get_queryset(self):
|
||||
return AccessControlList.on_organization.all()
|
||||
|
||||
def get_success_url(self):
|
||||
if self.object.pk:
|
||||
return reverse('acls:acl_permissions', args=(self.object.pk,))
|
||||
@@ -89,17 +82,15 @@ class ACLCreateView(SingleObjectCreateView):
|
||||
|
||||
|
||||
class ACLDeleteView(SingleObjectDeleteView):
|
||||
model = AccessControlList
|
||||
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
acl = get_object_or_404(AccessControlList, pk=self.kwargs['pk'])
|
||||
|
||||
try:
|
||||
Permission.check_permissions(
|
||||
request.user, permissions=(permission_acl_edit,)
|
||||
)
|
||||
except PermissionDenied:
|
||||
AccessControlList.objects.check_access(
|
||||
permission_acl_edit, request.user, acl.content_object
|
||||
)
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_acl_edit, user=request.user,
|
||||
obj=acl.content_object
|
||||
)
|
||||
|
||||
return super(ACLDeleteView, self).dispatch(request, *args, **kwargs)
|
||||
|
||||
@@ -118,32 +109,25 @@ class ACLDeleteView(SingleObjectDeleteView):
|
||||
)
|
||||
)
|
||||
|
||||
def get_queryset(self):
|
||||
return AccessControlList.on_organization.all()
|
||||
|
||||
|
||||
class ACLListView(SingleObjectListView):
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
self.content_type = get_object_or_404(
|
||||
self.object_content_type = get_object_or_404(
|
||||
ContentType, app_label=self.kwargs['app_label'],
|
||||
model=self.kwargs['model']
|
||||
)
|
||||
|
||||
try:
|
||||
self.content_object = self.content_type.get_object_for_this_type(
|
||||
self.content_object = self.object_content_type.get_object_for_this_type(
|
||||
pk=self.kwargs['object_id']
|
||||
)
|
||||
except self.content_type.model_class().DoesNotExist:
|
||||
except self.object_content_type.model_class().DoesNotExist:
|
||||
raise Http404
|
||||
|
||||
try:
|
||||
Permission.check_permissions(
|
||||
request.user, permissions=(permission_acl_view,)
|
||||
)
|
||||
except PermissionDenied:
|
||||
AccessControlList.objects.check_access(
|
||||
permission_acl_view, request.user, self.content_object
|
||||
)
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_acl_view, user=request.user,
|
||||
obj=self.content_object
|
||||
)
|
||||
|
||||
return super(ACLListView, self).dispatch(request, *args, **kwargs)
|
||||
|
||||
@@ -155,8 +139,8 @@ class ACLListView(SingleObjectListView):
|
||||
}
|
||||
|
||||
def get_queryset(self):
|
||||
return AccessControlList.on_organization.filter(
|
||||
content_type=self.content_type, object_id=self.content_object.pk
|
||||
return AccessControlList.objects.filter(
|
||||
content_type=self.object_content_type, object_id=self.content_object.pk
|
||||
)
|
||||
|
||||
|
||||
@@ -186,14 +170,10 @@ class ACLPermissionsView(AssignRemoveView):
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
acl = get_object_or_404(AccessControlList, pk=self.kwargs['pk'])
|
||||
|
||||
try:
|
||||
Permission.check_permissions(
|
||||
request.user, permissions=(permission_acl_edit,)
|
||||
)
|
||||
except PermissionDenied:
|
||||
AccessControlList.objects.check_access(
|
||||
permission_acl_edit, request.user, acl.content_object
|
||||
)
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_acl_edit, user=request.user,
|
||||
obj=acl.content_object
|
||||
)
|
||||
|
||||
return super(
|
||||
ACLPermissionsView, self
|
||||
|
||||
@@ -3,7 +3,8 @@ from __future__ import unicode_literals
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from common import MayanAppConfig
|
||||
from common.classes import Package
|
||||
|
||||
from .licenses import * # NOQA
|
||||
|
||||
|
||||
class AppearanceApp(MayanAppConfig):
|
||||
@@ -12,144 +13,3 @@ class AppearanceApp(MayanAppConfig):
|
||||
|
||||
def ready(self):
|
||||
super(AppearanceApp, self).ready()
|
||||
|
||||
Package(label='Bootstrap', license_text='''
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2011-2015 Twitter, Inc
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
''')
|
||||
|
||||
Package(label='Animate.css', license_text='''
|
||||
Animate.css is licensed under the MIT license. (http://opensource.org/licenses/MIT)
|
||||
''')
|
||||
|
||||
Package(label='Bootswatch', license_text='''
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2013 Thomas Park
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
''')
|
||||
|
||||
Package(label='fancyBox', license_text='''
|
||||
fancyBox licensed under Creative Commons Attribution-NonCommercial 3.0 license.
|
||||
''')
|
||||
|
||||
Package(label='jquery_lazyload', license_text='''
|
||||
All code licensed under the MIT License. All images licensed under Creative Commons Attribution 3.0 Unported License. In other words you are basically free to do whatever you want. Just don't remove my name from the source.
|
||||
''')
|
||||
|
||||
Package(label='ScrollView', license_text='''
|
||||
Copyright (c) 2009 Toshimitsu Takahashi
|
||||
Released under the MIT license.
|
||||
''')
|
||||
|
||||
Package(label='Font Awesome', license_text='''
|
||||
Font License
|
||||
|
||||
Applies to all desktop and webfont files in the following directory: font-awesome/fonts/.
|
||||
License: SIL OFL 1.1
|
||||
URL: http://scripts.sil.org/OFL
|
||||
|
||||
Code License
|
||||
|
||||
Applies to all CSS and LESS files in the following directories: font-awesome/css/, font-awesome/less/, and font-awesome/scss/.
|
||||
License: MIT License
|
||||
URL: http://opensource.org/licenses/mit-license.html
|
||||
|
||||
''')
|
||||
|
||||
Package(label='jQuery', license_text='''
|
||||
Copyright jQuery Foundation and other contributors, https://jquery.org/
|
||||
|
||||
This software consists of voluntary contributions made by many
|
||||
individuals. For exact contribution history, see the revision history
|
||||
available at https://github.com/jquery/jquery
|
||||
|
||||
The following license applies to all parts of this software except as
|
||||
documented below:
|
||||
|
||||
====
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
====
|
||||
|
||||
All files located in the node_modules and external directories are
|
||||
externally maintained libraries used by this software which have their
|
||||
own licenses; we recommend you read them, as their terms may differ from
|
||||
the terms above.
|
||||
''')
|
||||
|
||||
Package(label='django-widget-tweaks', license_text='''
|
||||
Copyright (c) 2011-2015 Mikhail Korobov
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
''')
|
||||
|
||||
144
mayan/apps/appearance/licenses.py
Normal file
@@ -0,0 +1,144 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from common.classes import Package
|
||||
|
||||
Package(label='Bootstrap', license_text='''
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2011-2015 Twitter, Inc
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
''')
|
||||
|
||||
Package(label='Animate.css', license_text='''
|
||||
Animate.css is licensed under the MIT license. (http://opensource.org/licenses/MIT)
|
||||
''')
|
||||
|
||||
Package(label='Bootswatch', license_text='''
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2013 Thomas Park
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
''')
|
||||
|
||||
Package(label='fancyBox', license_text='''
|
||||
fancyBox licensed under Creative Commons Attribution-NonCommercial 3.0 license.
|
||||
''')
|
||||
|
||||
Package(label='jquery_lazyload', license_text='''
|
||||
All code licensed under the MIT License. All images licensed under Creative Commons Attribution 3.0 Unported License. In other words you are basically free to do whatever you want. Just don't remove my name from the source.
|
||||
''')
|
||||
|
||||
Package(label='ScrollView', license_text='''
|
||||
Copyright (c) 2009 Toshimitsu Takahashi
|
||||
Released under the MIT license.
|
||||
''')
|
||||
|
||||
Package(label='Font Awesome', license_text='''
|
||||
Font License
|
||||
|
||||
Applies to all desktop and webfont files in the following directory: font-awesome/fonts/.
|
||||
License: SIL OFL 1.1
|
||||
URL: http://scripts.sil.org/OFL
|
||||
|
||||
Code License
|
||||
|
||||
Applies to all CSS and LESS files in the following directories: font-awesome/css/, font-awesome/less/, and font-awesome/scss/.
|
||||
License: MIT License
|
||||
URL: http://opensource.org/licenses/mit-license.html
|
||||
|
||||
''')
|
||||
|
||||
Package(label='jQuery', license_text='''
|
||||
Copyright jQuery Foundation and other contributors, https://jquery.org/
|
||||
|
||||
This software consists of voluntary contributions made by many
|
||||
individuals. For exact contribution history, see the revision history
|
||||
available at https://github.com/jquery/jquery
|
||||
|
||||
The following license applies to all parts of this software except as
|
||||
documented below:
|
||||
|
||||
====
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
====
|
||||
|
||||
All files located in the node_modules and external directories are
|
||||
externally maintained libraries used by this software which have their
|
||||
own licenses; we recommend you read them, as their terms may differ from
|
||||
the terms above.
|
||||
''')
|
||||
|
||||
Package(label='django-widget-tweaks', license_text='''
|
||||
Copyright (c) 2011-2015 Mikhail Korobov
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
''')
|
||||
@@ -1,23 +1,21 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:06+0000\n"
|
||||
"Last-Translator: Roberto Rosario\n"
|
||||
"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/"
|
||||
"ar/)\n"
|
||||
"Language: ar\n"
|
||||
"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\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"
|
||||
"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:11
|
||||
msgid "Appearance"
|
||||
@@ -45,8 +43,8 @@ msgstr ""
|
||||
|
||||
#: templates/500.html:11
|
||||
msgid ""
|
||||
"There's been an error. It's been reported to the site administrators via e-"
|
||||
"mail and should be fixed shortly. Thanks for your patience."
|
||||
"There's been an error. It's been reported to the site administrators via "
|
||||
"e-mail and should be fixed shortly. Thanks for your patience."
|
||||
msgstr ""
|
||||
|
||||
#: templates/500.html:14
|
||||
@@ -171,7 +169,7 @@ msgstr "ارسال"
|
||||
msgid "Cancel"
|
||||
msgstr "إلغاء"
|
||||
|
||||
#: templates/appearance/generic_list_horizontal.html:20
|
||||
#: templates/appearance/generic_list_horizontal.html:21
|
||||
#: templates/appearance/generic_list_subtemplate.html:108
|
||||
msgid "No results"
|
||||
msgstr ""
|
||||
@@ -229,9 +227,7 @@ msgstr "First time login"
|
||||
msgid ""
|
||||
"You have just finished installing <strong>Mayan EDMS</strong>, "
|
||||
"congratulations!"
|
||||
msgstr ""
|
||||
"You have just finished installing <strong>Mayan EDMS</strong>, "
|
||||
"congratulations!"
|
||||
msgstr "You have just finished installing <strong>Mayan EDMS</strong>, congratulations!"
|
||||
|
||||
#: templates/appearance/login.html:25
|
||||
msgid "Login using the following credentials:"
|
||||
@@ -256,9 +252,7 @@ msgstr "Password: <strong>%(password)s</strong>"
|
||||
msgid ""
|
||||
"Be sure to change the password to increase security and to disable this "
|
||||
"message."
|
||||
msgstr ""
|
||||
"Be sure to change the password to increase security and to disable this "
|
||||
"message."
|
||||
msgstr "Be sure to change the password to increase security and to disable this message."
|
||||
|
||||
#: templates/appearance/login.html:45 templates/appearance/login.html.py:54
|
||||
msgid "Sign in"
|
||||
|
||||
@@ -1,21 +1,20 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:06+0000\n"
|
||||
"Last-Translator: Roberto Rosario\n"
|
||||
"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/"
|
||||
"language/bg/)\n"
|
||||
"Language: bg\n"
|
||||
"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: bg\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: apps.py:11
|
||||
@@ -44,8 +43,8 @@ msgstr ""
|
||||
|
||||
#: templates/500.html:11
|
||||
msgid ""
|
||||
"There's been an error. It's been reported to the site administrators via e-"
|
||||
"mail and should be fixed shortly. Thanks for your patience."
|
||||
"There's been an error. It's been reported to the site administrators via "
|
||||
"e-mail and should be fixed shortly. Thanks for your patience."
|
||||
msgstr ""
|
||||
|
||||
#: templates/500.html:14
|
||||
@@ -170,7 +169,7 @@ msgstr "Подаване"
|
||||
msgid "Cancel"
|
||||
msgstr "Отказ"
|
||||
|
||||
#: templates/appearance/generic_list_horizontal.html:20
|
||||
#: templates/appearance/generic_list_horizontal.html:21
|
||||
#: templates/appearance/generic_list_subtemplate.html:108
|
||||
msgid "No results"
|
||||
msgstr ""
|
||||
@@ -228,8 +227,7 @@ msgstr "Логване за първи път"
|
||||
msgid ""
|
||||
"You have just finished installing <strong>Mayan EDMS</strong>, "
|
||||
"congratulations!"
|
||||
msgstr ""
|
||||
"Вие приключихте инсталирането на <strong>Mayan EDMS</strong>, поздравления!"
|
||||
msgstr "Вие приключихте инсталирането на <strong>Mayan EDMS</strong>, поздравления!"
|
||||
|
||||
#: templates/appearance/login.html:25
|
||||
msgid "Login using the following credentials:"
|
||||
@@ -254,9 +252,7 @@ msgstr "Парола: <strong>%(password)s</strong>"
|
||||
msgid ""
|
||||
"Be sure to change the password to increase security and to disable this "
|
||||
"message."
|
||||
msgstr ""
|
||||
"Моля променете паролата, за да повишите нивото на сигурност и да "
|
||||
"деактивирате това съобщение."
|
||||
msgstr "Моля променете паролата, за да повишите нивото на сигурност и да деактивирате това съобщение."
|
||||
|
||||
#: templates/appearance/login.html:45 templates/appearance/login.html.py:54
|
||||
msgid "Sign in"
|
||||
|
||||
@@ -1,23 +1,21 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:06+0000\n"
|
||||
"Last-Translator: Roberto Rosario\n"
|
||||
"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/"
|
||||
"rosarior/mayan-edms/language/bs_BA/)\n"
|
||||
"Language: bs_BA\n"
|
||||
"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\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"
|
||||
"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:11
|
||||
msgid "Appearance"
|
||||
@@ -45,8 +43,8 @@ msgstr ""
|
||||
|
||||
#: templates/500.html:11
|
||||
msgid ""
|
||||
"There's been an error. It's been reported to the site administrators via e-"
|
||||
"mail and should be fixed shortly. Thanks for your patience."
|
||||
"There's been an error. It's been reported to the site administrators via "
|
||||
"e-mail and should be fixed shortly. Thanks for your patience."
|
||||
msgstr ""
|
||||
|
||||
#: templates/500.html:14
|
||||
@@ -171,7 +169,7 @@ msgstr "Podnijeti"
|
||||
msgid "Cancel"
|
||||
msgstr "Otkazati"
|
||||
|
||||
#: templates/appearance/generic_list_horizontal.html:20
|
||||
#: templates/appearance/generic_list_horizontal.html:21
|
||||
#: templates/appearance/generic_list_subtemplate.html:108
|
||||
msgid "No results"
|
||||
msgstr ""
|
||||
@@ -229,8 +227,7 @@ msgstr "Prijava - prvi put"
|
||||
msgid ""
|
||||
"You have just finished installing <strong>Mayan EDMS</strong>, "
|
||||
"congratulations!"
|
||||
msgstr ""
|
||||
"Upravo ste završili instalaciju <strong>Mayan EDMS</strong>, čestitamo!"
|
||||
msgstr "Upravo ste završili instalaciju <strong>Mayan EDMS</strong>, čestitamo!"
|
||||
|
||||
#: templates/appearance/login.html:25
|
||||
msgid "Login using the following credentials:"
|
||||
@@ -255,9 +252,7 @@ msgstr "Pasvord: <strong>%(password)s</strong>"
|
||||
msgid ""
|
||||
"Be sure to change the password to increase security and to disable this "
|
||||
"message."
|
||||
msgstr ""
|
||||
"Ne zaboravite promijeniti pasvord da pojačate sigurnost i onemogućite dalje "
|
||||
"prikazivanje ove poruke."
|
||||
msgstr "Ne zaboravite promijeniti pasvord da pojačate sigurnost i onemogućite dalje prikazivanje ove poruke."
|
||||
|
||||
#: templates/appearance/login.html:45 templates/appearance/login.html.py:54
|
||||
msgid "Sign in"
|
||||
|
||||
@@ -1,21 +1,20 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:06+0000\n"
|
||||
"Last-Translator: Roberto Rosario\n"
|
||||
"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/"
|
||||
"da/)\n"
|
||||
"Language: da\n"
|
||||
"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: da\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: apps.py:11
|
||||
@@ -44,8 +43,8 @@ msgstr ""
|
||||
|
||||
#: templates/500.html:11
|
||||
msgid ""
|
||||
"There's been an error. It's been reported to the site administrators via e-"
|
||||
"mail and should be fixed shortly. Thanks for your patience."
|
||||
"There's been an error. It's been reported to the site administrators via "
|
||||
"e-mail and should be fixed shortly. Thanks for your patience."
|
||||
msgstr ""
|
||||
|
||||
#: templates/500.html:14
|
||||
@@ -170,7 +169,7 @@ msgstr ""
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: templates/appearance/generic_list_horizontal.html:20
|
||||
#: templates/appearance/generic_list_horizontal.html:21
|
||||
#: templates/appearance/generic_list_subtemplate.html:108
|
||||
msgid "No results"
|
||||
msgstr ""
|
||||
|
||||
@@ -1,22 +1,21 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Berny <berny@bernhard-marx.de>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-04-27 14:09-0400\n"
|
||||
"POT-Creation-Date: 2016-11-23 02:52-0400\n"
|
||||
"PO-Revision-Date: 2016-03-21 21:06+0000\n"
|
||||
"Last-Translator: Mathias Behrle <mathiasb@m9s.biz>\n"
|
||||
"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-"
|
||||
"edms/language/de_DE/)\n"
|
||||
"Language: de_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"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: de_DE\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: apps.py:11
|
||||
@@ -45,19 +44,15 @@ msgstr "Serverfehler"
|
||||
|
||||
#: templates/500.html:11
|
||||
msgid ""
|
||||
"There's been an error. It's been reported to the site administrators via e-"
|
||||
"mail and should be fixed shortly. Thanks for your patience."
|
||||
msgstr ""
|
||||
"Es kam zu einem Fehler. Der Fehler wurde per E-Mail and die Administratoren "
|
||||
"gemeldet und sollte bald behoben werden. Vielen Dank für Ihre Geduld."
|
||||
"There's been an error. It's been reported to the site administrators via "
|
||||
"e-mail and should be fixed shortly. Thanks for your patience."
|
||||
msgstr "Es kam zu einem Fehler. Der Fehler wurde per E-Mail and die Administratoren gemeldet und sollte bald behoben werden. Vielen Dank für Ihre Geduld."
|
||||
|
||||
#: templates/500.html:14
|
||||
msgid ""
|
||||
"If you need assistance, you may reference this error via the following "
|
||||
"identifier:"
|
||||
msgstr ""
|
||||
"Wenn Sie Hilfe brauchen, können Sie den Fehler über folgende Kennung "
|
||||
"referenzieren: "
|
||||
msgstr "Wenn Sie Hilfe brauchen, können Sie den Fehler über folgende Kennung referenzieren: "
|
||||
|
||||
#: templates/appearance/about.html:8 templates/appearance/about.html.py:57
|
||||
msgid "About"
|
||||
@@ -175,7 +170,7 @@ msgstr "Absenden"
|
||||
msgid "Cancel"
|
||||
msgstr "Abbrechen"
|
||||
|
||||
#: templates/appearance/generic_list_horizontal.html:20
|
||||
#: templates/appearance/generic_list_horizontal.html:21
|
||||
#: templates/appearance/generic_list_subtemplate.html:108
|
||||
msgid "No results"
|
||||
msgstr "Kein Ergebnis"
|
||||
@@ -185,9 +180,7 @@ msgstr "Kein Ergebnis"
|
||||
msgid ""
|
||||
"Total (%(start)s - %(end)s out of %(total)s) (Page %(page_number)s of "
|
||||
"%(total_pages)s)"
|
||||
msgstr ""
|
||||
"Gesamt (%(start)s - %(end)s von %(total)s) (Seite %(page_number)s von "
|
||||
"%(total_pages)s)"
|
||||
msgstr "Gesamt (%(start)s - %(end)s von %(total)s) (Seite %(page_number)s von %(total_pages)s)"
|
||||
|
||||
#: templates/appearance/generic_list_subtemplate.html:14
|
||||
#: templates/appearance/generic_list_subtemplate.html:17
|
||||
@@ -235,9 +228,7 @@ msgstr "Erstanmeldung"
|
||||
msgid ""
|
||||
"You have just finished installing <strong>Mayan EDMS</strong>, "
|
||||
"congratulations!"
|
||||
msgstr ""
|
||||
"Herzlichen Glückwunsch! Sie haben die Installation von <strong>Mayan EDMS</"
|
||||
"strong> erfolgreich abgeschlossen. "
|
||||
msgstr "Herzlichen Glückwunsch! Sie haben die Installation von <strong>Mayan EDMS</strong> erfolgreich abgeschlossen. "
|
||||
|
||||
#: templates/appearance/login.html:25
|
||||
msgid "Login using the following credentials:"
|
||||
@@ -262,9 +253,7 @@ msgstr "Passwort: <strong>%(password)s</strong>"
|
||||
msgid ""
|
||||
"Be sure to change the password to increase security and to disable this "
|
||||
"message."
|
||||
msgstr ""
|
||||
"Bitte ändern Sie das Passwort, um die Sicherheit zu erhöhen und diese "
|
||||
"Nachricht zu deaktivieren."
|
||||
msgstr "Bitte ändern Sie das Passwort, um die Sicherheit zu erhöhen und diese Nachricht zu deaktivieren."
|
||||
|
||||
#: templates/appearance/login.html:45 templates/appearance/login.html.py:54
|
||||
msgid "Sign in"
|
||||
|
||||